| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- ---
- title: ACP Support
- description: Use OpenCode in any ACP-compatible editor.
- ---
- OpenCode는 [Agent Client Protocol](https://agentclientprotocol.com) 또는 (ACP)을 지원하며, 호환 편집기 및 IDE에서 직접 사용할 수 있습니다.
- :::tip
- ACP를 지원하는 편집기 및 도구 목록의 경우 [ACP 진행 보고서](https://zed.dev/blog/acp-progress-report#available-now)를 확인하십시오.
- :::
- ACP는 코드 편집기와 AI 코딩 에이전트 간의 통신을 표준화하는 개방형 프로토콜입니다.
- ---
- ## 구성
- ACP를 통해 OpenCode를 사용하려면 `opencode acp` 명령을 실행하려면 편집기를 구성하십시오.
- 명령은 OpenCode를 실행하여 JSON-RPC를 통해 편집기와 통신하는 ACP 호환 하위 프로세스로 시작합니다.
- 아래는 ACP를 지원하는 인기있는 편집기의 예입니다.
- ---
- ##### Zed를
- [Zed] (https://zed.dev) 구성 (`~/.config/zed/settings.json`)에 추가 :
- ```json title="~/.config/zed/settings.json"
- {
- "agent_servers": {
- "OpenCode": {
- "command": "opencode",
- "args": ["acp"]
- }
- }
- }
- ```
- 그것을 열려면 **Command Palette **에서 `agent: new thread` 동작을 사용하십시오.
- `keymap.json`를 편집하여 키보드 단축키도 결합할 수 있습니다.
- ```json title="keymap.json"
- [
- {
- "bindings": {
- "cmd-alt-o": [
- "agent::NewExternalAgentThread",
- {
- "agent": {
- "custom": {
- "name": "OpenCode",
- "command": {
- "command": "opencode",
- "args": ["acp"]
- }
- }
- }
- }
- ]
- }
- }
- ]
- ```
- ---
- #### JetBrains IDEs의 특징
- [JetBrains IDE]에 추가하십시오 (https://www.jetbrains.com/) [documentation]에 따라 acp.json (https://www.jetbrains.com/help/ai-assistant/acp.html):
- ```json title="acp.json"
- {
- "agent_servers": {
- "OpenCode": {
- "command": "/absolute/path/bin/opencode",
- "args": ["acp"]
- }
- }
- }
- ```
- 그것을 열려면 AI Chat Agent selector의 새로운 'OpenCode' 에이전트를 사용하십시오.
- ---
- #### Avante.nvim의
- [Avante.nvim] (https://github.com/yetone/avante.nvim) 구성에 추가하십시오:
- ```lua
- {
- acp_providers = {
- ["opencode"] = {
- command = "opencode",
- args = { "acp" }
- }
- }
- }
- ```
- 환경 변수를 전달해야 하는 경우:
- ```lua {6-8}
- {
- acp_providers = {
- ["opencode"] = {
- command = "opencode",
- args = { "acp" },
- env = {
- OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
- }
- }
- }
- }
- ```
- ---
- #### CodeCompanion.nvim의
- OpenCode를 [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim)에서 ACP 에이전트로 사용하려면 Neovim config에 다음을 추가하십시오.
- ```lua
- require("codecompanion").setup({
- interactions = {
- chat = {
- adapter = {
- name = "opencode",
- model = "claude-sonnet-4",
- },
- },
- },
- })
- ```
- 이 구성은 CodeCompanion을 설정하여 채팅을 위한 ACP 에이전트로 OpenCode를 사용합니다.
- 환경 변수 (`OPENCODE_API_KEY`와 같은)를 전달해야하는 경우, CodeCompanion.nvim 문서에서 [Configuring Adapters: Environment variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key)를 참조하십시오.
- ## 지원
- OpenCode는 터미널에서 같은 ACP를 통해 작동합니다. 모든 기능은 지원됩니다:
- :::note
- `/undo` 및 `/redo`와 같은 일부 내장 슬래시 명령은 현재 지원되지 않습니다.
- :::
- - 내장 도구 (파일 작업, 터미널 명령 등)
- - 사용자 정의 도구 및 슬래시 명령
- - OpenCode config에서 설정된 MCP 서버
- - `AGENTS.md`의 프로젝트 별 규칙
- - 사용자 정의 포맷 및 라이터
- - 에이전트 및 권한 시스템
|