Conectar OpenCode al gateway con mis llaves

Tus llaves de proveedor en una bóveda de machine-home, una sola conexión local para OpenCode, y rotación en 429 que nunca ves.

Prompt#

Mete mi llave de OpenAI en Orchemax y apunta OpenCode al gateway.

Qué hace el Chair#

Nada — esta te toca a ti. No hay herramienta MCP: los comandos escriben una bóveda de llaves y la configuración de otra aplicación, así que se corren una vez desde una terminal humana.

CLI#

orch gateway keys add openai            # pide la llave, la prueba, y recién ahí la guarda
orch gateway keys add openai sk-…       # o pásala en línea
orch gateway keys list                  # hints y tier solamente, nunca la llave
orch gateway keys remove openai sk-…abcd

orch gateway                            # arranca el gateway primero
orch gateway connect opencode --allow-user-scope
orch gateway status                     # vivo/cooldown, posición del anillo, rotaciones

Solo OpenCode escribe opcionalmente un archivo de config (--allow-user-scope). Todo lo demás: orch gateway connect (paste OpenAI-compat) o connect anthropic. Matriz: claves del gateway · receta OpenAI-compat.

Respuesta esperada#

keys add imprime openai sk-…abcd: ok, added to the rotation ring, o probe failed, not saved (…) — y no guarda nada cuando la prueba falla. connect opencode imprime Created o Updated OpenCode config → <path>, nombra el proveedor (Orchemax, modelo por defecto orchemax/auto si no tenías ninguno), y te dice que reinicies OpenCode. También deja ORCH_GATEWAY_KEY listo para este workspace.

Trampas#

  • Varias llaves por proveedor es una función. Llaves separadas por coma son un anillo de rotación; el gateway lo avanza solo ante 429s y cooldowns, así que el agente nunca ve un rate limit. orch gateway status muestra en qué parte del anillo vas.
  • Una llave nunca se imprime de vuelta. add, list y remove muestran solo hints (sk-…abcd), que además es como se identifica una en remove.
  • add prueba antes de guardar. Una llave mal tipeada o muerta se rechaza en el prompt, no en la primera petición.
  • Solo OpenCode escribe config con consentimiento. Necesita --allow-user-scope. Los demás asientos imprimen env para pegar una vez — Orchemax no reescribe archivos ajenos sin ese flag.
  • Reinicia OpenCode después de conectar. La configuración se lee al arrancar.
  • Solo dos protocolos. Claude Code con plan mantiene su login (agents.auth.claude: account) salvo que fuerces gateway con API key de Anthropic (passthrough, sin anillo OpenRouter). Agentes BYO OpenAI-compat (OpenClaude, Command Code, …) usan orch gateway connect — ver connect-openclaude-gateway. El gateway responde 403 a bearers OAuth de Anthropic (sk-ant-oat…) o la cabecera anthropic-beta: oauth-2025-04-20.
  • Las llaves viven en el keys.env de machine-home, no en orch.yaml — una bóveda para todos los workspaces de la máquina, y nada con forma de llave en tu repo.
  • Chair desde el turno 1. Tras connect, OpenCode recibe instructions hacia ORCH_RUNTIME / protocolo: no hace falta decir “eres Chair?” ni abrir el tour de skills. Pendientes de dogfood y docs: claves del gateway.