Skip to content

Add Claude Code CLI subprocess backend#2

Open
reed-nicolas wants to merge 1 commit intomainfrom
claude-code-backend
Open

Add Claude Code CLI subprocess backend#2
reed-nicolas wants to merge 1 commit intomainfrom
claude-code-backend

Conversation

@reed-nicolas
Copy link
Copy Markdown

Ports chia's ClaudeCodeLLM into SkyDiscover so runs can use a local claude CLI subscription instead of a hosted API. Three new files under skydiscover/llm/:

  • claude_code_llm.py: subprocess wrapper around claude --print with NDJSON event streaming and typed error classification.
  • claude_code_llm_pool.py: non-Ray subset of chia's exception hierarchy and rate-limit parsers.
  • claude_code_adapter.py: factory that wires the backend onto LLMModelConfig.init_client so the existing LLMPool path picks it up.

Divergences from chia, all forced by the non-Ray bare-metal target:

  • claude_path and claude_config_dir are constructor params so the binary and auth dir can be overridden via env vars at the caller.
  • _get_node_id returns "local".
  • Ray-coupled methods dropped (prompt_pooled, _serializable_config, _pooled_prompt_task, _session_transcript_path).
  • Streaming _run_claude enforces timeout_seconds with proc.wait(timeout=...) plus kill-and-raise on expiry, since there is no Ray worker supervision to kill a stalled subprocess.
  • ChiaTool type hints replaced with Any. Tools are unused here.

No behavior change for callers that do not set init_client.

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