OpenCode no console

Como a TUI do OpenCode Lite é construída com Text.js e como executá-la localmente.

OpenCode é um agente de programação de código aberto. OpenCode Lite é um cliente de console para ele, desenvolvido com Text.js.

Experimentar

  • Neste site: acesse OpenCode e abra o DevTools.
  • Localmente: bunx create-text-app my-app --template opencode.

O site executa um ambiente isolado com um agente de respostas programadas. Digite qualquer prompt.

Anatomia

RegiãoComponentes
Transcrição<ScrollBox stickyScroll> + <Markdown>
Cartões de ferramentas<Code> e <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

TeclaAção
EnterEnviar
Shift+TabAlternar agente (build / plan)
Ctrl+PComandos
Ctrl+X depois LSessões
Ctrl+X depois NNova sessão
Esc duas vezesInterromper a sessão em execução

Conectar um servidor local

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

Deixe a ponte em execução. Na página do OpenCode, digite http://127.0.0.1:4096, pressione Conectar e permita o acesso à rede local se o Chrome solicitar. Depois, digite o código de pareamento que a ponte exibiu. A página permanece pareada até a ponte reiniciar ou você pressionar Desconectar. Use a URL da ponte, não a porta do serviço: a ponte fornece a credencial do serviço e os cabeçalhos CORS. Encerre a ponte com Ctrl+C quando terminar.

Para um servidor em primeiro plano que já esteja na porta 4096, execute bunx @textjs/opencode@latest proxy --port 4097 --target http://127.0.0.1:4096 e conecte a página à porta 4097. Para um servidor em primeiro plano protegido por senha, exporte a variável OPENCODE_PASSWORD dele no shell da ponte; não coloque uma senha em uma URL do navegador.

A ponte é o pacote @textjs/opencode. Ele não tem dependências e também funciona com npx no Node 22 ou posterior. Dentro de um projeto Text.js, text proxy inicia a mesma ponte.

Editar esta página no GitHub