opencode serve 명령은 opencode 클라이언트가 사용할 수 있는 OpenAPI 엔드포인트를 노출하는 headless HTTP 서버를 실행합니다.
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
플래그 설명 기본값 --port수신 대기할 포트 4096--hostname수신 대기할 호스트명 127.0.0.1--mdnsmDNS 탐지 활성화 false--mdns-domainmDNS 서비스의 사용자 지정 도메인 이름 opencode.local--cors허용할 추가 브라우저 origin []
--cors는 다수 시간을 통과될 수 있습니다:
opencode serve --cors http://localhost:5173 --cors https://app.example.com
OPENCODE_SERVER_PASSWORD를 설정하여 서버를 HTTP Basic auth로 보호합니다. opencode 또는 OPENCODE_SERVER_USERNAME를 오버라이드로 설정하는 사용자의 기본값. 이것은 opencode serve와 opencode web 둘 다에 적용합니다.
OPENCODE_SERVER_PASSWORD = your-password opencode serve
opencode를 실행하면 TUI와 서버를 시작합니다. TUI는 어디에 있습니까?
서버와 대화하는 클라이언트. 서버는 OpenAPI 3.1 spec을 노출
끝점. 이 엔드포인트는 SDK 을 생성하는 데도 사용됩니다.
이 아키텍처는 opencode 지원 여러 클라이언트를 허용하고 opencode programmatically와 상호 작용 할 수 있습니다.
독립 서버를 시작하려면 opencode serve를 실행할 수 있습니다. 당신이 있는 경우에
opencode TUI 실행, opencode serve 새로운 서버를 시작합니다.
TUI를 시작하면 무작위로 포트와 호스트 이름을 할당합니다. 대신 --hostname와 --port flags 에서 전달할 수 있습니다. 그런 다음 서버에 연결하십시오.
/tui 엔드포인트는 서버를 통해 TUI를 구동하는 데 사용될 수 있습니다. 예를 들어 미리 작성하거나 프롬프트를 실행할 수 있습니다. 이 설정은 opencode IDE 플러그인에 의해 사용됩니다.
서버는 OpenAPI 3.1 spec을 게시합니다.
http://<hostname>:<port>/doc
예를 들어, http://localhost:4096/doc. 클라이언트를 생성하거나 요청 및 응답 유형을 검사하는 spec를 사용하십시오. 또는 Swagger 탐험가에서 볼 수 있습니다.
opencode 서버는 다음과 같은 API를 노출합니다.
방법 경로 설명 응답 GET/global/health서버 건강 및 버전 { healthy: true, version: string }GET/global/event글로벌 이벤트(SSE 스트림) 이벤트 스트림
방법 경로 설명 응답 GET/project모든 프로젝트 보기 Project[]GET/project/current현재 프로젝트 가져 오기 프로젝트
방법 경로 설명 응답 GET/path현재 경로 받기 PathGET/vcs현재 프로젝트의 VCS 정보 받기 VcsInfo
방법 경로 설명 응답 POST/instance/dispose현재 인스턴스를 해제 boolean
방법 경로 설명 응답 GET/config구성정보 ConfigPATCH/config업데이트 구성 ConfigGET/config/providers목록 제공업체 및 기본 모델 { providers: 사이트 맵 , default: { [key: string]: string } }
방법 경로 설명 응답 GET/provider모든 공급자 목록 { all: Provider[] , default: {...}, connected: string[] }GET/provider/auth공급자 인증 메서드 가져오기 { [providerID: string]: ProviderAuthMethod[] }POST/provider/{id}/oauth/authorizeOAuth를 사용한 공급자 허가 ProviderAuthAuthorizationPOST/provider/{id}/oauth/callback공급자를 위한 OAuth 콜백 boolean
방법 경로 설명 주 GET/session모든 세션 일람표 반환 Session[] POST/session새 세션 만들기 몸: { parentID?, title? }, 반환 Session GET/session/status모든 세션의 세션 상태를 가져옵니다 { [sessionID: string]: SessionStatus }GET/session/:id세션 상세보기 반품 Session DELETE/session/:id세션 삭제 및 모든 데이터 booleanPATCH/session/:id업데이트 세션 속성 본체: { title? }, 반환 Session GET/session/:id/children세션의 어린이 세션 리턴 Session[] GET/session/:id/todo세션별 도우미 목록 받기 Todo[]POST/session/:id/init분석 응용 프로그램 및 AGENTS.md 몸: { messageID, providerID, modelID }, 반환 boolean POST/session/:id/fork메시지의 기존 세션 몸: { messageID? }, 반환 Session POST/session/:id/abort운영 중인 세션 반품 boolean POST/session/:id/share세션 공유 SessionDELETE/session/:id/share세션 공유 SessionGET/session/:id/diff/session/:id/diffmessageID?, 반환 FileDiff[]POST/session/:id/summarize세션을 요약 본체: { providerID, modelID }, boolean 반환 POST/session/:id/revert메시지 재생 몸: { messageID, partID? }, 반환 boolean POST/session/:id/unrevert통일된 모든 메시지 반품 boolean POST/session/:id/permissions/:permissionID허가 요청 대응 본체: { response, remember? }, boolean
방법 경로 설명 주 GET/session/:id/message세션의 목록 메시지 쿼리: limit?, { info: Message , parts: Part[] }[] POST/session/:id/message응답을 위해 메시지를 보내고 기다립니다 몸: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, 반환 { info: Message , parts: Part[] } GET/session/:id/message/:messageID메시지 보내기 { info: Message , parts: Part[] }POST/session/:id/prompt_async비동기적으로 메시지 보내기 몸: /session/:id/message와 동일, 204 No Content를 반환 POST/session/:id/command슬래시 명령어 실행 본체: { messageID?, agent?, model?, command, arguments }, 반환 { info: Message , parts: Part[] } POST/session/:id/shellshell 명령 실행 체: { agent, model?, command }, 반환 { info: Message , parts: Part[] }
방법 경로 설명 응답 GET/find?pattern=<pat>파일에서 텍스트 검색 path, lines, line_number, absolute_offset, submatches가 포함된 일치 객체 배열GET/find/file?query=<q>이름으로 파일/디렉터리 찾기 string[] (경로)GET/find/symbol?query=<q>워크스페이스 심볼 찾기 Symbol[]GET/file?path=<path>파일 및 디렉터리 목록 FileNode[]GET/file/content?path=<p>파일 읽기 FileContentGET/file/status추적 중인 파일 상태 가져오기 File[]
query (required) - 검색 문자열 (fuzzy 일치)
type (선택 사항) - "file" 또는 "directory"에 제한 결과
directory (선택 사항) - 검색에 대한 프로젝트 루트를 무시
(선택) limit - 최대 결과 (1-200)
dirs (옵션) - 레거시 플래그 ("false"는 파일만 반환)
방법 경로 설명 응답 GET/experimental/tool/ids모든 도구 ID 도구GET/experimental/tool?provider=<p>&model=<m>모델용 JSON 스키마 목록 도구 목록
방법 경로 설명 응답 GET/agent이용 가능한 모든 에이전트 에이전트[]
방법 경로 설명 응답 POST/log로그 입력 바디: { service, level, message, extra? } boolean
방법 경로 설명 응답 POST/tui/append-prompt프롬프트에 텍스트를 부여 booleanPOST/tui/open-help도움말 대화 열기 booleanPOST/tui/open-sessions세션 선택 안내 booleanPOST/tui/open-themes테마 선택 안내 booleanPOST/tui/open-models모델 선택 안내 booleanPOST/tui/submit-prompt현재 프롬프트 제출 booleanPOST/tui/clear-prompt시프트 클리어 booleanPOST/tui/execute-command명령어 실행({ command }) booleanPOST/tui/show-toast쇼 토스트({ title?, message, variant }) booleanGET/tui/control/next다음 컨트롤 요청 시 기다리고 제어 요청 개체 POST/tui/control/response통제 요청({ body }) 대응 boolean
방법 경로 설명 응답 PUT/auth/:id인증 자격 증명 몸은 공급자 스키마를 일치해야 합니다 boolean
방법 경로 설명 응답 GET/event서버 침묵 이벤트 스트림. 첫 번째 이벤트는 server.connected, 그 후 버스 이벤트 Server-sent event stream
방법 경로 설명 응답 GET/docOpenAPI 3.1 사양 HTML 페이지 OpenAPI 사양