TRENDSHIFT #6 · 2026.05.22 · anomalyco/opencode

OpenCode 딥다이브
터미널에서 사는 오픈소스 코딩 에이전트

164k stars, 23개 모노레포 패키지, Bun + SST + Tauri + SolidJS로 짜인 풀스택 AI 코딩 도구. Claude Code 와 비슷한 자리에 있지만 모든 게 오픈되어 있다.

0먼저, OpenCode 가 뭔가?

한 마디로, 터미널에서 도는 오픈소스 Claude Code.

OpenCode는 anoma.ly(SST 팀이 만든 회사)에서 공개한 오픈소스 AI 코딩 에이전트다. 터미널에서 opencode 한 줄로 띄우면, 내 코드베이스를 이해하고, 파일을 수정하고, 테스트를 돌리고, git 워크플로우까지 자연어 명령으로 처리해 준다.

Claude Code, Cursor, Codex, Gemini CLI 처럼 "코딩 에이전트 CLI" 카테고리에 들어가지만, 결정적 차이가 두 가지 있다. 첫째, MIT 라이선스로 코드가 전부 열려 있어 어떤 LLM 공급자든 갈아 끼울 수 있다. 둘째, 단순 CLI 가 아니라 TUI · 데스크탑 · 웹 · IDE 익스텐션 · SDK · Slack 봇 · GitHub/GitLab 자동화까지 같은 코어 위에서 돌아가는 모노레포 플랫폼이다.

용어
코딩 에이전트 (Coding Agent)
사람의 자연어 지시를 받아 코드베이스를 자율적으로 읽고 쓰는 AI 프로그램. 단순 자동완성과 달리, 파일을 직접 수정하고, 셸 명령을 실행하고, 결과를 보고 다음 행동을 결정한다. 옆자리 주니어 개발자에게 "이거 좀 해줘" 하는 감각.
용어
TUI (Terminal User Interface, 터미널 사용자 인터페이스)
마우스 없이 키보드만으로 조작하는 터미널 안 UI. Vim, htop, k9s 같은 도구가 대표적. OpenCode 의 메인 UI 가 이 형태라 모니터 위에 깔끔하게 떠 있고, 마우스 없이 Tab 하나로 에이전트를 전환한다.

1한 줄 요약

이 글의 핵심 메시지.

핵심 메시지

"Claude Code 가 닫힌 1편이라면,
OpenCode 는 모든 페이지가 펼쳐진 백과사전이다."

같은 코딩 에이전트 카테고리에서, 한쪽은 모델·UI·툴이 한 회사에 묶여 있고, 다른 한쪽은 LLM 공급자·UI 폼팩터·도구 시스템·플러그인까지 전부 교체 가능한 오픈 플랫폼이다. "바이브 코딩"을 하면서 동시에 내부 구조까지 학습 재료로 쓸 수 있는 보기 드문 레포다.

2왜 지금 주목받는가

트렌딩에 머무는 이유 세 가지.

2026년 들어 코딩 에이전트 시장은 폭발적으로 커졌다. 트렌딩 상위에는 Claude Code, Codex, cc-switch, opencode 가 거의 매일 같이 떠 있다. 그 중 OpenCode 가 164k stars · 19.4k forks · 13,287 commits · 809 releases까지 올라온 데에는 명확한 이유가 있다.

이유 1

LLM 공급자 락인이 없다

Anthropic, OpenAI, Google, OpenRouter, AWS Bedrock, Groq, Mistral, 로컬 Ollama 등 어떤 공급자든 opencode.json 한 줄로 갈아 끼울 수 있다. 자체 큐레이션 모델 묶음인 "OpenCode Zen"도 제공하지만, 강제하지 않는다.

"Run the /connect command in the TUI, select opencode, and head to opencode.ai/auth … Alternatively, you can select one of the other providers."
이유 2

한 코어 위에 모든 폼팩터가 다 있다

같은 OpenCode 엔진이 터미널 TUI · 데스크탑 앱(Tauri, BETA) · 웹 인터페이스 · VS Code/JetBrains 익스텐션 · Slack 봇 · GitHub/GitLab Action · 외부 SDK 로 동시에 노출된다. 23개 패키지 모노레포가 그 증거.

이유 3

에이전트·툴·스킬·MCP·ACP·LSP 가 전부 1급 시민

Claude Code 가 정의한 "Agent Skills" 표준은 그대로 호환되고, MCP(Model Context Protocol), ACP(Agent Client Protocol), LSP(Language Server Protocol) 까지 별도 어댑터 없이 설정 한 줄로 붙는다. 결과적으로 한번 짠 도구를 어떤 에이전트에서든 재사용할 수 있다.

비유

안드로이드 vs 아이폰을 떠올리면 쉽다. Claude Code 가 "공식 펌웨어가 가장 매끄러운 아이폰"이라면, OpenCode 는 "AOSP(Android Open Source Project) 처럼 누구나 분기·수정·재배포할 수 있는 오픈 플랫폼"이다. 두 진영 다 살아남을 수밖에 없는 이유와 정확히 같다.

3기술 스택 전체 지도

백엔드 · 프론트엔드 · 인프라 · 데스크탑.

OpenCode 는 단일 언어 단일 프레임워크가 아니다. TypeScript 65.7% · MDX 30.9% · CSS 2.9%로 구성되며, 핵심 런타임은 Bun, 빌드 시스템은 Turbo, 인프라 코드는 SST를 쓴다.

🛠 런타임 · 빌드

용어
Bun (1.3.14)
Node.js 대체 자바스크립트 런타임 + 번들러 + 테스트 러너 + 패키지 매니저를 한 바이너리에 다 넣은 도구. Zig 로 짜여 있어 빠르고, Bun.file() 같은 자체 API 가 풍부하다. OpenCode 는 가능하면 Node 표준 API 보다 Bun 네이티브 API 를 쓰는 게 코딩 규칙이다.
용어
Turbo (2.8.13)
Vercel 이 만든 모노레포 빌드 오케스트레이터. 23개 패키지의 typecheck · build · test 를 의존 그래프에 맞춰 병렬로 돌리고 캐싱한다. bun turbo typecheck 한 줄이 23개 패키지 전체 타입 체크.
용어
SST (Serverless Stack, v4.13.1)
Cloudflare Workers + AWS를 코드로 정의하는 IaC(Infrastructure as Code) 프레임워크. sst.config.tshome: 'cloudflare'가 기반이며, AWS 리소스(Lambda 등)는 일부 서비스에 병행 사용된다. OpenCode 가 Anomaly 사의 클라우드 기능(Share, Zen, GitHub App)을 운영하는 기반.

🌐 백엔드 · 데이터

용어
Hono (4.10.7) + hono-openapi
Express 보다 가벼우면서 Cloudflare Workers · Bun · Deno · Node 어디서나 도는 웹 프레임워크. hono-openapi로 라우트에서 자동으로 OpenAPI 스펙을 뽑아 SDK 까지 생성한다. ./packages/sdk/js/script/build.ts로 JS SDK 가 자동 재생성되는 게 이 흐름.
용어
Drizzle ORM (1.0.0-rc.2) + SQLite
TypeScript 우선 SQL 빌더. ORM 보다 SQL 에 가까운 추상화로, Prisma 처럼 코드 생성을 강요하지 않는다. 세션·메시지·툴 호출 기록 같은 로컬 상태를 사용자 머신의 SQLite 에 저장. packages/effect-drizzle-sqlite에 Effect 와의 통합 레이어가 따로 있다.
용어
Zod (4.1.8) + ai SDK (6.0.168)
Zod 는 런타임 스키마 검증 라이브러리. 사용자 입력 · 모델 응답 · 툴 인자가 다 Zod 로 검증된다. ai는 Vercel AI SDK, OpenAI/Anthropic/Google 등 공급자를 통합 인터페이스로 호출하는 추상화 계층. OpenCode 는 자체 LLM 추상화 + ai SDK 를 같이 쓴다.

🎨 프론트엔드 · UI

용어
SolidJS · SolidStart (1.9.10)
React 처럼 생긴 컴포넌트 모델을 쓰지만, 가상 DOM 없이 시그널(Signal) 기반 미세 반응성을 쓰는 프레임워크. 번들 크기와 런타임 비용이 React 대비 훨씬 작다. SolidStart 는 Solid 의 풀스택 메타 프레임워크(Next 의 Solid 버전).
용어
Astro · Starlight (Docs)
packages/docs는 Starlight(=Astro 기반 문서 사이트 빌더). MDX 30.9%가 여기서 나온다. opencode.ai/docs 가 그 결과.
용어
Tailwind 4 + Kobalte
Tailwind 4 는 CSS 변수 기반의 zero-config 빌드를 지원하는 차세대 Tailwind. Kobalte 는 Solid 용 헤드리스 UI 컴포넌트(Radix UI 의 Solid 판). 모달·드롭다운·툴팁의 접근성은 Kobalte 가 책임진다.

🖥 데스크탑 · 인터랙션

용어
Tauri (packages/desktop)
Rust + 시스템 웹뷰로 만든 경량 일렉트론 대안. Electron 이 Chromium 을 통째로 묶어 다니는 반면 Tauri 는 OS 내장 웹뷰를 쓰므로 바이너리가 수십 MB 수준으로 작다. OpenCode 데스크탑 앱(.dmg/.exe/.deb/.rpm/.AppImage)이 이걸로 빌드된다.
용어
Effect
TypeScript 용 함수형 효과 시스템. 비동기·실패·환경 의존성을 타입으로 감싸 안전하게 합성하게 해 준다. packages/effect-drizzle-sqlite에 Drizzle 어댑터가 별도 존재한다는 점에서, Effect 가 OpenCode 의 코어 비즈니스 로직을 지탱하는 패러다임임을 알 수 있다.

4아키텍처 심화 분석

시스템 구조도 + 핵심 설계 패턴.

OpenCode 의 아키텍처를 한 장으로 그리면 이렇게 된다. 왼쪽은 사용자가 보는 폼팩터, 가운데는 공통 코어, 오른쪽은 외부 통합점이다.

┌──────────────────────────────────────────────────────────────────┐
│  사용자 폼팩터 (Frontend)                                         │
│                                                                  │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐ │
│  │  TUI(CLI)  │  │  Desktop   │  │  Web App   │  │  IDE Ext.  │ │
│  │  Bun+ANSI  │  │  Tauri+Rust│  │ SolidStart │  │ vscode/zed │ │
│  └─────┬──────┘  └─────┬──────┘  └─────┬──────┘  └─────┬──────┘ │
│        └────────┬───────┴───────┬──────┴────────┬──────┘        │
└─────────────────┼───────────────┼───────────────┼───────────────┘
                  │  Hono + zod   │   SSE/WS      │
                  ▼               ▼               ▼
┌──────────────────────────────────────────────────────────────────┐
│  OpenCode Core  (packages/opencode + packages/core)              │
│                                                                  │
│   ┌──────────────────────────────────────────────────────────┐   │
│   │  Session Manager  ──▶ Drizzle ORM ──▶ SQLite (로컬)      │   │
│   │  Agent Runner     ──▶ Build / Plan / General / Explore   │   │
│   │  Tool Executor    ──▶ read/edit/grep/bash/task/webfetch  │   │
│   │  Permission Layer ──▶ ask / allow / deny  (글로브 매칭)  │   │
│   │  Plugin Host      ──▶ @opencode-ai/plugin (workspace:*)  │   │
│   │  Skill Registry   ──▶ AGENTS.md + .opencode/agents/*.md  │   │
│   └──────────────────────────────────────────────────────────┘   │
│                          │                                       │
│                          ▼                                       │
│              ┌──────────────────────┐                            │
│              │  LLM Router (ai SDK) │                            │
│              └─────────┬────────────┘                            │
└────────────────────────┼─────────────────────────────────────────┘
                         │
   ┌─────────────────────┼─────────────────────┐
   ▼                     ▼                     ▼
┌────────┐         ┌──────────┐          ┌────────────┐
│Anthropic│        │  OpenAI  │          │ Google /   │
│ Claude  │        │  GPT-5   │          │ Groq /     │
│         │        │          │          │ Bedrock /  │
└────────┘         └──────────┘          │ OpenRouter │
                                         └────────────┘
                         ▲
                         │  외부 통합 (MCP · ACP · LSP)
                         │
   ┌─────────────────────┼─────────────────────┐
   ▼                     ▼                     ▼
┌────────┐         ┌──────────┐          ┌────────────┐
│ MCP    │         │  ACP     │          │  LSP       │
│ Server │         │  Server  │          │  Server    │
│ (any)  │         │  (Zed)   │          │  (any lang)│
└────────┘         └──────────┘          └────────────┘

핵심 설계 패턴 4가지

패턴 1

코어/폼팩터 분리 (Headless Core)

packages/opencode + packages/core 가 모든 비즈니스 로직을 들고 있고, TUI/Desktop/Web 은 같은 코어 위에 얇은 UI 레이어만 얹는다. 새로운 UI 폼팩터를 추가해도 에이전트 동작은 그대로 재사용되는 구조.

이게 가능한 이유는 코어가 자체 HTTP 서버를 띄우기 때문이다. opencode serve 한 번이면 SDK·웹·IDE 가 같은 엔드포인트로 붙는다.

패턴 2

Primary / Subagent 이중 구조

사용자가 직접 대화하는 Primary Agent(build, plan) 와, 그 안에서 자동으로 호출되는 Subagent(general, explore, scout) 가 분리되어 있다. Primary 는 Tab 키로, Subagent 는 @general 같은 @멘션으로 호출.

거기에 사용자에게 보이지 않는 Hidden 시스템 에이전트 세 종(compaction, title, summary)이 백그라운드로 도는데, 각각 긴 컨텍스트 요약 · 세션 제목 자동 생성 · 종료 후 회고를 담당한다.

패턴 3

권한 시스템 (Permission)

에이전트가 어떤 툴을 쓰는지 다 opencode.jsonpermission 으로 통제된다. edit · bash · webfetch · websearch · skill · task 같은 키마다 "allow" / "ask" / "deny" 셋 중 하나. 글로브 패턴까지 받아서 "git push": "ask" 같은 세밀한 룰이 가능하다.

패턴 4

워크스페이스 catalog 의존성 관리

package.jsonworkspaces.catalog 에 모든 외부 의존성 버전을 한 곳에 못 박는다. 각 패키지는 "zod": "catalog:" 처럼 가리키기만 한다. 버전 드리프트를 한 파일로 막는 단순하면서 강력한 패턴.

5디렉토리 구조 해부

23개 패키지가 각자 무엇을 하는가.

레포 루트의 packages/ 아래에 23개 워크스페이스가 들어 있다. 역할에 따라 묶어 보면 이렇다.

📌 핵심 (Core)

패키지

opencode · core

opencode는 사용자가 실제로 실행하는 CLI 엔트리. core는 그 안에서 쓰이는 도메인 로직(세션 · 메시지 · 툴 호출 · 컨텍스트 압축). 모든 폼팩터가 이 둘에 의존한다.

패키지

llm

LLM 공급자 추상화 레이어. provider/model-id 형식의 모델 ID 를 받아 Anthropic/OpenAI/Google/Groq/Bedrock/OpenRouter 등 어떤 백엔드로든 라우팅. @openrouter/ai-sdk-provider는 패치까지 적용되어 있다.

🎨 UI · 폼팩터

패키지

app · web · ui · console · storybook

app은 SolidStart 웹 앱(opencode.ai 의 일부). web은 랜딩/문서 자산. ui는 Kobalte + Tailwind 기반 공용 컴포넌트. console은 Anomaly 대시보드. storybook은 UI 컴포넌트 카탈로그.

패키지

desktop

Tauri 데스크탑 앱. bun --cwd packages/desktop tauri dev 한 줄로 개발 모드 실행. .dmg / .exe / .deb / .rpm / .AppImage 멀티 플랫폼 빌드.

패키지

docs

Astro Starlight 기반 공식 문서 사이트(opencode.ai/docs). 20+ 개 언어 번역. README 의 README.ko.md 등 21개 언어 README 가 여기서 관리된다.

🔌 통합 · 자동화

패키지

slack

Slack 봇 패키지. 채널에서 멘션으로 OpenCode 를 호출할 수 있게 해 준다(예: @opencode "main 브랜치 머지 충돌 좀 봐줘").

패키지

tui · cli

tui는 터미널 UI 패키지 — Bun + ANSI 렌더링으로 키보드만으로 조작하는 인터페이스. cli는 커맨드라인 진입점 패키지. IDE 통합(VS Code · Zed)은 독립 패키지가 아니라 레포 루트의 .vscode/·.zed/ 에디터 설정 파일로 구현된다.

패키지

plugin · script · sdk

plugin은 외부 개발자가 OpenCode 동작을 후킹할 수 있는 플러그인 API. script는 빌드/배포 자동화. sdk는 자동 생성되는 JS SDK(./packages/sdk/js/script/build.ts로 재생성).

🏢 인프라 · 기업 기능

패키지

containers · function · http-recorder · identity · enterprise

containers는 격리된 코드 실행 샌드박스. function은 서버리스 핸들러. http-recorder는 LLM 호출/네트워크 트래픽 기록(디버깅·재현용). identity는 사용자 인증(OpenAuth 기반). enterprise는 SSO·감사 로그 등 유료 기능.

패키지

effect-drizzle-sqlite

Effect + Drizzle ORM + SQLite 의 조합을 깔끔하게 추상화한 어댑터. 다른 OpenCode 패키지가 로컬 SQLite 와 상호작용할 때 이걸 통한다.

📂 레포 루트 핵심 파일

파일

AGENTS.md

OpenCode 자기 자신의 코딩 규칙. "Bun 네이티브 API 우선", "try/catch 회피", "any 금지", "destructuring 자제", "Drizzle snake_case", "테스트는 mock 회피" 같은 룰이 적혀 있다. 이게 사용자 프로젝트에 /init으로 생성되는 AGENTS.md 의 본보기다.

"The default branch in this repo is `dev`. Local `main` ref may not exist; use `dev` or `origin/dev` for diffs."
파일

sst.config.ts · flake.nix · turbo.json · bun.lock · bunfig.toml

인프라 정의(SST) · Nix 빌드 환경 · Turbo 파이프라인 · Bun 락파일 · Bun 런타임 설정. "같은 코드가 어떤 OS, 어떤 머신에서도 똑같이 빌드되도록" 굳히는 데 들어간 정성이 보인다.

파일

patches/

@standard-community/standard-openapi, solid-js, @ai-sdk/google 등 총 9개 패키지에 직접 패치 적용(@openrouter/ai-sdk-provider는 패치 목록에 없음). 외부 의존성에 버그가 있으면 fork 가 아니라 patches/로 우회한다 — Bun 의 patchedDependencies 기능 활용.

6학습 포인트 — 기술별로 무엇을 배울까

이 레포에서 뽑아낼 수 있는 학습 모듈.

OpenCode 의 가치는 "써 보기"보다 "코드를 읽기"에 있다. 다음 7가지 학습 트랙은 각자 별개의 책 한 권 분량이고, 이 한 레포에서 다 만져 볼 수 있다.

학습 트랙 1

Bun 모노레포 · Turbo 캐싱

packages/* 23개를 workspaces.catalog로 묶어 버전 드리프트를 막는 패턴은 어떤 풀스택 회사에서도 그대로 적용 가능. Turbo 의 캐시 키 설계 · 원격 캐시 · dryrun 도 같이 학습.

실습 아이디어: 본인의 작은 모노레포를 만들고, catalog 패턴을 적용해 zod 버전을 한 곳에서 바꾸면 모든 패키지가 따라가게 만들기.

학습 트랙 2

Hono + Zod + hono-openapi 로 자동 SDK 생성

라우트 정의 → OpenAPI 스펙 → JS SDK 자동 생성의 파이프라인이 packages/sdk/js/script/build.ts에 통째로 들어 있다. 토이 프로젝트 한 개로 그대로 모방 가능.

실습 아이디어: Hono + zod + hono-openapi 로 "할 일" REST API 를 짜고, 거기서 자동 생성된 SDK 를 프론트엔드에서 호출.

학습 트랙 3

SolidJS · SolidStart 의 시그널 모델

React 익숙한 사람에게는 "왜 useEffect 가 필요 없는가"가 충격. createSignal/createMemo/createResource 만으로 상태/계산/비동기를 다룬다. 번들 크기도 React 의 1/4 수준.

실습 아이디어: Counter → Todo → Chat UI 순으로 SolidStart 앱을 만들어 보고, 같은 걸 React 로도 짜서 번들 크기·렌더 횟수 비교.

학습 트랙 4

Tauri 데스크탑 앱 빌드 파이프라인

packages/desktop이 어떻게 멀티 OS 바이너리를 짜내는지(서명·공증·자동 업데이트 포함) 그대로 따라할 수 있는 청사진. Electron 이 무겁다고 느꼈다면 Tauri 가 답.

실습 아이디어: SolidJS 로 만든 작은 메모 앱을 Tauri 로 감싸 macOS .dmg + Windows .exe 까지 빌드해 보기. GitHub Actions 의 release 워크플로우까지 모방.

학습 트랙 5

SST v3 IaC 패턴

sst.config.ts에 람다·CloudFront·도메인을 코드로 정의. Pulumi 와 비슷한 흐름이지만 풀스택 친화적. "vercel 이 너무 비싸지면 SST 로 AWS 직접 띄우는 게 답"이라는 결론에 자연스럽게 도달한다.

실습 아이디어: Next.js 사이드 프로젝트 하나를 Vercel 에서 SST 의 OpenNext 로 옮겨 보고, 비용·콜드스타트·배포 시간 비교.

학습 트랙 6

MCP · ACP · LSP 통합

3대 프로토콜이 한 레포에 다 들어 있다. MCP 서버 만들기 → OpenCode 에 붙이기 → 다른 에이전트(Claude Code, Cursor)에서 재사용까지 한 번에 학습 가능.

실습 아이디어: 사내 위키 검색 MCP 서버를 만들고, OpenCode·Claude Code 둘 다에 등록해서 같은 도구가 양쪽에서 동작하는지 확인.

학습 트랙 7

Agent Skills · 권한 시스템 설계

.opencode/agents/*.md에 마크다운 프론트매터로 에이전트를 선언하는 방식은 Claude Code 의 Skills 표준과 거의 동일. 권한 글로브 매칭("git push": "ask") 같은 패턴은 사내 에이전트 운영 룰북에 그대로 쓰일 수 있다.

실습 아이디어: 보안 감사용 read-only 에이전트, 문서 작성용 docs-writer 에이전트, 디버깅용 debug 에이전트 3개를 만들고 권한을 다르게 설정.

7하드웨어 · 시스템 요구사항

실제로 돌리려면 뭐가 필요한가.

OpenCode 자체는 LLM 을 로컬에서 돌리지 않는다(=Ollama 처럼 모델 가중치를 들고 다니지 않는다). 따라서 요구사항은 가볍다. 진짜 비용은 "어떤 LLM 공급자에 얼마를 쓰느냐"에서 결정된다.

최소 요건

OS · 터미널

macOS / Linux / Windows(WSL 권장) 모두 지원. 터미널은 WezTerm, Alacritty, Ghostty, Kitty 같은 현대적 에뮬레이터 권장(ANSI · 트루컬러 · 마우스 이벤트가 잘 처리되어야 함). cmd.exe / PowerShell 기본 콘솔은 TUI 렌더가 깨질 수 있다.

디스크 · 메모리

설치 자체는 100MB 미만. 메모리도 200~500MB 면 충분. $HOME/.opencode/bin이 기본 설치 경로이고, $OPENCODE_INSTALL_DIR / $XDG_BIN_DIR 로 커스터마이즈 가능.

필수 외부 자원

LLM API 키

적어도 한 곳의 LLM 공급자 API 키가 필요. 권장은 OpenCode Zen(자체 큐레이션 모델 묶음) 또는 Anthropic Claude / OpenAI GPT-5 / OpenRouter. 로컬 Ollama 도 붙일 수 있어서 인터넷 없이 돌리는 시나리오도 가능하지만, 코딩 품질은 모델에 강하게 의존.

함정
"무료" 라고 생각하면 안 된다

OpenCode 는 MIT 오픈소스지만, 코딩 에이전트의 핵심 가치는 LLM 추론에서 나오고 그건 거의 항상 유료다. Claude Sonnet 으로 풀스택 코딩 하루를 풀가동하면 수십~수백 달러도 가능. 월간 한도와 예산 알람을 먼저 설정하고 시작.

해결책
Plan 모드 + steps 제한

새 코드베이스 탐색은 plan 에이전트(읽기 전용)로 시작하고, build 모드는 자신 있는 시나리오에만 사용. steps: 5 같은 max-step 으로 의도치 않은 에이전트 루프 비용 차단.

8직접 해볼 수 있는 실습 과제

난이도별 5단계 코스.

"읽기만 해도 배운다"는 말은 절반만 맞다. 다음 과제 5개를 차례로 해 보면 OpenCode 의 거의 모든 기능을 만져 보게 된다.

난이도 ★☆☆☆☆ — Lv.1

설치 + Plan 모드로 친숙한 레포 탐색

본인이 잘 아는 (혹은 잘 모르는) 작은 레포에 cd 한 뒤 opencode 실행. Tab 으로 plan 모드 전환 후 "이 프로젝트 구조 설명해줘"로 시작. plan 은 파일 수정 권한이 없어서 안전.

"이 프로젝트의 진입점이 어디고, 주요 모듈이 어떻게 연결되어 있어? 의존성 그래프를 텍스트로 그려줘."

배우는 것: Primary/Subagent 전환, @멘션, /undo, /share.

난이도 ★★☆☆☆ — Lv.2

AGENTS.md 작성 + /init 자동 분석

본인 사이드 프로젝트 루트에서 /init 실행. OpenCode 가 자동 분석한 AGENTS.md 를 사람이 다듬는다. 코딩 스타일·테스트 정책·금지 패턴을 명시적으로 적어 두면, 이후 모든 에이전트 호출의 품질이 올라간다.

배우는 것: AGENTS.md = 에이전트 컨텍스트 부트스트랩. 좋은 AGENTS.md 의 형식 감각.

난이도 ★★★☆☆ — Lv.3

커스텀 서브에이전트 + 권한 세팅

.opencode/agents/security-auditor.md를 만들고 마크다운 프론트매터로 permission.edit: deny 적용. 그 다음 @security-auditor 인증 모듈 좀 봐줘로 호출.

---
description: 보안 감사 전문 에이전트
mode: subagent
permission:
  edit: deny
  bash: deny
---
당신은 보안 감사자입니다. 입력 검증, 인증, 데이터 노출, 의존성 취약점을 우선 확인하세요.

배우는 것: 마크다운 에이전트 정의, 권한 글로브 매칭, 모델별 분기.

난이도 ★★★★☆ — Lv.4

MCP 서버 만들어 OpenCode 에 붙이기

@modelcontextprotocol/sdk 로 미니 MCP 서버 작성(예: "사내 위키 검색"). opencode.jsonmcp 섹션에 등록하고 plan 모드에서 호출. Claude Code 에도 같은 서버를 등록해 양쪽 도구 호환성 확인.

배우는 것: MCP 프로토콜 본체, 도구 정의, 사용자 정의 통합의 표준 진입로.

난이도 ★★★★★ — Lv.5

OpenCode 코어 fork 후 새 LLM 공급자 추가

packages/llm을 fork 해서 신규 공급자(예: 사내 LLM 게이트웨이) 어댑터를 짠다. ai SDK 의 패턴을 따르고, opencode.json에서 "mycompany/llama3-70b"로 지목 가능하게.

배우는 것: OpenCode 내부 LLM 추상화, 공급자 SDK 와 자체 인터페이스의 분리, 패치 vs fork 의사결정.

9관련 기술 심화 학습 로드맵 (8주)

매주 한 트랙씩, 두 달 코스.

OpenCode 가 빨아들이고 있는 기술 스택은 너무 넓어서 한 번에 다 못 본다. 8주 로드맵으로 잘게 나누면 부담이 줄어든다.

Week 1

Bun + Turbo 모노레포 기초

Bun 공식 문서 워크스루 + workspaces.catalog + Turbo 파이프라인 만들기. 작은 모노레포 토이 빌드.

Week 2

Hono + zod + hono-openapi 백엔드

REST API 작성 → OpenAPI 자동 추출 → SDK 자동 생성. Hono Adapter 로 Bun · Cloudflare · Vercel 셋 다 배포.

Week 3

Drizzle ORM + SQLite + Effect

Drizzle 스키마 → 마이그레이션 → Effect 로 비즈니스 로직 합성. effect-drizzle-sqlite 패턴 분석.

Week 4

SolidJS · SolidStart 풀스택

Counter → Todo → Realtime Chat. React 와 비교 학습. 시그널 · createResource · 서버 함수.

Week 5

Tauri 데스크탑 빌드

SolidJS 앱 → Tauri 래핑 → 자동 업데이트 + 코드사이닝. macOS notarize 까지.

Week 6

SST v3 IaC

AWS 계정 발급 → SST 로 Next.js/SolidStart 배포. 비용 알람 · 도메인 · CDN 캐싱 설정.

Week 7

MCP 서버 직접 만들기

Anthropic 의 mcp-builder 스킬을 기반으로 사내용 MCP 서버 작성. OpenCode/Claude Code 둘 다 등록.

Week 8

OpenCode 자체 컨트리뷰션

레포 issue 중 "good first issue" 라벨 찾아 PR. AGENTS.md의 코딩 스타일 따르기 — destructuring 자제, try/catch 회피, Bun API 우선.

10핵심 키워드 사전

검색 · 면접 · 사내 토론에서 그대로 쓰는 용어들.

용어
Agent Skills
Anthropic 이 표준화한 에이전트 능력 패키지 형식. SKILL.md(YAML 프론트매터 + 마크다운) + 옵션 references/·scripts/·assets/로 구성. OpenCode 는 이 표준을 그대로 받아 .opencode/agents/에 마크다운 에이전트로 로드.
용어
MCP (Model Context Protocol, 모델 컨텍스트 프로토콜)
에이전트가 외부 도구·데이터에 접근하는 표준 프로토콜. JSON-RPC over stdio/HTTP. 한 번 짠 MCP 서버는 Claude Code·OpenCode·Cursor·Kiro 어디서든 재사용 가능 — USB 표준처럼 동작.
용어
ACP (Agent Client Protocol)
Zed 에디터가 정의한 에이전트 ↔ 에디터 통신 프로토콜. OpenCode 가 Zed 익스텐션에서 채팅과 인라인 편집을 노출하는 통로. MCP 가 "에이전트 ↔ 도구"라면 ACP 는 "에이전트 ↔ 에디터".
용어
LSP (Language Server Protocol, 언어 서버 프로토콜)
VS Code 가 표준화한 에디터 ↔ 언어 인텔리전스 프로토콜. OpenCode 가 사용자 머신의 LSP 서버(tsserver, gopls, rust-analyzer 등)에 붙어 자동완성·진단·심볼 탐색을 그대로 활용.
용어
Plan 모드 vs Build 모드
OpenCode 의 기본 Primary 에이전트 둘. Build 는 모든 도구 허용(편집·셸·웹페치), Plan 은 기본적으로 edit/bash 모두 deny — 코드베이스 탐색과 변경 계획만 함. 새 코드를 만지기 전엔 무조건 Plan 으로 시작이 안전 패턴.
용어
Subagent · Hidden Agent
Subagent 는 Primary 에이전트가 호출하는 전문가(general/explore/scout). Hidden Agent 는 사용자에게 보이지 않고 백그라운드로 도는 시스템 에이전트(compaction=긴 컨텍스트 요약, title=세션 제목 생성, summary=종료 후 회고).
용어
OpenCode Zen
OpenCode 팀이 큐레이션한 LLM 묶음. /connect 한 번이면 opencode.ai/auth 로 가서 결제 후 API 키 한 줄 받음. 어떤 모델을 쓸지 모를 때의 기본 옵션.
용어
opencode.json
프로젝트 루트의 설정 파일. 사용할 LLM, 에이전트 정의, 권한, 테마, 키바인드, MCP 서버, LSP 서버, 포매터를 다 여기서 선언. $schema: "https://opencode.ai/config.json"으로 IDE 자동완성도 지원.
용어
AGENTS.md
프로젝트의 코딩 규칙·도메인 지식·금지 패턴을 적은 마크다운. /init 명령으로 자동 분석되며, 모든 에이전트 호출의 첫 컨텍스트로 주입된다. git 커밋 권장 — 팀 전체가 에이전트 응답 품질을 공유.
용어
Permission Glob
권한 키마다 글로브 패턴을 받는 OpenCode 의 세밀한 권한 시스템. { "git *": "ask", "git status *": "allow" }처럼 같은 명령군 안에서 안전한 것만 자동 허용 가능. 마지막 매칭 규칙이 우선.

11참고 링크 · 한 번에 모은 자료

공식 + 비공식.

이 글을 읽고 나서 다음 자료들을 순서대로 따라가면 OpenCode 의 거의 모든 측면을 직접 확인할 수 있다.

공식

opencode.ai / github

· 공식 사이트 — opencode.ai
· 공식 문서 — opencode.ai/docs
· 한국어 README — github.com/anomalyco/opencode/README.ko.md
· 디스코드 — opencode.ai/discord

스택

각 기술 공식 문서

· Bun — bun.com/docs
· Turbo — turborepo.com/docs
· SST — sst.dev/docs
· SolidStart — docs.solidjs.com/solid-start
· Tauri — tauri.app
· Drizzle ORM — orm.drizzle.team
· Hono — hono.dev
· Effect — effect.website

맥락

같이 보면 좋은 비교군

· Claude Code (Anthropic 공식) — github.com/anthropics/claude-code
· OpenAI Codex CLI — github.com/openai/codex
· cc-switch (5종 코딩 CLI 통합 매니저) — github.com/farion1231/cc-switch
· chrome-devtools-mcp (구글의 표준 MCP) — github.com/ChromeDevTools/chrome-devtools-mcp
· anthropics/skills (Skills 레퍼런스) — github.com/anthropics/skills

실용 가이드

지금 바로 시도해볼 만한 것 5가지

  1. 10분 안에 설치 → plan 모드로 본인 사이드 프로젝트 탐색. curl -fsSL https://opencode.ai/install | bash 한 줄 후 익숙한 폴더에서 opencode 실행. Tab 키로 plan 모드 잡고 "이 프로젝트 진입점 어디야?"부터 시작.
  2. AGENTS.md 를 직접 작성해 git 커밋. /init으로 자동 분석된 초안을 다듬어 코딩 스타일·테스트 정책·금지 패턴을 명문화. 팀 공유 시 에이전트 응답 일관성이 눈에 띄게 올라간다.
  3. 커스텀 서브에이전트 1개 정의. .opencode/agents/reviewer.md를 만들어 mode: subagent + permission.edit: deny 로 세팅. @reviewer 호출로 PR 전 셀프 리뷰 자동화.
  4. opencode.json 권한 글로브 실험. "bash": { "*": "ask", "git status *": "allow", "git diff *": "allow" }처럼 안전한 명령만 자동 허용. 무심결의 git push를 ask 로 묶어 사고 예방.
  5. 레포 fork 해서 패키지 하나 정독. packages/opencodepackages/llm 중 한 곳만 골라 코드를 읽고, 본인의 사이드 프로젝트에 비슷한 패턴을 적용. 23개 다 보려 들지 말 것 — 한 패키지만 깊이 보는 게 더 남는다.
원문 · github.com/anomalyco/opencode · TrendShift 2026-05-22 #6