Files
claude_wire/playground
agent ed78bdb81a feat(playground): chat web sobre claude_wire (SSE interceptado de la red)
Backend Go (web/server.go) con SSE que por cada mensaje lanza claude_wire y
reenvia su NDJSON (text_delta + result) al navegador. Frontend vanilla
(web/index.html). Mensajes serializados (mutex: claude_wire usa puerto mitmproxy
fijo). Validado end-to-end: la respuesta llega token a token del SSE real
(O, K -> OK), sin parsear el render. ~9s por mensaje vs ~15s del chat de
claude_pipe. Puerto 8100.
2026-06-04 00:30:52 +02:00
..

claude_wire — chat web (playground)

Chat en el navegador sobre claude_wire: el texto de la respuesta se obtiene interceptando el SSE del modelo en la red (no parseando el render de la terminal).

Backend Go con SSE (web/server.go) que, por cada mensaje, lanza claude_wire y reenvía su NDJSON (text_delta + result) al navegador. Frontend vanilla (web/index.html), sin frameworks ni node_modules. No se indexa (playground del padre).

Prerrequisitos

  • mitmproxy instalado (mitmdump en el PATH) + CA generada (~/.mitmproxy/mitmproxy-ca-cert.pem).
  • Binarios compilados:
    • apps/claude_pipe/claude_pipe (driver de la TUI).
    • apps/claude_wire/claude_wire (runner que intercepta el SSE).
cd apps/claude_pipe && CGO_ENABLED=1 go build -tags fts5 -o claude_pipe .
cd ../claude_wire   && go build -o claude_wire .

Lanzar

cd apps/claude_wire/playground
go run ./web                 # http://localhost:8100
# o con flags:
go run ./web --port 8100 --root /home/enmanuel/fn_registry --wire ../claude_wire

Abre http://localhost:8100 y escribe. Cada mensaje dirige la TUI interactiva de claude por un mitmproxy y lee la respuesta del SSE de api.anthropic.com, token a token, exacta. Corta en message_stop (sin idle ciego): ~9s por respuesta.

vs el chat de claude_pipe

claude_pipe chat (:8099) claude_wire chat (:8100)
Texto parseado del render (heurístico) exacto del SSE de la red
Streaming snapshots del grid token real
Latencia ~15s ~9s

Notas

  • Mensajes serializados (un claude_wire a la vez: usa un puerto mitmproxy fijo).
  • Sin memoria entre turnos (cada mensaje es una sesión claude one-shot).