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ão | Componentes |
|---|---|
| Transcrição | <ScrollBox stickyScroll> + <Markdown> |
| Cartões de ferramentas | <Code> e <Diff> |
| Prompt | <Textarea> |
| Paleta | <Modal> + <Select searchable> |
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
| Tecla | Ação |
|---|---|
Enter | Enviar |
Shift+Tab | Alternar agente (build / plan) |
Ctrl+P | Comandos |
Ctrl+X depois L | Sessões |
Ctrl+X depois N | Nova sessão |
Esc duas vezes | Interromper a sessão em execução |
Conectar um servidor local
# From any directory:opencode service status # If stopped: opencode service startbunx @textjs/opencode@latest proxyDeixe 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.