
에이전트에게 글 한 편을 맡깁니다. 에이전트는 초안을 쓰다가 단어 수를 알아야 해서 플러그인 파일을 직접 만들고, 같은 턴에 그 도구를 불러 1,248단어라고 알려 줍니다. 이어서 읽는 시간을 계산하는 도구를 하나 더 만들고 "6분"이라고 답하죠.
OpenCode 팀이 새 글 「OpenCode Reloaded」에서 보여 준 예시 세션입니다.
그동안 OpenCode에서 플러그인을 바꾸려면 프로그램을 껐다 켜거나 /reload를 쳐야 했어요.
OpenCode 2는 그 과정 없이 바뀐 내용을 모든 세션에 바로 반영합니다.
OpenCode 2는 설정, MCP 서버, 플러그인, 스킬, 도구를 대화 도중에 다시 불러옵니다. 팀은 이 과정에서 프롬프트 캐시도 깨지 않는다고 설명해요. 다만 터미널 화면(TUI)으로 쓰면 여전히 답답합니다. 사용자들이 새 버전에서 생긴 버그를 여럿 신고했고요.
OpenCode 2는 도구를 바꿔도 멈추지 않습니다
OpenCode 팀은 핫 리로드(hot reload)가 되는 범위를 이렇게 적었습니다.
- 설정 파일을 고치면 바로 반영합니다.
- MCP 서버를 연결하면 바로 씁니다.
- 플러그인을 새로 쓰면 곧바로 불러옵니다.
- 에이전트가 도구를 직접 만들고 같은 턴에 호출합니다.
이제 프로그램을 끄지도, /reload를 치지도, 새 세션을 열지도 않아도 됩니다.
예시 세션에서 에이전트는 도구를 3개에서 5개로, 스킬을 2개에서 3개로 늘렸습니다. 그동안 대화를 한 번도 끊지 않았고요.
사용자들은 캐시가 자꾸 깨진다고 불평했습니다
올여름 한 개발자가 「OpenCode를 그만 쓰세요」라는 글을 올렸고, 해커뉴스에서 420점을 받았습니다. 글쓴이는 OpenCode가 매 턴 AGENTS.md를 다시 읽고 시스템 프롬프트에 오늘 날짜를 넣는다고 짚었어요. 그러면 OpenCode가 매번 다른 앞부분을 보내고, 모델 회사는 캐시를 못 씁니다. 사용자는 같은 내용을 비싼 값에 다시 보내게 되죠.
OpenCode 2 개발에 참여한 킷 랭턴은 7월에 X에서 이 문제를 직접 언급했습니다. "캐시를 깨지 않고 컨텍스트를 바꿀 수 있게 만들었다"는 내용이에요.

영상에서 킷은 AGENTS.md 한 줄과 오늘 날짜가 프롬프트에 어떻게 들어가는지부터 보여 줍니다. 팀도 새 글 첫머리에서 "캐시는 당연히 깨지 않는다"고 강조합니다.
한 가지는 구분해 둡니다. 팀은 캐시를 지킨다고 설명하지만, 새 버전의 캐시 적중률을 따로 측정한 공개 자료는 아직 찾지 못했어요. 구버전은 제3자인 시스티마(systima.ai)가 한 번 측정했습니다. 사용자가 입력하기 전에 들어가는 기본 토큰을 클로드 코드 약 3만 3천 개, OpenCode 약 7천 개로 집계했어요.
플러그인들이 같은 목록을 서로 고쳤습니다
OpenCode는 모델, 도구, 에이전트, 스킬을 전부 플러그인으로 조립합니다. 기본 동작도 대부분 내장 플러그인이 맡고, 사용자는 플러그인을 더 깔거나 직접 쓰거나 OpenCode에게 써 달라고 할 수 있어요.
팀은 모델 목록을 예로 들어 문제를 설명합니다. 내장 플러그인 하나는 models.dev에서 모델 정보를 받아 목록을 채우고, 실행 중에 주기적으로 새로 받아옵니다. 다른 플러그인은 그 목록에서 특정 회사를 빼거나 출력 한도를 절반으로 줄이죠.
플러그인들이 목록 하나를 제자리에서 고치면, OpenCode는 몇 번 어떤 순서로 돌았느냐에 따라 매번 다른 목록을 내놓습니다. 새로 고침 플러그인이 한 번 돌면 빼 둔 회사를 다시 넣고, 한도를 줄이는 플러그인은 돌 때마다 절반씩 또 줄여요.
두 메서드로 목록을 매번 새로 만듭니다
OpenCode 2는 플러그인에게 목록을 직접 고치지 말라고 합니다. 각 플러그인은 목록을 어떻게 바꿀지 적은 함수만 등록하고, OpenCode는 그 함수들을 순서대로 보관해요.
다시 불러올 때마다 OpenCode는 빈 목록에서 출발합니다. 등록된 함수를 차례로 한 번씩만 통과시키고, 완성된 목록을 모든 세션에 내보내요. 몇 번을 다시 돌려도 OpenCode는 빼 둔 회사를 다시 넣지 않고, 한도도 딱 한 번만 절반으로 줄입니다.
팀은 이 방식을 메서드 두 개짜리 State라는 작은 틀로 묶었습니다.
| 메서드 | 하는 일 |
|---|---|
transform | 바꾸는 함수를 등록합니다 |
reload | 빈 상태에서 등록된 함수를 순서대로 다시 돌립니다 |
OpenCode는 스킬, 명령, 에이전트, 도구, MCP 서버, 코드 포매터 등록부를 전부 이 틀로 만들었습니다.
v2.0.18 저장소의 packages/core/src/state.ts에서도 같은 구조를 확인할 수 있어요.
파일 감시도 내장 플러그인이 맡습니다. 새 플러그인 파일이 생기면 OpenCode가 바로 실행하고, 파일을 지우면 그 플러그인이 등록한 함수를 걷어 냅니다. 파일을 고치면 지웠다가 새로 실행한 것처럼 처리해요.
팀은 OpenCode 2를 이미 다른 이름으로 배포하고 있습니다
팀은 아직 공식 발표를 하지 않았습니다. 같은 사이트에 「OpenCode 2.0」이라는 글 주소만 만들어 두고 본문은 비워 뒀어요.
그래도 지금 바로 설치할 수 있습니다.
| 패키지 | 최신 버전 | 비고 |
|---|---|---|
@opencode/cli | 2.0.18 | 공식. 설치하면 opencode와 opencode2 명령이 생김 |
opencode-ai | 1.18.32 | 기존 공식 패키지. 아직 1.x |
opencode2 | 비공식 | 제3자 재포장본. 이름만 비슷함 |
팀은 9월 11일 2.0.0을 올린 뒤 2주 만에 열여덟 번 더 배포했습니다.
설치 전에 패키지 이름부터 확인하세요. 제3자가 공식 명령과 똑같은 opencode2라는 이름으로 npm에 재포장본을 올려 뒀거든요.
OpenCode 팀은 올해 막힐 때마다 다른 길을 열었습니다
1월 초 DHH는 자기 리눅스 배포판 오마키(Omarchy)에 OpenCode를 기본 탑재했습니다. 며칠 뒤 사용자들이 "클로드 Max 연결이 끊겼다"는 이슈를 열었고, 댓글을 386개나 달았어요. 개발자 댁스 라드는 그 이슈에 "OpenCode만 콕 집어 막았을 수도 있다"고 적었습니다.
팀은 다른 길을 바로 열었습니다. 다음 날 챗GPT 요금제로 로그인하는 기능을 넣었고, 1월 중순 깃허브는 코파일럿에서 OpenCode를 공식 지원한다고 알렸어요. 3월에는 댁스가 "앤트로픽의 법적 요청"이라는 제목으로 앤트로픽 관련 코드를 걷어 냈습니다.
개발자들은 지금까지 OpenCode 저장소에 별을 21만 개 눌렀습니다. 홈페이지에는 한 달에 1,600만 명의 개발자가 쓴다고 적어 뒀어요. 팀이 직접 집계한 숫자입니다.
터미널 화면에서는 아직 속이 터집니다
제가 써 보니 팀이 OpenCode를 확실히 많이 다듬었더라고요. 그래도 터미널 화면으로 쓰면 여전히 답답해요. 저장소 이슈를 보면 그 답답함을 저만 느끼지는 않습니다.
- 팀은 새 버전으로 옮길 때 터미널 설정을 따로 빼 두고 안 읽는 버그를 아직 못 고쳤습니다(#50842).
- 플러그인은 1.x에서 터미널 화면에 알림을 띄웠지만, 2.0에서는 아직 못 띄웁니다(#50984).
- 사용자들은 플러그인 관련 충돌도 여러 건 신고했어요.
- 긴 글을 붙여 넣으면 키 한 번 누를 때마다 수십 밀리초씩 밀리는데, 팀은 이것도 아직 못 고쳤습니다(#49635).
저장소에서 제목이나 본문에 "TUI"가 들어간 새 이슈를 2주 단위로 집계해 보면, 2.0 배포 전 두 구간(8월 13일부터 26일, 8월 27일부터 9월 10일)과 배포 후 구간(9월 11일부터 26일) 모두 전체 새 이슈의 22-24%였습니다. 팀은 2.0으로 터미널 불편을 더 키우지는 않았지만, 줄이지도 못했어요.
남는 생각
OpenCode 팀은 에이전트가 자기 환경을 스스로 고치는 쪽으로 방향을 잡았습니다. 플러그인에게 목록을 직접 고치지 말고 바꾸는 함수만 등록하게 한 뒤, 빈 상태에서 매번 다시 돌립니다. 플러그인을 직접 만드는 분이라면 이 설계 하나만 가져가도 순서 버그를 크게 줄일 수 있습니다.
저는 당분간 두 가지를 나눠 쓰려고 합니다. 에이전트에게 도구를 만들어 쓰게 하는 실험은 OpenCode 2로 하고, 매일 붙잡고 일하는 터미널 작업은 화면 버그가 정리될 때까지 지켜보겠습니다.
원문·소스
- OpenCode Reloaded (OpenCode 노트): https://anoma.ly/notes/opencode-reloaded/
- 킷 랭턴의 캐시 관련 X 게시물: https://x.com/kitlangton/status/2075749116760457346
- OpenCode 저장소: https://github.com/anomalyco/opencode
- State 소스 (v2.0.18): https://github.com/anomalyco/opencode/blob/v2.0.18/packages/core/src/state.ts
- npm @opencode/cli: https://www.npmjs.com/package/@opencode/cli
- npm opencode-ai: https://www.npmjs.com/package/opencode-ai
- Stop Using OpenCode (wren.wtf): https://wren.wtf/shower-thoughts/stop-using-opencode/
- 클로드 코드와 OpenCode 토큰 오버헤드 측정 (systima.ai): https://systima.ai/blog/claude-code-vs-opencode-token-overhead
- 클로드 Max 연결 이슈 #7410: https://github.com/anomalyco/opencode/issues/7410
- 코덱스 로그인 추가 (v1.1.11): https://github.com/anomalyco/opencode/releases/tag/v1.1.11
- 깃허브 코파일럿 OpenCode 지원: https://github.blog/changelog/2026-01-16-github-copilot-now-supports-opencode/
- 앤트로픽 관련 코드 제거 PR #18186: https://github.com/anomalyco/opencode/pull/18186
- 오마키 OpenCode 추가 PR #4071: https://github.com/basecamp/omarchy/pull/4071
- 터미널 화면 이슈: https://github.com/anomalyco/opencode/issues/50842, https://github.com/anomalyco/opencode/issues/50984, https://github.com/anomalyco/opencode/issues/49635
- OpenCode 홈페이지: https://opencode.ai/
- TUI 이슈 집계 검색 (예: 9월 11일부터 26일): https://github.com/anomalyco/opencode/issues?q=is%3Aissue+TUI+created%3A2026-09-11..2026-09-26
FAQ
자주 묻는 질문
- OpenCode 2의 핫 리로드는 무엇인가요?
- 설정, MCP 서버, 플러그인, 스킬, 도구를 대화 도중에 바꿔도 재시작이나 /reload 없이 모든 세션에 바로 반영하는 기능입니다. 에이전트가 도구를 직접 만들고 같은 턴에 바로 호출할 수도 있어요.
- 설정을 바꾸면 프롬프트 캐시가 깨지지 않나요?
- OpenCode 팀은 캐시를 깨지 않고 다시 불러온다고 설명합니다. 다만 새 버전에서 캐시 적중률을 따로 측정해 공개한 자료는 아직 찾지 못했어요.
- OpenCode 2는 어떻게 설치하나요?
- 팀은 정식 발표 전인데도 공식 npm 패키지 @opencode/cli로 2.0 버전을 배포하고 있습니다. 설치하면 opencode와 opencode2 두 명령을 쓸 수 있어요. 기존 opencode-ai는 아직 1.18 버전이고, npm의 opencode2 패키지는 제3자가 올린 비공식 재포장본이니 조심하세요.
- OpenCode 2의 터미널 화면(TUI)은 좋아졌나요?
- 팀은 내부 설계를 크게 바꿨지만 터미널 화면 버그는 아직 많이 못 고쳤습니다. 새 버전으로 옮길 때 설정을 빠뜨리는 버그, 플러그인 관련 충돌, 긴 입력에서 생기는 지연이 대표적이에요.

SEASON 3
시즌3 「콘텐츠로 팔기」
AI와 콘텐츠를 만들고 고객에게 연결하는 4주
제가 에이전트로 조사하고 쓰고 파는 과정을 그대로 보여 드려요. 그다음 각자의 주제로 같이 만들어 봐요.
10월 2일 OT · 10월 5일부터 월·수 4주 · 10월 31일 오프라인
시즌3 커리큘럼 보기