- test(FN-2370): complete Step 3 — align qa-check template expectation - test(FN-2370): complete Step 2 — add regression coverage for addComment diagnostics - test(FN-2370): complete Step 2 — cover addComment warning regressions - feat(FN-2370): complete Step 1 — log addComment best-effort failures - feat(FN-2369): merge fusion/fn-2369 - feat(prompts): require lint alongside tests and typecheck in agent instructions - perf(test): parallelize harder — unlock worker count, split build-output, bump workspace concurrency - fix(core): recognize legacy kb-* backups and canonicalize .kb/backups settings - refactor: eliminate remaining 15 any warnings and ratchet rule to error - refactor: eliminate ~400 no-explicit-any warnings across the workspace - feat(core): add getErrorMessage helper for narrowing unknown errors - refactor: fix and tighten mechanical lint rules - chore(eslint): fix pre-existing errors surfaced by wider .cjs match - chore(eslint): promote @typescript-eslint/no-unused-vars from warn to error - refactor(dashboard,desktop,engine): remove unused imports, props, and locals - refactor(core): remove unused imports, helpers, and dead migration constant - refactor(cli): remove unused imports and variables - refactor: adapt resource loader and tool wiring to pi-coding-agent 0.70 - fix: adapt to AgentState.error → errorMessage rename - refactor: migrate @sinclair/typebox imports to typebox 1.x - refactor: migrate to ModelRegistry.create factory - chore: bump pi-coding-agent + pi-ai to 0.70.0 - refactor: remove legacy kb compatibility - feat: add "Anthropic — via Claude CLI" as a first-class provider - test(FN-2358): harden clean-worktree CI verification tests - fix(FN-2352): add structured terminal websocket diagnostics - fix: use live merge-base for task diff scope - feat: backfill Claude skills when useClaudeCli toggle flips on - fix: prevent nested .fusion/.fusion dir from PluginStore path bug
pi-claude-cli
A pi extension that routes LLM calls through the Claude Code CLI as a subprocess. Use your Claude Pro/Max subscription as the LLM backend — no API key, no separate billing.
How it works
The extension registers as a custom pi provider exposing all Claude models. Each request spawns a claude -p subprocess using the stream-json wire protocol, with --resume on follow-up turns to reuse the CLI's session state instead of replaying full history. Claude proposes tool calls, pi executes them natively. Custom pi tools are exposed to Claude via a schema-only MCP server.
Requirements
- Claude Code CLI installed and authenticated (
claudeon PATH) - A Claude Pro or Max subscription
- pi or GSD
Installation
Add to ~/.gsd/agent/settings.json:
{
"packages": ["npm:pi-claude-cli"]
}
Then select a Claude model via /model in the interactive UI. All Claude models appear under the pi-claude-cli provider.
Features
- Streams text, thinking, and tool call tokens in real-time
- Maps tool names and arguments bidirectionally between Claude and pi
- Exposes custom pi tools to Claude via MCP (schema-only, no execution)
- Break-early pattern prevents Claude CLI from auto-executing tools
- Session resume via
--resumeeliminates history replay on follow-up turns - Configurable thinking effort with elevated budgets for Opus models
- Cross-platform subprocess management (Windows, macOS, Linux)
- Inactivity timeout and process registry for cleanup
License
MIT