Skip to content

docs(triage): #85 Claude subscription backend — SKIP (ToS-prohibited) - #147

Merged
jramos merged 1 commit into
mainfrom
docs/triage-85-subscription-tos
Jun 29, 2026
Merged

docs(triage): #85 Claude subscription backend — SKIP (ToS-prohibited)#147
jramos merged 1 commit into
mainfrom
docs/triage-85-subscription-tos

Conversation

@jramos

@jramos jramos commented Jun 29, 2026

Copy link
Copy Markdown
Owner

What

Resolves the triage action item for upstream NousResearch#85 ("Claude Code subscription backend — FastAPI OpenAI-compatible shim over claude-agent-sdk"). Disposition flips from INVESTIGATE to SKIP (ToS-prohibited + server-side-blocked). No code change.

Finding

The open question on the row was "verify claude-agent-sdk subscription-auth still viable." It isn't — on two counts:

  • Prohibited. Anthropic's compliance docs (updated 2026-02-19/20): "Using OAuth tokens obtained through Claude Free, Pro, or Max accounts in any other product, tool, or service — including the Agent SDK — is not permitted and constitutes a violation of the Consumer Terms of Service." Subscription OAuth is exclusive to Claude Code + claude.ai. Refactor prompt-section backends into a PromptBackend strategy (no behavior change) #85's design (re-exposing the subscription as a provider:custom + base_url OpenAI-compatible endpoint over the Agent SDK) is exactly the named pattern.
  • Server-side-blocked. Since 2026-01-09, subscription OAuth tokens are rejected outside the official CLI (the OpenClaw/OpenCode/Roo Code/Goose enforcement sweep); subscriptions stopped covering third-party tools on 2026-04-04.

The legitimate path is unaffected and already present: the closed-loop agent backend drives the real claude -p CLI with CLAUDE_CODE_OAUTH_TOKEN (the sanctioned scripts/CI use of the official product, not a re-exposing shim). What #85 specifically wanted — cheap subscription inference for the GEPA optimizer/judge LM roles — is the prohibited part; Claude inference for evolution stays on API-key billing via resolve_default_lm.

Changes (doc-only)

Sources

Anthropic's compliance docs (updated 2026-02-19/20) state that using OAuth
tokens from Free/Pro/Max accounts in any other product, tool, or service —
including the Agent SDK — violates the Consumer Terms of Service; subscription
OAuth is exclusive to Claude Code and claude.ai. It is enforced at the wire:
since 2026-01-09 subscription OAuth tokens are rejected outside the official
CLI, and subscriptions stopped covering third-party tools on 2026-04-04.

NousResearch#85's design (a FastAPI
OpenAI-compatible shim over claude-agent-sdk, re-exposing the subscription as a
provider:custom + base_url endpoint) is exactly the prohibited pattern, so it is
neither permitted nor technically viable. The sanctioned path is already present:
the closed-loop agent backend drives the real `claude -p` CLI with
CLAUDE_CODE_OAUTH_TOKEN; Claude inference for the GEPA roles stays on API-key
billing via resolve_default_lm.

Doc-only: review-log entry + row flipped to SKIP + already-covered note +
snapshot in docs/upstream_pr_triage.md. No code change.
@jramos
jramos enabled auto-merge (squash) June 29, 2026 03:43
@jramos
jramos merged commit 678d495 into main Jun 29, 2026
4 checks passed
@jramos
jramos deleted the docs/triage-85-subscription-tos branch June 29, 2026 03:50
jramos added a commit that referenced this pull request Jul 6, 2026
…ne new item (#150)

Incremental upstream review. Backlog steady at 72 open; six new PRs #142-#147.
Five already covered -> SKIP; one genuinely-new latent bug -> new action item.

- NousResearch#142: 5 of 6 fixes are covered clusters
  (GEPA/DSPy-3.2 compat x3, validate-full). The 6th is real and new here: find_skill
  via Path.rglob('SKILL.md') skips symlinked skill dirs on Python <3.13
  (skill_sources.py:63/67/80). Promoted to a CHERRY-PICK action item (recommended).
- #143: our #102 — state.db read-only importer already shipped; only cross-platform
  discovery extras. SKIP.
- #144/#145: Sunwo0u HSE sanitized evidence packets, report-only, no mechanism. SKIP.
- #146: extraction cluster — our skill_text is a @Property over signature.instructions,
  so its 'dead input field' premise is upstream-only. SKIP.
- #147: compat + material_diff reporting subsumed by our behavioral deploy gate. SKIP.

Review-log entry + new action-item row + 2026-07-06 snapshot delta.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant