# 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). ```bash cd apps/claude_pipe && CGO_ENABLED=1 go build -tags fts5 -o claude_pipe . cd ../claude_wire && go build -o claude_wire . ``` ## Lanzar ```bash 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).