What happened?
claude-sdk-oauth/claude-fable-5-1 is in the 2026.9.2 model catalog, but every turn on it fails. The claude-sdk-oauth provider spawns the Claude Code binary bundled with @anthropic-ai/claude-agent-sdk, and packages/coding-agent/package.json pins that SDK to exactly 0.3.241 (still 0.3.241 at HEAD, 2026.9.2-4). The SDK's own package.json says "claudeCodeVersion": "2.1.241", and the API refuses the model from that binary:
API Error: 400 Claude Code 2.1.241 does not support this model; version 2.1.251 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
Same prompt, only the binary differs (repro is against the binaries directly, so no extension is involved):
| binary |
version |
-p --output-format json --model claude-fable-5-1 "Reply with exactly PONG" |
node_modules/@anthropic-ai/claude-agent-sdk-linux-x64/claude (what senpi spawns) |
2.1.241 |
rc=1, "is_error":true, "terminal_reason":"api_error", "api_error_status":400, modelUsage only has claude-haiku-4-5-20251001 |
~/.local/bin/claude (standalone install) |
2.1.258 |
rc=0, "terminal_reason":"completed", modelUsage includes claude-fable-5-1 |
Workaround that works today: export CLAUDE_CODE_EXECUTABLE="$HOME/.local/bin/claude" — core/extensions/builtin/claude-sdk-oauth/executable.js checks that override first. It only takes effect for sessions launched from a shell that has it; an already-running session / RPC host keeps the bundled binary.
Steps to reproduce
- Install
@code-yeongyu/senpi@2026.9.2 (mine comes via omo-ai@5.0.0-0.beta.34, bun global). Confirm node_modules/@anthropic-ai/claude-agent-sdk/package.json has "version": "0.3.241" / "claudeCodeVersion": "2.1.241".
- Leave
CLAUDE_CODE_EXECUTABLE unset.
- Select
claude-sdk-oauth/claude-fable-5-1 in a session, or call the bundled binary directly:
node_modules/@anthropic-ai/claude-agent-sdk-linux-x64/claude -p --output-format json --model claude-fable-5-1 "Reply with exactly PONG" < /dev/null
- Get the 400 above. Point
CLAUDE_CODE_EXECUTABLE at any Claude Code >= 2.1.251 and the same call succeeds.
Expected behavior
A model listed in the catalog should work with the SDK senpi ships. Bumping the pin to >= 0.3.251 fixes it with no code change — npm currently has 0.3.251, 0.3.252, 0.3.257, 0.3.258, and SDK 0.3.N tracks Claude Code 2.1.N. Nice-to-have: when this specific 400 comes back, print the "bump the SDK / set CLAUDE_CODE_EXECUTABLE" hint instead of the bare API error.
Side note, not root-caused: running a nested omo -p --mode json --model claude-sdk-oauth/claude-fable-5-1 "..." from inside a live senpi session hangs with no output (240 s, with and without the override), which is why the repro above uses the binary directly. Can file separately if that's useful.
Version
@code-yeongyu/senpi 2026.9.2 (via omo-ai 5.0.0-0.beta.34), @anthropic-ai/claude-agent-sdk 0.3.241 (bundled Claude Code 2.1.241), Linux x64 glibc, bun 1.3.14.
What happened?
claude-sdk-oauth/claude-fable-5-1is in the 2026.9.2 model catalog, but every turn on it fails. Theclaude-sdk-oauthprovider spawns the Claude Code binary bundled with@anthropic-ai/claude-agent-sdk, andpackages/coding-agent/package.jsonpins that SDK to exactly0.3.241(still 0.3.241 at HEAD, 2026.9.2-4). The SDK's ownpackage.jsonsays"claudeCodeVersion": "2.1.241", and the API refuses the model from that binary:Same prompt, only the binary differs (repro is against the binaries directly, so no extension is involved):
-p --output-format json --model claude-fable-5-1 "Reply with exactly PONG"node_modules/@anthropic-ai/claude-agent-sdk-linux-x64/claude(what senpi spawns)"is_error":true,"terminal_reason":"api_error","api_error_status":400,modelUsageonly hasclaude-haiku-4-5-20251001~/.local/bin/claude(standalone install)"terminal_reason":"completed",modelUsageincludesclaude-fable-5-1Workaround that works today:
export CLAUDE_CODE_EXECUTABLE="$HOME/.local/bin/claude"—core/extensions/builtin/claude-sdk-oauth/executable.jschecks that override first. It only takes effect for sessions launched from a shell that has it; an already-running session / RPC host keeps the bundled binary.Steps to reproduce
@code-yeongyu/senpi@2026.9.2(mine comes viaomo-ai@5.0.0-0.beta.34, bun global). Confirmnode_modules/@anthropic-ai/claude-agent-sdk/package.jsonhas"version": "0.3.241"/"claudeCodeVersion": "2.1.241".CLAUDE_CODE_EXECUTABLEunset.claude-sdk-oauth/claude-fable-5-1in a session, or call the bundled binary directly:CLAUDE_CODE_EXECUTABLEat any Claude Code >= 2.1.251 and the same call succeeds.Expected behavior
A model listed in the catalog should work with the SDK senpi ships. Bumping the pin to
>= 0.3.251fixes it with no code change — npm currently has 0.3.251, 0.3.252, 0.3.257, 0.3.258, and SDK0.3.Ntracks Claude Code2.1.N. Nice-to-have: when this specific 400 comes back, print the "bump the SDK / set CLAUDE_CODE_EXECUTABLE" hint instead of the bare API error.Side note, not root-caused: running a nested
omo -p --mode json --model claude-sdk-oauth/claude-fable-5-1 "..."from inside a live senpi session hangs with no output (240 s, with and without the override), which is why the repro above uses the binary directly. Can file separately if that's useful.Version
@code-yeongyu/senpi2026.9.2 (viaomo-ai5.0.0-0.beta.34),@anthropic-ai/claude-agent-sdk0.3.241 (bundled Claude Code 2.1.241), Linux x64 glibc, bun 1.3.14.