@johnnywu/pi-default-tools
Activate default tools from settings.json — reads project or global settings to enable built-in tools like grep, find, and ls on session start
Package details
Install @johnnywu/pi-default-tools from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@johnnywu/pi-default-tools- Package
@johnnywu/pi-default-tools- Version
1.0.0- Published
- May 14, 2026
- Downloads
- 29/mo · 6/wk
- Author
- johnnywu
- License
- MIT
- Types
- extension
- Size
- 9.4 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-default-tools
Activate built-in pi tools from settings.json — reads project or global settings to enable tools like grep, find, and ls on session start.
Install
pi install npm:@johnnywu/pi-default-tools
Or via local path in ~/.pi/agent/settings.json:
{
"packages": ["~/dev/jwu/pi-default-tools"]
}
Configuration
Add a tools field to .pi/settings.json (project) or ~/.pi/agent/settings.json (global):
{
"tools": ["grep", "find", "ls"]
}
Behavior
| Configuration | Effect |
|---|---|
tools not present |
Nothing changes — pi uses its default tools |
tools: [] |
Whitelist — clears all active tools |
tools: ["grep"] |
Whitelist — sets active tools to exactly grep |
tools: ["...", "grep"] |
Merge — "..." expands to current active tools, then appends grep |
The special marker "..." represents "keep current active tools". Without it, the array acts as a strict whitelist.
Precedence
- Project
.pi/settings.jsontakes precedence over global~/.pi/agent/settings.json - If
toolsis not defined in project settings, global settings are used - Only string array values are accepted; invalid types are ignored
Development
# Install dependencies
bun install
# Run tests
bun test
# Type check
bun run typecheck
# Format
bun run format
# Release (local, requires GH_TOKEN and NPM_TOKEN)
bun run release
This project uses semantic-release with conventional commits.
License
MIT