Un solo archivo (llm.py) que habla directo con la API de Anthropic Messages usando el token OAuth que Claude Code guarda en ~/.claude/.credentials.json. Sin servidor, sin arranque: chat interactivo con memoria, one-shot, pipe, y bucle de tools propias (run_tool_loop). Empaqueta standalone la logica del grupo claude-direct del registry para poder distribuirla (basta llm.py + README.md, el receptor solo necesita httpx + Claude Code logueado).
3.0 KiB
name, lang, domain, version, description, tags, uses_functions, uses_types, framework, entry_point, dir_path, icon, e2e_checks
| name | lang | domain | version | description | tags | uses_functions | uses_types | framework | entry_point | dir_path | icon | e2e_checks | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| llm_cli | py | core | 1.0.0 | CLI minima y autocontenida para chatear con Claude desde la terminal usando el token OAuth que Claude Code guarda en la maquina. Un solo archivo (llm.py), sin servidor ni dependencias mas alla de httpx. Chat interactivo con memoria, one-shot, pipe, y bucle de tools propias. Pensada para distribuir: se copia y se ejecuta. |
|
llm.py | apps/llm_cli |
|
|
llm_cli
CLI autocontenida para chatear con Claude desde la terminal. Empaqueta en un solo archivo
(llm.py) la logica del grupo de funciones claude-direct del registry, para poder copiarla y
distribuirla sin necesidad del registry.
Que es
llm.py habla directamente con la API de Anthropic Messages usando el token OAuth que Claude Code
guarda en ~/.claude/.credentials.json. No lanza ningun proceso claude ni mantiene servidor:
arranque instantaneo, respuesta en streaming.
Es una version standalone (codigo copiado, no importado) de las funciones del registry
load_claude_oauth_token_py_core, stream_anthropic_messages_py_core y
run_claude_tool_loop_py_core. Por eso uses_functions esta vacio: la app no depende del registry
en runtime — todo vive en llm.py para que sea distribuible.
Uso
pip install httpx
python3 llm.py # chat interactivo (con memoria)
python3 llm.py "que es Go en una frase" # one-shot
echo "resume esto: ..." | python3 llm.py # pipe
python3 llm.py --model claude-opus-4-8 "..." # elegir modelo
Comandos del chat: /model <id>, /system <texto>, /reset, /exit.
Tools propias
llm.run_tool_loop(messages, tools, dispatch, ...) corre un bucle agentico donde el usuario define
sus tools (definiciones Anthropic) y el dispatch que las ejecuta. Ver README.md para el ejemplo
completo.
Distribuir
Para enviarsela a alguien: basta llm.py + README.md. El receptor instala httpx, tiene Claude
Code logueado, y ejecuta python3 llm.py. Nada mas.
Requisitos
- Python 3.9+,
httpx. - Claude Code instalado y con sesion iniciada (provee
~/.claude/.credentials.json).
Gotchas
- Rate limits: el plan limita la frecuencia; en rafagas se reciben
HTTP 429. Espacia las llamadas o usaclaude-haiku-4-5-20251001(mas cuota) para uso frecuente. - Token expirado: normalmente Claude Code lo refresca en background. Si la CLI lleva mucho cerrada, abrela una vez para refrescar el token.
- Modelo:
claude-opus-4-8es valido; ids con sufijo de fecha inexistente dan404.