@bzzimmy/pi-claude
Claude (Anthropic OAuth/subscription) compatibility layer for pi-coding-agent — keeps ALL extension tools usable under the Claude subscription by mapping unknown flat tool names to mcp__pi__<name> on the wire instead of dropping them.
Package details
Install @bzzimmy/pi-claude from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@bzzimmy/pi-claude- Package
@bzzimmy/pi-claude- Version
0.1.0- Published
- Aug 5, 2026
- Downloads
- 155/mo · 12/wk
- Author
- bzzimmy
- License
- MIT
- Types
- extension
- Size
- 12.4 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@bzzimmy/pi-claude
Claude (Anthropic OAuth / subscription) compatibility layer for pi-coding-agent. Keeps all your extension tools usable under the Claude subscription.
Problem
Anthropic's OAuth request path appears to fingerprint tool names: tools that
aren't part of the Claude Code core set and aren't mcp__-prefixed can be
classified as extra usage. Some extensions defend against this by dropping
every unknown flat-named tool — silently hiding legitimate tools like todo,
subagent, ctx_*, etc. from Claude.
What this does
Instead of dropping unknown flat tools, it renames them on the wire to
mcp__pi__<name>:
- ✅ passes Anthropic's classifier → no extra-usage charge
- ✅ the tool stays visible to Claude → it can actually call it
- ✅ inbound,
mcp__pi__*calls are rewritten back to the original name before Pi executes them
Untouched: native Anthropic tools (e.g. web_search), mcp__*-prefixed tools,
and the Claude Code core tools. Only activates for Anthropic + OAuth —
API-key auth and other providers pass through unchanged. Zero runtime
dependencies: it's a pure rename of what's already in the payload.
Install
pi install npm:@bzzimmy/pi-claude
Restart Pi (or /reload) and use the normal anthropic provider with your
OAuth login.
Verify
PI_CLAUDE_PROVIDER_DEBUG_LOG=/tmp/pi-claude.log pi
Send one message, then check the log: extension tools should appear as
mcp__pi__<name> in the "after" payload, with nothing dropped.
Environment variables
| Variable | Effect |
|---|---|
PI_CLAUDE_PROVIDER_DEBUG_LOG=/path |
Append before/after payloads for debugging. |
PI_CLAUDE_PROVIDER_DISABLE=1 |
Pass all tools through flat (escape hatch). |
Credit
Inspired by @zgltyq/pi-provider-claude and, upstream,
@benvargas/pi-claude-code-use (both MIT) — this is a clean-room minimal
rewrite of the tool-aliasing half, without the multi-account pool.
License
MIT