@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

Packages

Package details

extension

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.json takes precedence over global ~/.pi/agent/settings.json
  • If tools is 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