pi-export-notool

Export Pi sessions to HTML without visible tool-call blocks

Packages

Package details

extension

Install pi-export-notool from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-export-notool
Package
pi-export-notool
Version
0.2.4
Published
Oct 22, 2026
Downloads
239/mo · 6/wk
Author
hyein-cbio
License
MIT
Types
extension
Size
31.8 KB
Dependencies
1 dependency · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./extensions/pi-export-notool/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-export-notool

A Pi extension that exports the current session to HTML while hiding tool-call, tool-output, and thinking blocks with injected CSS.

Use

Start Pi with this extension, then run:

/export-notool [output.html]

Pi's built-in /export remains unchanged. /export-notool creates an HTML variant without visible tool or thinking blocks.

If no path is supplied, it writes pi-no-tools-<session-id>.html in the current working directory. The output is created with Pi's built-in HTML exporter, then gets an idempotent stylesheet that hides .tool-execution and .thinking-block elements. The sidebar remains unchanged, so Pi's built-in No-tools toggle continues to work. Session data remains embedded in the file; the default command is display-only hiding.

Theme

Exports preserve the currently active Pi theme, including light, dark, custom themes, and the terminal palette used by system. Both normal and publish exports capture the colors at export time; the HTML does not switch themes when the browser or terminal appearance changes later.

The extension snapshots the active palette and uses the running Pi installation's own HTML exporter in an isolated process. Custom theme export background overrides are retained. Temporary theme files are removed after success or failure. This integration uses Pi's internal exporter modules and requires a Node.js Pi installation with its dist files.

Publish mode

For an HTML file intended to be shared, put --publish before the optional path:

/export-notool --publish [output.html]

Publish mode writes pi-no-tools-publish-<session-id>.html by default. It physically removes tool calls, tool results, shell executions, thinking blocks, hidden extension state, system prompts, tool schemas, rendered tool data, and path-bearing session header metadata from the embedded payload. Unknown entry and content-block types are omitted rather than assumed safe, and retained entries are re-parented so Pi's session tree still works. Pi's unsanitized intermediate export is created only in a temporary directory and deleted before the command returns.

The remaining visible textual conversation is scanned before it is written. Credential detection uses the MIT-licensed @sanity-labs/secret-scan package; its distributed license attributes the incorporated detection rules to the MIT-licensed Gitleaks project. The extension also checks for POSIX, Windows, and UNC absolute paths. If it finds potential sensitive information, it shows grouped finding types without echoing matched values and requires confirmation. In a mode that cannot prompt, the publish export fails closed. Findings are warnings, not automatic redaction, and no pattern-based scanner can guarantee that content is safe to share.

Development

Run the extension from this checkout:

pi --no-extensions -e .

Run its regression tests:

npm test

By default, npm test also validates system themes using the development Pi dependency (minimum 1.0.1, avoiding the vulnerable brace-expansion pinned by Pi 0.99.0–1.0.0). This test dependency does not impose a minimum Pi version on users; the peer dependency remains unrestricted. To test a different installed Pi (versions without the system-theme API skip the four system theme tests):

PI_TEST_PACKAGE_DIR=/path/to/pi-coding-agent node --test test/native-export.test.mjs

Publish a tested public release:

npm run publish:npm