OpenCode en la consola

Cómo se construye la TUI de OpenCode Lite con Text.js y cómo ejecutarla localmente.

OpenCode es un agente de programación de código abierto. OpenCode Lite es un cliente de consola para este agente, creado con Text.js.

Probar

  • En este sitio: visita OpenCode y abre DevTools.
  • En local: bunx create-text-app my-app --template opencode.

El sitio ejecuta un entorno aislado con un agente que sigue un guion. Escribe cualquier prompt.

Anatomía

RegiónComponentes
Transcripción<ScrollBox stickyScroll> + <Markdown>
Tarjetas de herramientas<Code> y <Diff>
Prompt<Textarea>
Paleta<Modal> + <Select searchable>
app/session/[id]/page.tsxtsx
export default function SessionPage({ params }: PageProps<{ id: string }>) {  const { messages, send } = useSession(params.id);  return (    <Box className="flex-col grow">      <ScrollBox stickyScroll className="grow">        {messages.map((m) => <MessageView key={m.id} message={m} />)}      </ScrollBox>      <Textarea placeholder="Ask anything…" onSubmit={send} autoFocus />    </Box>  );}

Teclas

TeclaAcción
EnterEnviar
Shift+TabCambiar de agente (compilación / planificación)
Ctrl+PComandos
Ctrl+X y luego LSesiones
Ctrl+X y luego NNueva sesión
Esc dos vecesInterrumpir la sesión en curso

Conectar un servidor local

# From any directory:opencode service status  # If stopped: opencode service startbunx @textjs/opencode@latest proxy

Deja el puente en ejecución. En la página de OpenCode, introduce http://127.0.0.1:4096, pulsa Conectar y permite el acceso a la red local si Chrome lo solicita. Después, introduce el código de vinculación que imprimió el puente. La página permanece vinculada hasta que el puente se reinicie o pulses Desconectar. Usa la URL del puente, no el puerto del servicio: el puente proporciona la credencial del servicio y las cabeceras CORS. Detén el puente con Ctrl+C cuando termines.

Para un servidor en primer plano que ya use el puerto 4096, ejecuta bunx @textjs/opencode@latest proxy --port 4097 --target http://127.0.0.1:4096 y conecta la página al puerto 4097. Para un servidor en primer plano protegido con contraseña, exporta su OPENCODE_PASSWORD en el shell del puente; no incluyas una contraseña en una URL del navegador.

El puente es el paquete @textjs/opencode. No tiene dependencias y también se ejecuta con npx en Node 22 o posterior. Dentro de un proyecto de Text.js, text proxy inicia el mismo puente.

Editar esta página en GitHub