2026년 4월 15일 작성

OpenCode - Open Source AI Coding Agent

OpenCode는 provider에 종속되지 않는 client/server architecture 기반의 open source AI coding agent로, TUI 중심 경험과 LSP 통합을 제공하며 Claude, OpenAI, Google, local model 등 어떤 LLM과도 연결할 수 있습니다.

OpenCode : Open Source AI Coding Agent

  • OpenCode는 terminal-based interface, desktop app, IDE extension으로 사용할 수 있는 open source AI coding agent로, anomalyco가 주도하여 개발하고 있습니다.
    • Claude Code와 유사한 capability를 제공하지만 source code 전체가 공개되어 있습니다.
    • neovim 사용자와 terminal.shop 제작자들이 만들어 TUI 경험에 특히 집중한 도구입니다.
  • 특정 LLM provider에 묶여 있지 않은 provider-agnostic 설계가 핵심입니다.
    • Claude, OpenAI, Google 등 주요 상용 model을 지원합니다.
    • Ollama 같은 local model도 동일한 방식으로 연결할 수 있습니다.
    • 추천 model을 묶은 OpenCode Zen service도 함께 운영됩니다.
  • terminal TUI와 desktop application(beta) 형태로 사용할 수 있습니다.
    • terminal에서는 보통 WezTerm, Alacritty, Ghostty, Kitty 같은 modern terminal과 조합하여 사용합니다.
    • desktop application은 macOS, Windows, Linux를 모두 지원합니다.
  • 권한 기반 agent mode, LSP 내장, plugin과 custom tool 확장, multi-provider 설정을 핵심 기능으로 갖추고 있습니다.
    • LSP가 내장되어 있어 agent가 code 수정 직후 type error와 diagnostic을 확인합니다.
    • plugin은 event hook, custom tool, config 변경, chat transform 등 다양한 hook으로 OpenCode 동작을 확장하거나 교체할 수 있는 확장 system입니다.
    • agent별로 model과 prompt, permission을 개별 설정하여 작업 성격에 맞게 분업합니다.

설계 철학

  • OpenCode는 open source, provider 독립성, TUI 우선, client/server 분리를 핵심 방향성으로 설계되어 있습니다.

100% Open Source

  • source code 전체가 공개되어 누구나 읽고, 수정하고, fork할 수 있습니다.
    • 상용 AI coding agent가 black box로 동작하는 것과 대비되는 지점입니다.
    • community 기여를 전제로 한 개발 process를 따릅니다.
  • license는 자유로운 사용과 재배포를 보장합니다.
    • 기업 환경에서도 내부 tool로 fork하여 사용할 수 있습니다.

Provider-Agnostic

  • OpenCode는 특정 LLM provider에 결합되어 있지 않습니다.
    • 단일 provider lock-in을 피하기 위한 의도적 선택입니다.
    • model 시장이 빠르게 변하는 환경에서 provider 선택이 유연해야 한다는 생각에서 출발했습니다.
  • opencode.json 설정 file에서 provider와 model을 자유롭게 전환합니다.
    • API key만 교체하면 동일한 workflow를 다른 model로 실행합니다.
    • 작업 성격에 따라 서로 다른 model을 agent별로 지정하는 것도 가능합니다.

TUI-First Experience

  • OpenCode는 terminal을 부차적 interface가 아닌 1급 interface로 취급합니다.
    • 제작자들이 neovim 사용자이자 terminal.shop 운영자라는 배경에서 나온 방향성입니다.
    • keyboard 중심 navigation, theme, keybind customization을 기본으로 제공합니다.
  • Tab key로 agent mode를 전환하는 등 terminal 관습에 충실한 interaction을 설계합니다.
    • build agent는 전체 권한을 가진 개발용 mode입니다.
    • plan agent는 read-only mode로, file 수정을 차단하고 bash 실행 전 승인을 요청합니다.

Client/Server Architecture

  • OpenCode는 client와 server를 분리한 architecture를 채택합니다.
    • server는 project가 있는 machine에서 실행되어 실제 작업을 처리합니다.
    • client는 server에 연결하여 interaction만 담당합니다.
  • 이 구조 덕분에 TUI는 여러 client 중 하나일 뿐입니다.
    • 예를 들어, desktop machine에서 server를 돌리고 mobile에서 원격으로 driving하는 구성이 가능합니다.
    • 미래에 어떤 새로운 interface가 추가되더라도 server 쪽은 그대로 유지됩니다.

Reference


목차