OpenCode dans la console

La construction de la TUI d’OpenCode Lite avec Text.js et son exécution en local.

OpenCode est un agent de programmation open source. OpenCode Lite est un client console pour cet agent, conçu avec Text.js.

Essayer

  • Sur ce site : consultez OpenCode et ouvrez DevTools.
  • En local : bunx create-text-app my-app --template opencode.

Le site exécute un environnement isolé avec un agent scripté. Saisissez la requête de votre choix.

Anatomie

ZoneComposants
Transcription<ScrollBox stickyScroll> + <Markdown>
Cartes d’outils<Code> et <Diff>
Requête<Textarea>
Palette<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>  );}

Touches

ToucheAction
EnterEnvoyer
Shift+TabChanger d’agent (build / plan)
Ctrl+PCommandes
Ctrl+X puis LSessions
Ctrl+X puis NNouvelle session
Esc deux foisInterrompre la session en cours

Connecter un serveur local

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

Laissez la passerelle en cours d’exécution. Sur la page OpenCode, saisissez http://127.0.0.1:4096, appuyez sur Connecter et autorisez l’accès au réseau local si Chrome le demande. Saisissez ensuite le code d’appairage affiché par la passerelle. La page reste appairée jusqu’au redémarrage de la passerelle ou jusqu’à ce que vous appuyiez sur Déconnecter. Utilisez l’URL de la passerelle, pas le port du service : la passerelle fournit l’identifiant d’authentification du service et les en-têtes CORS. Arrêtez-la avec Ctrl+C lorsque vous avez terminé.

Pour un serveur au premier plan déjà sur le port 4096, exécutez bunx @textjs/opencode@latest proxy --port 4097 --target http://127.0.0.1:4096 et connectez la page au port 4097. Pour un serveur au premier plan protégé par mot de passe, exportez sa variable OPENCODE_PASSWORD dans le shell de la passerelle ; ne mettez pas de mot de passe dans une URL de navigateur.

La passerelle est le paquet @textjs/opencode. Elle n’a aucune dépendance et fonctionne aussi avec npx sur Node 22 ou version ultérieure. Dans un projet Text.js, text proxy démarre la même passerelle.

Modifier cette page sur GitHub