La commande opencode serve excute un serveur HTTP sans tte qui expose un point de terminaison OpenAPI qu’un client opencode peut utiliser.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
Flag Description Default --portPort d’coute 4096--hostnameNom d’hte d’coute 127.0.0.1--mdnsActiver la dcouverte mDNS false--corsOrigines de navigateur supplmentaires autoriser []
--cors peut tre pass plusieurs fois :
opencode serve --cors http://localhost:5173 --cors https://app.example.com
Lorsque vous excutez opencode, il dmarre un TUI et un serveur. Le TUI est le client qui communique avec le serveur. Le serveur expose un point de terminaison de spcification OpenAPI 3.1. Ce point de terminaison est galement utilis pour gnrer un SDK .
Cette architecture permet opencode de prendre en charge plusieurs clients et vous permet d’interagir avec opencode par programmation.
Vous pouvez excuter opencode serve pour dmarrer un serveur autonome. Si le TUI opencode est en cours d’excution, opencode serve dmarrera un nouveau serveur.
Lorsque vous dmarrez le TUI, il assigne alatoirement un port et un nom d’hte. Vous pouvez la place passer le --hostname et le --port indicateurs . Ensuite, utilisez-le pour vous connecter son serveur.
Le point de terminaison /tui peut tre utilis pour piloter le TUI via le serveur. Par exemple, vous pouvez prremplir ou excuter un prompt. Cette configuration est utilise par les plugins IDE d’OpenCode.
Le serveur publie une spcification OpenAPI 3.1 qui peut tre consulte :
http://<hostname>:<port>/doc
Par exemple, http://localhost:4096/doc. Utilisez la spcification pour gnrer des clients ou inspecter les types de requte et de rponse. Ou consultez-la dans un explorateur Swagger.
Le serveur opencode expose les API suivantes.
Method Path Description Response GET/global/healthObtenir la sant du serveur et la version { healthy: true, version: string }GET/global/eventObtenir les vnements globaux (flux SSE) Flux d’vnements
Method Path Description Response GET/projectLister tous les projets Project[]GET/project/currentObtenir le projet actuel Project
Method Path Description Response GET/pathObtenir le chemin actuel PathGET/vcsObtenir les infos VCS pour le projet actuel VcsInfo
Method Path Description Response POST/instance/disposeSupprimer l’instance actuelle boolean
Method Path Description Response GET/configObtenir les infos de configuration ConfigPATCH/configMettre jour la configuration ConfigGET/config/providersLister les fournisseurs et les modles par dfaut { providers: Provider[] , default: { [key: string]: string } }
Method Path Description Response GET/providerLister tous les fournisseurs { all: Provider[] , default: {...}, connected: string[] }GET/provider/authObtenir les mthodes d’authentification du fournisseur { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeAutoriser un fournisseur en utilisant OAuth ProviderAuthAuthorizationPOST/provider/{id}/oauth/callbackGrer le rappel OAuth pour un fournisseur boolean
Method Path Description Notes GET/sessionLister toutes les sessions Retourne Session[] POST/sessionCrer une nouvelle session body : { parentID?, title? }, retourne Session GET/session/statusObtenir le statut de session pour toutes les sessions Retourne { [sessionID: string]: SessionStatus } GET/session/:idObtenir les dtails de la session Retourne Session DELETE/session/:idSupprimer une session et toutes ses donnes Retourne boolean PATCH/session/:idMettre jour les proprits de la session body : { title? }, retourne Session GET/session/:id/childrenObtenir les sessions enfants d’une session Retourne Session[] GET/session/:id/todoObtenir la liste de tches pour une session Retourne Todo[] POST/session/:id/initAnalyser l’application et crer AGENTS.md body : { messageID, providerID, modelID }, retourne boolean POST/session/:id/forkForker une session existante un message body : { messageID? }, retourne Session POST/session/:id/abortAvorter une session en cours Retourne boolean POST/session/:id/sharePartager une session Retourne Session DELETE/session/:id/shareAnnuler le partage d’une session Retourne Session GET/session/:id/diffObtenir la diff pour cette session query : messageID?, retourne FileDiff[] POST/session/:id/summarizeRsumer la session body : { providerID, modelID }, retourne boolean POST/session/:id/revertRtablir un message body : { messageID, partID? }, retourne boolean POST/session/:id/unrevertRestaurer tous les messages rtablis Retourne boolean POST/session/:id/permissions/:permissionIDRpondre une demande d’autorisation body : { response, remember? }, retourne boolean
Method Path Description Notes GET/session/:id/messageLister les messages dans une session query : limit?, retourne { info: Message , parts: Part[] }[] POST/session/:id/messageEnvoyer un message et attendre la rponse body : { messageID?, model?, agent?, noReply?, system?, tools?, parts }, retourne { info: Message , parts: Part[] } GET/session/:id/message/:messageIDObtenir les dtails du message Retourne { info: Message , parts: Part[] } POST/session/:id/prompt_asyncEnvoyer un message de manire asynchrone (sans attente) body : mme que /session/:id/message, retourne 204 No Content POST/session/:id/commandExcuter une commande slash body : { messageID?, agent?, model?, command, arguments }, retourne { info: Message , parts: Part[] } POST/session/:id/shellExcuter une commande shell body : { agent, model?, command }, retourne { info: Message , parts: Part[] }
Method Path Description Response GET/commandLister toutes les commandes Command[]
Method Path Description Response GET/find?pattern=<pat>Rechercher du texte dans les fichiers Tableau d’objets de correspondance avec path, lines, line_number, absolute_offset, submatches GET/find/file?query=<q>Trouver des fichiers et rpertoires par nom string[] (chemins)GET/find/symbol?query=<q>Trouver les symboles de l’espace de travail Symbol[]GET/file?path=<path>Lister les fichiers et rpertoires FileNode[]GET/file/content?path=<p>Lire un fichier FileContentGET/file/statusObtenir le statut des fichiers suivis File[]
query (requis) - chane de recherche (correspondance floue)
type (facultatif) - limiter les rsultats "file" ou "directory"
directory (facultatif) - remplacer la racine du projet pour la recherche
limit (facultatif) - rsultats max (1-200)
dirs (facultatif) - indicateur obsolte ("false" retourne uniquement les fichiers)
Method Path Description Response GET/experimental/tool/idsLister tous les ID d’outils ToolIDsGET/experimental/tool?provider=<p>&model=<m>Lister les outils avec des schmas JSON pour un modle ToolList
Method Path Description Response GET/lspObtenir le statut du serveur LSP LSPStatus[]GET/formatterObtenir le statut du formateur FormatterStatus[]GET/mcpObtenir le statut du serveur MCP { [name: string]: MCPStatus }POST/mcpAjouter un serveur MCP dynamiquement body : { name, config }, retourne l’objet de statut MCP
Method Path Description Response GET/agentLister tous les agents disponibles Agent[]
Method Path Description Response POST/logcrire une entre de journal. Body : { service, level, message, extra? } boolean
Method Path Description Response POST/tui/append-promptAjouter du texte au prompt booleanPOST/tui/open-helpOuvrir la bote de dialogue d’aide booleanPOST/tui/open-sessionsOuvrir le slecteur de session booleanPOST/tui/open-themesOuvrir le slecteur de thme booleanPOST/tui/open-modelsOuvrir le slecteur de modle booleanPOST/tui/submit-promptSoumettre le prompt actuel booleanPOST/tui/clear-promptEffacer le prompt booleanPOST/tui/execute-commandExcuter une commande ({ command }) booleanPOST/tui/show-toastAfficher un toast ({ title?, message, variant }) booleanGET/tui/control/nextAttendre la prochaine demande de contrle Objet de demande de contrle POST/tui/control/responseRpondre une demande de contrle ({ body }) boolean
Method Path Description Response PUT/auth/:idDfinir les informations d’authentification. Le corps doit correspondre au schma du fournisseur boolean
Method Path Description Response GET/eventFlux d’vnements envoys par le serveur. Le premier vnement est server.connected, puis les vnements du bus Flux d’vnements envoys par le serveur
Method Path Description Response GET/docSpcification OpenAPI 3.1 Page HTML avec spcification OpenAPI