@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.

Packages

Package details

extension

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