@cheriki/pi-cymbal
Standalone Pi extension exposing bundled Cymbal code navigation tools.
Package details
Install @cheriki/pi-cymbal from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@cheriki/pi-cymbal- Package
@cheriki/pi-cymbal- Version
0.1.0- Published
- May 31, 2026
- Downloads
- not available
- Author
- cheriki
- License
- MIT
- Types
- extension
- Size
- 175.7 MB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-cymbal
Standalone Pi extension for Cymbal code navigation.
@cheriki/pi-cymbal bundles Cymbal v0.13.5 binaries for macOS arm64/x64
and Linux arm64/x64. Users install one Pi package:
pi install npm:@cheriki/pi-cymbal
Before the npm package is published, install directly from GitHub:
pi install git:github.com/miladcheriki/pi-cymbal-standalone
No Homebrew, Go, or separate Cymbal install is required. Windows is not bundled in this release.
Security note: Pi packages execute local code. This package includes prebuilt
Cymbal binaries pinned to v0.13.5; the vendoring script verifies upstream
release checksums, the repository tracks checksums for the extracted binaries,
and bundled license notices are included in THIRD_PARTY_NOTICES.md.
Tools
| Pi tool | Cymbal command |
|---|---|
cymbal_investigate |
cymbal investigate <symbol> |
cymbal_search |
cymbal search <query> |
cymbal_show |
cymbal show <target> |
cymbal_outline |
cymbal outline <file> |
cymbal_refs |
cymbal refs <symbol> |
cymbal_graph |
`cymbal trace |
cymbal_structure |
cymbal structure |
cymbal_index |
cymbal index [path] |
The tool names are prefixed to avoid collisions with generic Pi tools and other code navigation packages.
Slash Command
/cymbal status shows the current platform, bundled binary path, binary source,
and Cymbal version.
/cymbal remind runs:
cymbal hook remind --format=text
/cymbal config shows default limits, timeouts, and binary source.
Binary Resolution
For local development, set PI_CYMBAL_BIN to override the bundled binary:
export PI_CYMBAL_BIN=/absolute/path/to/cymbal
Without the override, pi-cymbal selects the bundled binary for
process.platform and process.arch.
Supported bundled platforms:
darwin-arm64darwin-x64linux-arm64linux-x64
Unsupported platforms return a clear tool error.
The package intentionally ships all supported macOS/Linux binaries in one npm
tarball so pi install npm:@cheriki/pi-cymbal works without a separate
Cymbal install. The package is large because of those bundled binaries.
Output
Tools default to Cymbal's agent-native text output. Pass json: true on tools
where structured output is useful.
Large outputs are capped before returning to the model. The truncation note suggests narrowing the symbol/path, lowering a limit, or using graph limits.
On very large repositories, the first Cymbal call may spend time building the
SQLite index. If a normal tool times out on first use, run cymbal_index once
from Pi and retry the original request.
Development
npm install
npm run vendor
npm run validate
Local Pi smoke test:
pi install .
/reload
Then ask Pi to use cymbal_investigate in a Git repository.
Publishing
The npm package is scoped as @cheriki/pi-cymbal to avoid conflicting
with the existing unscoped pi-cymbal package.
The included GitHub Actions workflows validate pull requests and publish on release when npm trusted publishing is configured.
License
MIT. See THIRD_PARTY_NOTICES.md for bundled Cymbal notices.