acp.mdx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. ---
  2. title: ACP Support
  3. description: Use OpenCode in any ACP-compatible editor.
  4. ---
  5. OpenCode는 [Agent Client Protocol](https://agentclientprotocol.com) 또는 (ACP)을 지원하며, 호환 편집기 및 IDE에서 직접 사용할 수 있습니다.
  6. :::tip
  7. ACP를 지원하는 편집기 및 도구 목록의 경우 [ACP 진행 보고서](https://zed.dev/blog/acp-progress-report#available-now)를 확인하십시오.
  8. :::
  9. ACP는 코드 편집기와 AI 코딩 에이전트 간의 통신을 표준화하는 개방형 프로토콜입니다.
  10. ---
  11. ## 구성
  12. ACP를 통해 OpenCode를 사용하려면 `opencode acp` 명령을 실행하려면 편집기를 구성하십시오.
  13. 명령은 OpenCode를 실행하여 JSON-RPC를 통해 편집기와 통신하는 ACP 호환 하위 프로세스로 시작합니다.
  14. 아래는 ACP를 지원하는 인기있는 편집기의 예입니다.
  15. ---
  16. ##### Zed를
  17. [Zed] (https://zed.dev) 구성 (`~/.config/zed/settings.json`)에 추가 :
  18. ```json title="~/.config/zed/settings.json"
  19. {
  20. "agent_servers": {
  21. "OpenCode": {
  22. "command": "opencode",
  23. "args": ["acp"]
  24. }
  25. }
  26. }
  27. ```
  28. 그것을 열려면 **Command Palette **에서 `agent: new thread` 동작을 사용하십시오.
  29. `keymap.json`를 편집하여 키보드 단축키도 결합할 수 있습니다.
  30. ```json title="keymap.json"
  31. [
  32. {
  33. "bindings": {
  34. "cmd-alt-o": [
  35. "agent::NewExternalAgentThread",
  36. {
  37. "agent": {
  38. "custom": {
  39. "name": "OpenCode",
  40. "command": {
  41. "command": "opencode",
  42. "args": ["acp"]
  43. }
  44. }
  45. }
  46. }
  47. ]
  48. }
  49. }
  50. ]
  51. ```
  52. ---
  53. #### JetBrains IDEs의 특징
  54. [JetBrains IDE]에 추가하십시오 (https://www.jetbrains.com/) [documentation]에 따라 acp.json (https://www.jetbrains.com/help/ai-assistant/acp.html):
  55. ```json title="acp.json"
  56. {
  57. "agent_servers": {
  58. "OpenCode": {
  59. "command": "/absolute/path/bin/opencode",
  60. "args": ["acp"]
  61. }
  62. }
  63. }
  64. ```
  65. 그것을 열려면 AI Chat Agent selector의 새로운 'OpenCode' 에이전트를 사용하십시오.
  66. ---
  67. #### Avante.nvim의
  68. [Avante.nvim] (https://github.com/yetone/avante.nvim) 구성에 추가하십시오:
  69. ```lua
  70. {
  71. acp_providers = {
  72. ["opencode"] = {
  73. command = "opencode",
  74. args = { "acp" }
  75. }
  76. }
  77. }
  78. ```
  79. 환경 변수를 전달해야 하는 경우:
  80. ```lua {6-8}
  81. {
  82. acp_providers = {
  83. ["opencode"] = {
  84. command = "opencode",
  85. args = { "acp" },
  86. env = {
  87. OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
  88. }
  89. }
  90. }
  91. }
  92. ```
  93. ---
  94. #### CodeCompanion.nvim의
  95. OpenCode를 [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim)에서 ACP 에이전트로 사용하려면 Neovim config에 다음을 추가하십시오.
  96. ```lua
  97. require("codecompanion").setup({
  98. interactions = {
  99. chat = {
  100. adapter = {
  101. name = "opencode",
  102. model = "claude-sonnet-4",
  103. },
  104. },
  105. },
  106. })
  107. ```
  108. 이 구성은 CodeCompanion을 설정하여 채팅을 위한 ACP 에이전트로 OpenCode를 사용합니다.
  109. 환경 변수 (`OPENCODE_API_KEY`와 같은)를 전달해야하는 경우, CodeCompanion.nvim 문서에서 [Configuring Adapters: Environment variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key)를 참조하십시오.
  110. ## 지원
  111. OpenCode는 터미널에서 같은 ACP를 통해 작동합니다. 모든 기능은 지원됩니다:
  112. :::note
  113. `/undo` 및 `/redo`와 같은 일부 내장 슬래시 명령은 현재 지원되지 않습니다.
  114. :::
  115. - 내장 도구 (파일 작업, 터미널 명령 등)
  116. - 사용자 정의 도구 및 슬래시 명령
  117. - OpenCode config에서 설정된 MCP 서버
  118. - `AGENTS.md`의 프로젝트 별 규칙
  119. - 사용자 정의 포맷 및 라이터
  120. - 에이전트 및 권한 시스템