@zhcsyncer/pi-extensions
A collection of Pi extensions by zhcsyncer.
Package details
Install @zhcsyncer/pi-extensions from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@zhcsyncer/pi-extensions- Package
@zhcsyncer/pi-extensions- Version
0.15.2- Published
- Aug 7, 2026
- Downloads
- 2,974/mo · 319/wk
- Author
- zhcsyncer
- License
- MIT
- Types
- extension, skill
- Size
- 2 MB
- Dependencies
- 6 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./packages/pi-recap/extensions/recap.ts",
"./packages/pi-tool-display-intent/extensions/tool-display-intent.ts",
"./packages/pi-todo/index.ts",
"./packages/pi-glance/index.ts",
"./packages/pi-plan-mode/extensions/plan-mode.ts",
"./packages/pi-search-hub/extensions/search-hub.ts",
"./packages/pi-context7/extensions/context7.ts",
"./packages/pi-ask-user-question/index.ts",
"./packages/pi-subagents/src/index.ts"
],
"skills": [
"./packages/pi-context7/skills"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-extensions
A collection of Pi extensions by zhcsyncer.
Packages
@zhcsyncer/pi-recap— recent activity recap extension with optional session title and nearest-layer Herdr pane or tmux window naming.@zhcsyncer/pi-tool-display-intent— compact tool rendering with model-written intent phrases, RPC-visible summaries, adaptive diffs, and bounded Bash call previews.@zhcsyncer/pi-todo— branch-aware task overlay with strict lifecycle rules, atomic batches, isolated SDK session state, and expandable audit summaries.@zhcsyncer/pi-glance— maintainedpi-glancefork with composable extension statuses, bottom-right context progress, and a highlighted auto-compaction marker.@zhcsyncer/pi-plan-mode— strict read-only planning with revdiff review, immutable revisions, compact audit rendering, and an explicit branch-aware implementation/completion lifecycle.@zhcsyncer/pi-search-hub— bundle-privateweb_searchandweb_readtools integrated with intent-aware rendering.@zhcsyncer/pi-context7— Context7resolve-library-id/query-docstools with compact self-contained TUI rendering and the fullcontext7-docsskill.@zhcsyncer/pi-ask-user-question— structured clarification questions with a non-overlay layout, context-aware number-key selection, centered previews, and readable post-interaction results.@zhcsyncer/pi-subagents— maintained fork of@tintinweb/pi-subagentswith a brief ConversationViewer and collapsible tool TUI (model/effort chips). Also embedded in the root bundle.
Bundle-private Search Hub
The aggregate @zhcsyncer/pi-extensions package includes the private Search Hub fork and registers its web_search and web_read tools. Search Hub is not published as a standalone npm package; install the root bundle to use it.
This fork keeps upstream multi-backend search and page extraction while integrating model-written displaySummary intents, semantic query/URL call lines, backend and reader status, and the shared tool-display result modes. See the Search Hub documentation or its Simplified Chinese version for configuration and local behavior.
Context7
@zhcsyncer/pi-context7 is a maintained fork of Context7 documentation tools. It can be installed on its own or used through the root bundle, which embeds and registers the same extension and skill.
This fork keeps upstream tool descriptions, model-facing result text, and the full skill while adding compact local renderCall / renderResult rows, AbortSignal-aware fetches, and HTTP error throwing for correct Pi tool-error marking. Set CONTEXT7_API_KEY for higher quotas. See the Context7 documentation or its Simplified Chinese version.
Subagents
@zhcsyncer/pi-subagents is a maintained fork of @tintinweb/pi-subagents 0.14.3. It can be installed on its own or used through the root bundle, which embeds and registers the same extension. Upstream runtime (Agent / steer / resume / FleetView / notifications) is unchanged; this fork changes how progress is shown:
- Conversation overlay defaults to Prompt · one-line Steps · Result (not a full toolResult dump)
- Main-transcript tool rows are collapsible; expand uses Markdown; call/result rows show model and effort
Do not load @tintinweb/pi-subagents at the same time (duplicate Agent / FleetView registration). Upstream pin and the full local-diff checklist: packages/pi-subagents/UPSTREAM_SOURCE.md. User-facing comparison tables: English package README (default) / 简体中文.
Persistent extension data
Every independent bundle configuration now uses $PI_CODING_AGENT_DIR/extension-data/<extension-id>/config.json, including Todo, Ask User Question, and Subagents. Existing files are migrated atomically and verified before removal; canonical data wins, while malformed or conflicting legacy files are preserved with a warning. Trusted project overrides for Recap and Search Hub use <cwd>/<CONFIG_DIR_NAME>/extension-data/<extension-id>/config.json; Subagents keeps its existing project-over-global settings behavior at the corresponding project path and stores its optional agent-tool-description.md beside config.json. Configuration relocation does not move custom agents, skills, Pi settings or auth.json, memory, schedules, transcripts, session state, or Plan artifacts; those remain in their standard resource/state locations, including $PI_CODING_AGENT_DIR/plans/.
Install from Git
Install the whole extension bundle from this repository:
pi install git:github.com/zhcsyncer/pi-extensions
Try without installing:
pi -e git:github.com/zhcsyncer/pi-extensions
Install from npm
Install the complete bundle, including Glance, Plan Mode, Context7, Subagents, structured user questions, and the private Search Hub fork:
pi install npm:@zhcsyncer/pi-extensions
Install only recap:
pi install npm:@zhcsyncer/pi-recap
Install only the intent-aware tool display:
pi install npm:@zhcsyncer/pi-tool-display-intent
Install only Todo:
pi install npm:@zhcsyncer/pi-todo
Install only Glance:
pi install npm:@zhcsyncer/pi-glance
Install only strict Plan Mode:
pi install npm:@zhcsyncer/pi-plan-mode
Install only Context7 documentation tools:
pi install npm:@zhcsyncer/pi-context7
Install only structured user questions:
pi install npm:@zhcsyncer/pi-ask-user-question
Install only Subagents:
pi install npm:@zhcsyncer/pi-subagents
Development
Test the root bundle:
pi -e . --list-models nope
Test a package directly:
pi -e ./packages/pi-recap --list-models nope
pi --no-extensions -e ./packages/pi-tool-display-intent
pi --no-extensions -e ./packages/pi-todo --list-models nope
pi --no-extensions -e ./packages/pi-glance
pi --no-extensions -e ./packages/pi-plan-mode --list-models nope
pi --no-extensions -e ./packages/pi-search-hub --list-models nope
pi --no-extensions -e ./packages/pi-context7 --list-models nope
pi --no-extensions -e ./packages/pi-ask-user-question --list-models nope
pi --no-extensions -e ./packages/pi-subagents --list-models nope
When testing pi-tool-display-intent, do not load the original pi-tool-display or pi-tool-display-summary at the same time because all three can own the same built-in tool names.
When testing pi-subagents, do not load @tintinweb/pi-subagents at the same time (duplicate Agent / FleetView registration).
Releasing
Add a changeset to each user-facing pull request:
pnpm changeset
Public packages version independently. A changed child package must include the aggregate root package in the same release plan because the root tarball embeds child sources; unchanged siblings do not release. Before pushing a release-bearing change, present the planned packages and target versions for user review. After approved changes land on main, GitHub Actions opens a version PR, and merging that reviewed PR publishes the planned packages and creates their GitHub Releases. See RELEASING.md for the complete workflow and one-time npm/GitHub setup.
License
MIT
pi-tool-display-intent is a modified fork of MIT-licensed MasuRii/pi-tool-display 0.5.0 and adapts the MIT-licensed displaySummary mechanism from mertdeveci5/pi-tool-display-summary 0.1.0. Full attribution and preserved notices are in packages/pi-tool-display-intent/README.md, LICENSE, and UPSTREAM_LICENSE.
pi-todo is forked from MIT-licensed @juicesharp/rpiv-todo 1.20.0. The exact revision and preserved notices are recorded in packages/pi-todo/UPSTREAM_SOURCE.md, LICENSE, and UPSTREAM_LICENSE.
pi-glance is forked from MIT-licensed LinYS77/pi-glance 0.5.3. The exact revision and preserved notices are recorded in packages/pi-glance/UPSTREAM_SOURCE.md, LICENSE, and UPSTREAM_LICENSE.
pi-search-hub is forked from ronnieops/pi-search-hub 2.8.0, whose package metadata and README declare MIT. Its exact revision and preserved notices are recorded in packages/pi-search-hub/UPSTREAM_SOURCE.md and UPSTREAM_NOTICE.md.
pi-context7 is forked from MIT-licensed @upstash/context7-pi 0.1.2 (b250c2515694eee4b6df4db82fa056df9ed3e306). The exact revision and preserved notices are recorded in packages/pi-context7/UPSTREAM_SOURCE.md, LICENSE, and UPSTREAM_LICENSE.
pi-ask-user-question is forked from MIT-licensed @juicesharp/rpiv-ask-user-question 2.4.0. The exact revision and preserved notices are recorded in packages/pi-ask-user-question/UPSTREAM_SOURCE.md, LICENSE, and UPSTREAM_LICENSE.
pi-subagents is forked from MIT-licensed @tintinweb/pi-subagents 0.14.3 (c10b1836256e760da75296ccd4e57a77ada1325e). The exact revision, local UI deltas, and preserved notices are recorded in packages/pi-subagents/UPSTREAM_SOURCE.md, LICENSE, and UPSTREAM_LICENSE.