mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-01 10:16:37 +00:00
157 lines
3.7 KiB
Plaintext
157 lines
3.7 KiB
Plaintext
---
|
|
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는 terminal에서 같은 ACP를 통해 작동합니다. 모든 기능은 지원됩니다:
|
|
|
|
:::note
|
|
`/undo` 및 `/redo`와 같은 일부 내장 슬래시 명령은 현재 지원되지 않습니다.
|
|
:::
|
|
|
|
- 내장 도구 (파일 작업, terminal 명령 등)
|
|
- 사용자 정의 도구 및 슬래시 명령
|
|
- opencode config에서 설정된 MCP 서버
|
|
- `AGENTS.md`의 프로젝트 별 규칙
|
|
- 사용자 정의 포맷 및 라이터
|
|
- 에이전트 및 권한 시스템
|