본문 바로가기
  • AI 시대에 적응하는 현대인을 위한 지식 공간
  • AI를 위한 데이터를 과학으로 역어본다
AI 코딩

Pi Coding Agent 가이드

by 피크나인 2026. 3. 31.

미니멀 코딩 에이전트의 설치부터 확장까지

2025년 하반기부터 터미널 기반 AI 코딩 에이전트가 개발자들의 일상에 깊이 자리 잡기 시작했습니다. Claude Code, Codex CLI, Cursor, Windsurf 등 다양한 도구들이 등장하면서 개발자들은 더 이상 코드를 복사하여 ChatGPT에 붙여넣는 방식이 아니라, 터미널에서 직접 AI와 대화하며 코드를 작성하고 수정하는 시대를 맞이하게 되었습니다. 이러한 흐름 속에서 "코어는 최소한으로, 커스터마이즈는 무한하게"라는 독특한 철학을 앞세운 오픈소스 코딩 에이전트가 등장하여 개발자 커뮤니티의 큰 관심을 받고 있습니다. 바로 Pi Coding Agent(이하 Pi)입니다.

 

Pi는 libGDX 프레임워크의 창시자로 잘 알려진 Mario Zechner가 2025년 11월에 공개한 터미널 기반 코딩 에이전트입니다. 그는 Claude Code를 오랜 기간 사용하면서 매 릴리스마다 시스템 프롬프트와 도구가 변경되어 워크플로우가 깨지는 경험을 반복했고, 자신에게 필요 없는 80%의 기능이 점점 추가되는 것에 불만을 느꼈다고 밝혔습니다. 이러한 경험이 Pi를 만들게 된 직접적인 동기가 되었으며, "내가 필요 없는 기능은 만들지 않는다"는 원칙 아래 극도로 미니멀한 코딩 에이전트를 설계하게 되었습니다.

 

이 글에서는 Pi의 설치부터 설정, 핵심 기능 활용, 그리고 Claude Code와의 상세 비교까지 다루어 보겠습니다.

미니멀한 터미널 인터페이스에서 네 가지 핵심 도구만으로 동작하는 Pi Coding Agent의 철학을 표현한 이미지
미니멀한 터미널 인터페이스에서 네 가지 핵심 도구만으로 동작하는 Pi Coding Agent의 철학을 표현한 이미지



1. Pi Coding Agent란 무엇인가

최소한의 터미널 코딩 하네스

Pi Coding Agent는 스스로를 "최소한의 터미널 코딩 하네스(harness)"라고 정의합니다. 여기서 하네스(harness)란 AI 모델이 코딩 작업을 수행할 수 있도록 감싸는 실행 환경을 의미합니다. 다시 말해, Pi는 LLM(대규모 언어 모델)이 파일을 읽고, 쓰고, 편집하고, 명령어를 실행할 수 있도록 연결해 주는 최소한의 껍데기 역할을 합니다. 이러한 설계 철학은 "도구를 사용자의 워크플로우에 맞추는 것이 아니라, 사용자가 도구를 자신의 워크플로우에 맞추도록 한다"는 원칙에서 비롯되었습니다.

 

Pi가 기본으로 제공하는 도구는 단 네 가지뿐입니다. 파일을 읽는 read, 새로운 파일을 만드는 write, 기존 파일을 수정하는 edit, 그리고 셸 명령어를 실행하는 bash가 전부입니다. Claude Code가 Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch 등 10개 이상의 내장 도구를 제공하는 것과 비교하면 극단적으로 적은 숫자입니다. 하지만 Pi의 개발자는 bash 도구 하나만으로도 git, npm, docker, curl 등 시스템의 모든 명령어에 접근할 수 있으므로 별도의 전용 도구가 불필요하다고 주장합니다. 실제로 Terminal-Bench 2.0 벤치마크에서 이 미니멀한 접근이 충분히 경쟁력 있는 성능을 보여준다는 것이 확인되었습니다.

[i] 참고: 하네스(Harness)란 원래 "마구"라는 뜻으로, 말(horse)에 장비를 장착하여 통제하듯 AI 모델에 도구를 장착하여 제어하는 프레임워크를 의미합니다. 코딩 에이전트 분야에서 "agent harness"는 LLM과 실제 개발 환경을 연결하는 중간 계층을 가리킵니다.

시스템 프롬프트의 미니멀리즘

Pi의 또 다른 특징은 극도로 짧은 시스템 프롬프트입니다. Pi의 기본 시스템 프롬프트는 약 200토큰 미만으로, 핵심적인 역할 정의("당신은 전문 코딩 어시스턴트입니다. 파일 읽기, 명령어 실행, 코드 편집, 새 파일 작성을 통해 사용자를 도와줍니다.")만 포함하고 있습니다. 반면 Claude Code의 시스템 프롬프트는 약 10,000토큰에 달하며, 행동 규칙, 서식 지침, 안전성 제약, 도구 사용 예시 등이 상세하게 포함되어 있습니다. Pi의 개발자 Mario Zechner는 최신 프론티어 모델들이 이미 강화학습(RL)을 통해 코딩 에이전트의 역할을 충분히 이해하고 있기 때문에, 10,000토큰 분량의 상세한 지시가 반드시 필요하지는 않다고 설명합니다.

 

이러한 미니멀한 시스템 프롬프트는 실질적인 이점을 제공합니다.

  • 첫째, 컨텍스트 윈도우(context window)의 활용 효율이 높아집니다. 시스템 프롬프트에 사용되는 토큰이 적을수록 실제 코드와 대화에 활용할 수 있는 공간이 넓어지기 때문입니다.
  • 둘째, 프롬프트 캐시(prompt cache)의 효율이 높아져 API 비용을 절감할 수 있습니다.
  • 셋째, 사용자가 원한다면 SYSTEM.md 파일을 통해 시스템 프롬프트를 완전히 교체할 수 있으므로, 자신의 프로젝트나 팀에 최적화된 에이전트 행동을 정의할 수 있습니다.

이는 Claude Code에서는 기본적으로 지원하지 않는 수준의 커스터마이즈 자유도입니다.

다중 프로바이더 지원

Pi는 20개 이상의 LLM 프로바이더를 지원하는 것도 큰 장점입니다. Anthropic의 Claude, OpenAI의 GPT, Google의 Gemini, xAI의 Grok, Mistral, Groq, Cerebras, Hugging Face, OpenRouter, Ollama 등 거의 모든 주요 AI 모델을 하나의 도구에서 전환하며 사용할 수 있습니다. 인증 방식도 API 키와 OAuth 기반 구독 로그인을 모두 지원하며, 세션 중간에 Ctrl+L 단축키로 모델을 자유롭게 전환할 수 있습니다. 이는 특정 프로바이더에 종속되지 않고 비용 효율적으로 모델을 운용하고 싶은 개발자에게 매우 유용한 기능입니다.

 

특히 Pi의 구독 로그인 방식은 Anthropic Claude Pro/Max, OpenAI ChatGPT Plus/Pro, GitHub Copilot, Google Gemini CLI 등의 기존 구독을 활용할 수 있어, 별도의 API 키 없이도 바로 사용할 수 있다는 점에서 진입 장벽을 크게 낮추어 줍니다. 예를 들어, Claude Pro 구독이 있는 사용자는 pi를 실행한 후 /login 명령어만 입력하면 기존 구독 인증을 통해 바로 사용을 시작할 수 있습니다. 이처럼 Pi는 다양한 모델과 인증 방식을 유연하게 지원하여, 개발자가 자신의 상황에 맞는 최적의 조합을 선택할 수 있도록 설계되었습니다.

Pi 모노레포 아키텍처

Pi는 단순한 CLI 도구가 아니라, 여러 패키지가 계층적으로 조합된 모노레포(monorepo) 구조로 이루어져 있습니다. 각 패키지는 독립적으로 사용할 수도 있고, 조합하여 더 복잡한 시스템을 구축할 수도 있습니다.

  • 하위 계층인 pi-ai는 여러 프로바이더에 대한 통합 LLM API를 제공하며, 스트리밍, 도구 호출, 사고(thinking) 지원, 토큰 및 비용 추적 기능을 포함하고 있습니다.
  • 그 위의 pi-agent-core는 도구 실행, 유효성 검증, 이벤트 스트리밍을 처리하는 에이전트 루프를 담당합니다.
  • pi-coding-agent는 이 위에 내장 도구(read, write, edit, bash)와 세션 관리, 확장성을 추가한 완전한 코딩 에이전트 패키지입니다.
  • 마지막으로 pi-tui는 터미널 UI를 구축하기 위한 프레임워크를 제공합니다.

이 계층 구조의 핵심 장점은 필요한 수준에서만 가져다 쓸 수 있다는 점입니다. 예를 들어, 단순히 LLM API만 필요한 프로젝트라면 pi-ai만 사용하면 되고, 에이전트 루프가 필요하면 pi-agent-core를, 완전한 코딩 에이전트가 필요하면 pi-coding-agent를 사용하면 됩니다. 실제로 14만 5천 개 이상의 GitHub 스타를 기록한 OpenClaw 프로젝트는 Pi의 SDK를 활용하여 멀티채널 AI 어시스턴트를 구축한 대표적인 사례입니다. 이처럼 Pi의 모노레포 아키텍처는 단순한 코딩 에이전트를 넘어서 다양한 AI 에이전트 프레임워크의 기반으로 활용될 수 있는 가능성을 보여주고 있습니다.

Pi 모노레포 레이어 아키텍처
Pi 모노레포 레이어 아키텍처


2. Claude Code vs Pi Agent  |  철학과 기능 비교

설계 철학의 근본적 차이

Claude Code와 Pi는 터미널 기반 코딩 에이전트라는 같은 카테고리에 속하지만, 그 설계 철학은 근본적으로 다릅니다. Claude Code는 "모든 엔지니어를 위한 도구(Tool for every engineer)"를 표방하며, 처음 사용하는 개발자도 별도의 설정 없이 바로 강력한 기능을 활용할 수 있도록 배터리가 포함된(batteries-included) 접근 방식을 취합니다. 반면 Pi는 "내가 필요 없으면, 만들지 않는다(If I don't need it, it won't be built)"라는 극단적인 미니멀리즘을 추구하며, 한 엔지니어의 워크플로우에 완벽하게 맞출 수 있는 자유도를 최우선으로 합니다.

 

이러한 철학적 차이는 기능 구현 방식에 직접적으로 반영됩니다. Claude Code는 서브 에이전트(sub-agents), 팀 모드(Agent Teams), MCP 통합, 플랜 모드(plan mode), 할 일 관리(todos), 웹 검색, 노트북 등 10개 이상의 기능을 내장하여 출시합니다. 반면 Pi는 네 가지 도구와 약 200토큰의 시스템 프롬프트만 제공하고, 나머지는 모두 Extensions(확장), Skills(스킬), 또는 서드파티 패키지를 통해 선택적으로 추가하는 옵트인(opt-in) 방식을 채택합니다. Pi의 공식 문서에는 "서브 에이전트가 필요한가요? tmux로 Pi 인스턴스를 여러 개 띄우거나, 확장으로 직접 만들거나, 패키지를 설치하세요."라는 안내가 반복적으로 등장하며, 이는 Pi의 핵심 철학을 잘 보여줍니다.

안전성(Safety) 철학 비교

두 도구의 안전성 접근 방식도 극명하게 대조됩니다. Claude Code는 "기본적으로 안전한(Safe by default)" 전략을 취합니다. 거부 우선(deny-first) 권한 시스템을 적용하여, 5가지 실행 모드(default, plan, acceptEdits, bypassPermissions, dontAsk)를 제공하고, 파일시스템 샌드박스와 Haiku 모델을 활용한 명령어 사전 검증까지 수행합니다. 이는 실수로 위험한 명령이 실행되는 것을 방지하기 위한 다중 안전장치라고 할 수 있습니다.

 

반면 Pi는 "YOLO 모드(기본적으로 제한 없음)"를 기본값으로 채택합니다. Pi의 개발자는 "코딩 에이전트의 보안은 대부분 연극에 가깝다. 코드를 작성하고 실행할 수 있는 권한이 있다면, 이미 게임은 끝난 것이다"라는 도발적인 입장을 밝히고 있습니다. 물론 이것이 Pi에 안전장치가 전혀 없다는 뜻은 아닙니다. 사용자가 Extensions를 통해 자신만의 권한 확인 플로우를 구축하거나, 컨테이너 환경에서 실행하여 격리하거나, 커뮤니티에서 제공하는 damage-control 확장을 설치하는 등의 방법으로 필요한 수준의 안전성을 직접 설계할 수 있습니다. 이 차이는 결국 "누구를 위한 도구인가"라는 질문으로 귀결됩니다. 초보 개발자에게는 Claude Code의 안전장치가 더 적합하고, 자신의 환경을 완벽히 통제하고 싶은 숙련된 개발자에게는 Pi의 유연한 접근이 더 매력적일 수 있습니다.

핵심 기능 비교표

다음은 2026년 기준 Claude Code와 Pi Agent의 주요 기능을 비교한 표입니다. 두 도구 모두 고유한 강점을 가지고 있으며, 사용자의 필요와 워크플로우에 따라 최적의 선택이 달라질 수 있습니다.

비교항목 Claude Code Pi Agent
설계 철학 배터리 포함 (batteries-included) - 모든 기능 내장 미니멀 코어 - 확장을 통한 기능 추가
시스템 프롬프트 약 10,000토큰 (상세한 가이드라인 포함) 약 200토큰 미만 (최소한의 역할 정의)
내장 도구 수 10개 이상 (Read, Write, Edit, Bash, Glob, Grep, WebSearch 등) 4개 (read, write, edit, bash)
지원 프로바이더 Anthropic 중심 (Claude 모델 전용) 20개 이상 (Anthropic, OpenAI, Google, xAI 등)
안전성 모델 거부 우선 (deny-first) 5가지 모드, 파일시스템 샌드박스 기본 제한 없음 (YOLO), 확장으로 커스텀 안전장치 구축
MCP 지원 내장 지원 미지원 (의도적 배제, Skills로 대체)
서브 에이전트 내장 지원 (Agent Teams) 미내장 (확장 또는 tmux로 구현 가능)
플랜 모드 내장 지원 미내장 (파일 기반 또는 확장으로 구현)
확장 시스템 Hooks (14개 이벤트, JSON 설정 기반) Extensions (20개 이상 이벤트, TypeScript 풀 코드)
라이선스 상용 라이선스 MIT (완전 오픈소스)
패키지 생태계 공식 마켓플레이스 (claude-plugins-official) npm 검색 (pi-package 키워드) + 커뮤니티 갤러리
컨텍스트 윈도우 200K 토큰 (모델 의존) 모델 의존 (프로바이더별 상이)
세션 관리 내장 (자동 저장) 내장 (JSONL 트리 구조, 분기 지원)
비용 추적 제한적 실시간 푸터 표시 (토큰, 비용 상세)

MCP를 의도적으로 배제한 이유

Pi가 MCP(Model Context Protocol)를 지원하지 않는 것은 기술적 한계가 아니라 의도적인 설계 결정입니다. Pi의 개발자 Mario Zechner는 MCP 서버가 대부분의 사용 사례에서 과도한 솔루션(overkill)이며, 상당한 컨텍스트 오버헤드를 수반한다고 설명합니다. 예를 들어, 인기 있는 Playwright MCP 서버는 21개의 도구와 약 13,700토큰의 도구 설명을, Chrome DevTools MCP는 26개의 도구와 약 18,000토큰의 도구 설명을 세션마다 컨텍스트에 주입합니다. 200K 토큰의 컨텍스트 윈도우에서 이 정도의 오버헤드는 결코 무시할 수 없는 수준입니다.

 

대신 Pi는 Skills 시스템을 통해 동일한 목적을 달성합니다. Skills는 LLM이 필요할 때만 온디맨드로 로드하는 전문 능력 패키지로, MCP 서버처럼 모든 도구 설명을 항상 컨텍스트에 포함시키는 대신 필요한 시점에만 관련 지시사항을 불러옵니다. 이 접근 방식은 "점진적 공개(progressive disclosure)"라는 설계 원칙에 기반하며, 프롬프트 캐시를 깨뜨리지 않으면서도 필요한 기능을 유연하게 활용할 수 있다는 장점이 있습니다. 물론 MCP 통합이 꼭 필요한 경우에는 Extensions를 통해 MCP 지원을 직접 구현할 수도 있으며, 이미 커뮤니티에서 관련 확장이 제공되고 있습니다.

벤치마크 성능 비교

Pi는 Terminal-Bench 2.0 벤치마크에서 주목할 만한 성능을 보여주었습니다. Terminal-Bench는 Stanford 대학과 Laude Institute가 공동 개발한 터미널 기반 코딩 에이전트 평가 프레임워크로, 코드 컴파일, ML 모델 학습, 서버 구성, 시스템 디버깅 등 실제 업무에 가까운 복잡한 작업을 수행하는 능력을 측정합니다. Pi의 개발자는 Claude Opus 4.5 모델을 사용하여 5회 반복 시행(trial)의 정식 벤치마크를 수행했으며, 그 결과가 리더보드 제출 자격을 충족하는 수준이었다고 밝혔습니다.

 

흥미로운 점은 Terminal-Bench 리더보드에서 Terminus 2라는 극히 미니멀한 에이전트도 상당한 성능을 보여주고 있다는 사실입니다. Terminus 2는 모델에게 tmux 세션만 제공하고, 모델이 텍스트로 명령어를 보내고 터미널 출력을 파싱하는 방식으로 동작합니다. 별도의 도구나 파일 연산 기능 없이 순수한 터미널 상호작용만으로 훨씬 정교한 도구를 갖춘 에이전트와 대등한 성과를 보여주고 있는 것입니다. 이는 Pi의 미니멀한 접근 방식이 벤치마크 수준에서도 충분히 경쟁력이 있음을 뒷받침하는 강력한 근거가 됩니다.

배터리 포함 방식의 Claude Code와 미니멀리즘의 Pi Agent, 두 가지 서로 다른 철학의 대비를 표현한 이미지
배터리 포함 방식의 Claude Code와 미니멀리즘의 Pi Agent, 두 가지 서로 다른 철학의 대비를 표현한 이미지


3. 설치 및 기본 설정

사전 준비 사항

Pi Coding Agent를 설치하기 전에 몇 가지 사전 준비가 필요합니다.

먼저 Node.js가 시스템에 설치되어 있어야 합니다. Pi는 npm(Node Package Manager)을 통해 글로벌 패키지로 설치되므로, Node.js 18 이상의 버전이 권장됩니다. macOS 사용자는 Homebrew를 통해, Windows 사용자는 공식 설치 프로그램을 통해, Linux 사용자는 nvm(Node Version Manager) 또는 패키지 관리자를 통해 Node.js를 설치할 수 있습니다. 또한 터미널 환경이 UTF-8 인코딩을 지원해야 하며, Ghostty, iTerm2, Windows Terminal 등의 최신 터미널 에뮬레이터를 사용하는 것이 가장 좋은 경험을 제공합니다.

 

그 다음으로 LLM 프로바이더의 인증 수단을 준비해야 합니다. API 키를 사용하려면 Anthropic, OpenAI, Google 등 원하는 프로바이더의 API 키를 발급받아야 하며, 구독 로그인을 사용하려면 해당 서비스의 유료 구독이 활성화되어 있어야 합니다. 처음 사용하는 분이라면 Anthropic의 Claude Pro 구독 또는 API 키를 준비하는 것을 권장합니다. Claude 모델은 코딩 에이전트 환경에서 가장 풍부한 학습 데이터를 기반으로 훈련되어 있어, Pi와의 조합에서 안정적인 성능을 보여주기 때문입니다.

설치 과정

Pi의 설치 과정은 매우 간단합니다. npm을 통한 글로벌 설치 한 줄이면 충분합니다. 설치가 완료되면 터미널에서 pi 명령어를 바로 사용할 수 있게 됩니다.

# Pi Coding Agent 글로벌 설치
npm install -g @mariozechner/pi-coding-agent

 

설치가 완료되면 인증 설정을 진행합니다. API 키 방식과 구독 로그인 방식 중 선택할 수 있으며, 각 방식의 설정 과정은 다음과 같습니다.

# 방법 1: API 키 방식 (가장 빠른 시작)
# 환경 변수로 API 키 설정 후 pi 실행
export ANTHROPIC_API_KEY=sk-ant-...
pi

# 방법 2: 구독 로그인 방식
# pi를 먼저 실행한 후 /login 명령어로 인증
pi
/login    # 프롬프트에서 입력하면 프로바이더 선택 화면이 나타남

# 방법 3: 다른 프로바이더의 API 키 사용
export OPENAI_API_KEY=sk-...
pi --provider openai --model gpt-4o

 

  • API 키 방식을 사용하는 경우, Pi는 .env 파일을 자동으로 로드하지 않으므로 셸의 환경 변수에 API 키가 설정되어 있어야 한다는 점에 주의해야 합니다. 이를 편리하게 관리하기 위해 .bashrc, .zshrc 또는 .profile 파일에 API 키 export 문을 추가하거나, direnv 같은 환경 변수 관리 도구를 활용하는 것이 좋습니다.
  • 구독 로그인 방식은 Anthropic Claude Pro/Max, OpenAI ChatGPT Plus/Pro, GitHub Copilot, Google Gemini CLI를 지원하며, 한 번 로그인하면 인증 정보가 로컬에 저장되어 이후에는 자동으로 인증됩니다.

설정 파일 구조

Pi의 설정은 두 가지 범위의 파일로 관리됩니다. 글로벌 설정은 모든 프로젝트에 공통으로 적용되며, 프로젝트 로컬 설정은 해당 프로젝트에서만 적용되되 글로벌 설정보다 우선순위가 높습니다. 이 이중 구조 덕분에 기본적인 환경은 글로벌로 설정하고, 프로젝트별 특수한 요구사항은 로컬 설정으로 오버라이드(override)할 수 있습니다.

설정 파일 경로 적용 범위 우선순위

설정 파일 경로 적용 범위 우선순위
~/.pi/agent/settings.json 글로벌 (모든 프로젝트에 적용) 낮음
.pi/settings.json 프로젝트 로컬 (현재 프로젝트에만 적용) 높음 (글로벌 설정 오버라이드)

 

설정 파일을 직접 편집하는 것 외에도, Pi 실행 중에 /settings 명령어를 입력하면 대화형 설정 인터페이스가 열리며, 모델, thinking level, 테마 등을 즉시 변경할 수 있습니다. 이 방식은 JSON 파일을 직접 수정하는 것보다 편리하며, 변경 사항이 즉시 적용됩니다.

주요 설정 항목 상세

다음은 Pi의 settings.json 파일에서 가장 중요한 설정 항목들을 정리한 것입니다. 각 항목의 역할과 권장 값을 이해하면 Pi를 자신의 워크플로우에 최적화하는 데 큰 도움이 됩니다.

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark",

  "compaction": {
    "enabled": true,
    "reserveTokens": 16384,
    "keepRecentTokens": 20000
  },

  "retry": {
    "enabled": true,
    "maxRetries": 3,
    "baseDelayMs": 2000
  },

  "enabledModels": ["claude-*", "gpt-4o"],

  "packages": ["pi-skills"]
}

 

위 설정 파일의 각 항목에 대한 상세 설명은 다음과 같습니다.

  • defaultProvider와 defaultModel: Pi가 시작될 때 기본으로 사용할 LLM 프로바이더와 모델을 지정합니다. "anthropic"을 기본 프로바이더로, Claude Sonnet 4를 기본 모델로 설정하면 비용과 성능의 균형이 좋은 시작점이 됩니다. 복잡한 문제에는 세션 중에 /model 명령어로 Claude Opus로 전환하여 사용할 수 있습니다.
  • defaultThinkingLevel: LLM의 사고 깊이를 조절하는 설정으로, off, minimal, low, medium, high, xhigh 중에서 선택할 수 있습니다. 이 설정은 모델이 응답하기 전에 내부적으로 수행하는 추론(reasoning)의 깊이를 결정합니다. 일반적인 코딩 작업에는 medium이 적합하며, 복잡한 알고리즘 설계나 디버깅에는 high 이상을 사용하는 것이 좋습니다. 세션 중에 Shift+Tab 단축키로 thinking level을 순환시킬 수도 있습니다.
  • compaction: 컨텍스트 윈도우가 가득 찼을 때의 자동 요약(compaction) 동작을 제어합니다. enabled를 true로 설정하면 컨텍스트가 한계에 도달했을 때 자동으로 이전 대화를 요약하여 공간을 확보합니다. reserveTokens는 새로운 응답을 위해 항상 예약해 둘 토큰 수를, keepRecentTokens는 요약 대상에서 제외할 최근 대화의 토큰 수를 지정합니다. 이 기능은 긴 코딩 세션에서 컨텍스트 초과로 인한 중단을 방지해 주므로, 반드시 활성화해 두는 것을 권장합니다.
  • retry: API 호출 실패 시 자동 재시도 동작을 설정합니다. LLM API는 일시적인 네트워크 문제나 서버 부하로 인해 간헐적으로 실패할 수 있으므로, 재시도 기능을 활성화해 두면 안정적인 사용 경험을 유지할 수 있습니다. maxRetries는 최대 재시도 횟수를, baseDelayMs는 재시도 간 기본 대기 시간(밀리초)을 지정합니다.
  • enabledModels: Ctrl+P 단축키로 순환할 수 있는 모델 목록을 필터링합니다. 와일드카드 패턴을 지원하므로, "claude-*"로 설정하면 모든 Claude 모델을, "gpt-4o"로 설정하면 해당 모델만 순환 목록에 포함시킬 수 있습니다.

Thinking Level 활용 전략

Thinking Level은 Pi에서 매우 중요한 설정 중 하나이므로, 작업 유형에 따른 활용 전략을 별도로 정리하겠습니다. Thinking Level은 모델이 응답을 생성하기 전에 수행하는 내부 추론(chain-of-thought) 과정의 깊이를 결정합니다. 높은 레벨일수록 더 깊이 사고하지만, 그만큼 응답 시간과 토큰 비용이 증가합니다.

Thinking Level 적합한 작업 유형 특징
off 단순 질문, 짧은 코드 스니펫 생성 사고 과정 없이 즉시 응답, 가장 빠르고 저렴
minimal 간단한 코드 수정, 오타 수정 최소한의 검증만 수행
low 일반적인 코드 리팩토링, 문서 작성 기본적인 논리 검증 포함
medium 버그 수정, 새 기능 구현, 테스트 작성 비용 대비 성능이 가장 균형잡힌 레벨 (기본 권장)
high 복잡한 알고리즘 설계, 아키텍처 결정 깊은 추론으로 높은 정확도, 비용 증가
xhigh 난이도 높은 디버깅, 성능 최적화, 보안 분석 최대 깊이의 사고, 가장 느리고 비용이 높음

 

CLI에서 특정 thinking level로 바로 실행하고 싶다면, 모델명 뒤에 콜론과 레벨을 붙이는 단축 표기법을 사용할 수 있습니다.

# thinking level을 high로 설정하여 복잡한 문제 해결
pi --model sonnet:high "이 코드의 메모리 누수 원인을 찾아줘"

# thinking level을 명시적으로 지정
pi --thinking xhigh "이 알고리즘을 O(n log n)으로 최적화해줘"

4. 인터랙티브 모드 활용법

TUI 화면 구조

Pi의 인터랙티브 모드는 터미널 전체를 활용하는 TUI(Terminal User Interface)로 구성되어 있습니다. 화면은 크게 네 가지 영역으로 나뉘며, 각 영역은 명확한 역할을 담당합니다. 상단의 Startup Header 영역에는 사용 가능한 단축키 목록, 로드된 AGENTS.md 파일 정보, 활성화된 확장과 스킬 목록이 표시됩니다. 중앙의 Messages 영역은 사용자와 AI 간의 대화 내용, 도구 호출과 그 결과, 시스템 알림이 시간순으로 나열되는 핵심 영역입니다.

하단에는 Editor 영역과 Footer 영역이 위치합니다. Editor는 사용자가 프롬프트를 입력하는 곳으로, 테두리 색상이 현재 설정된 thinking level을 시각적으로 나타냅니다. 이를 통해 현재 어떤 수준의 사고 깊이로 작업하고 있는지 한눈에 확인할 수 있습니다. Footer에는 현재 작업 디렉토리 경로, 세션 이름, 사용된 토큰 수와 비용, 그리고 현재 선택된 모델 정보가 실시간으로 표시됩니다. 이 비용 추적 기능은 Claude Code에서는 제한적으로만 제공되는 기능으로, Pi의 실용적인 강점 중 하나입니다.

+---------------------------------------------+
|  Startup Header                             |  <- 단축키, AGENTS.md, 확장/스킬 목록
+---------------------------------------------+
|  Messages                                   |  <- 대화, 도구 콜/결과, 알림
+---------------------------------------------+
|  Editor                                     |  <- 입력창 (테두리 색 = thinking level)
+---------------------------------------------+
|  Footer: 경로 | 세션명 | 토큰/비용 | 모델   |
+---------------------------------------------+

핵심 단축키 정리

Pi의 인터랙티브 모드에서는 다양한 단축키를 통해 빠르게 작업을 제어할 수 있습니다. 이 단축키들을 익혀 두면 마우스 없이도 모든 기능에 접근할 수 있어 터미널 작업의 효율성이 크게 향상됩니다. 가장 기본적인 단축키부터 고급 기능까지 체계적으로 정리하면 다음과 같습니다.

단축키 동작 사용시점
Ctrl+C 에디터 내용 지우기 입력한 프롬프트를 취소하고 다시 작성할 때
Ctrl+C (2번) Pi 종료 세션을 완전히 종료할 때
Escape 현재 진행 중인 작업 취소 AI가 긴 응답을 생성 중일 때 중단할 때
Escape (2번) /tree 열기 세션 히스토리 트리를 탐색할 때
Ctrl+L 모델 선택기 열기 다른 LLM 모델로 전환할 때
Shift+Tab Thinking Level 순환 작업 복잡도에 따라 사고 깊이를 변경할 때
Ctrl+P 설정된 모델 순환 enabledModels에 설정된 모델 간 빠른 전환
Ctrl+O 도구 출력 접기/펼치기 긴 도구 실행 결과를 숨기거나 펼칠 때

에디터 특수 기능

Pi의 에디터(입력 영역)는 단순한 텍스트 입력창을 넘어 여러 가지 강력한 기능을 제공합니다. 이 기능들을 활용하면 프로바이더 API를 더 효율적으로 활용할 수 있으며, 작업 맥락을 정확하게 전달할 수 있습니다.

  • 파일 참조 (@): 에디터에서 @ 기호를 입력하면 파일 퍼지 검색(fuzzy search) 창이 열립니다. 이를 통해 현재 프로젝트의 파일을 검색하여 프롬프트에 포함시킬 수 있습니다. 예를 들어, "@src/auth.ts 이 파일의 인증 로직을 리팩토링해줘"라고 입력하면, 해당 파일의 전체 내용이 프롬프트에 자동으로 포함되어 AI가 정확한 맥락에서 작업할 수 있게 됩니다.
  • 이미지 붙여넣기 (Ctrl+V): 클립보드에 복사된 이미지를 Ctrl+V로 직접 프롬프트에 붙여넣을 수 있습니다. 스크린샷을 캡처한 후 바로 붙여넣어 "이 UI에서 레이아웃 문제를 찾아줘"와 같은 시각적 맥락의 질문을 할 수 있어, 디자인 검토나 버그 리포트 분석에 매우 유용합니다.
  • Bash 실행 통합: 에디터에서 느낌표(!)를 접두사로 붙여 bash 명령어를 실행하고 그 결과를 LLM에게 전달할 수 있습니다. 느낌표 하나(!)를 사용하면 명령어를 실행한 뒤 결과를 AI에게 보내고, 느낌표 두 개(!!)를 사용하면 명령어만 실행하고 결과는 AI에게 보내지 않습니다. 예를 들어, "!git diff HEAD~3"을 입력하면 최근 3개 커밋의 변경 사항을 AI에게 전달하여 코드 리뷰를 요청할 수 있습니다.
  • 멀티라인 입력: Shift+Enter를 누르면 줄바꿈이 되어 여러 줄의 프롬프트를 작성할 수 있습니다. 복잡한 요청이나 여러 단계의 지시를 한 번에 전달할 때 유용합니다. Enter 키만 누르면 현재 입력된 내용이 즉시 전송됩니다.

중요 명령어

Pi의 에디터에서 슬래시(/)를 입력하면 사용 가능한 명령어 목록이 자동완성 형태로 표시됩니다. 이 명령어들은 Pi의 핵심 기능에 빠르게 접근할 수 있게 해주며, 세션 관리, 모델 전환, 내보내기 등 다양한 작업을 지원합니다.

명령어 설명 상세용도
/model 모델 전환 사용 가능한 모든 LLM 모델 목록에서 선택하여 전환
/settings 설정 변경 thinking level, 테마, compaction 등 대화형으로 설정
/resume 이전 세션 불러오기 저장된 세션 목록에서 선택하여 이어서 작업
/new 새 세션 시작 현재 세션을 저장하고 깨끗한 세션으로 시작
/tree 세션 트리 탐색 과거 분기 포인트를 탐색하고 다른 분기로 전환
/fork 세션 포크 현재 지점에서 새로운 분기를 생성하여 별도 탐색
/compact 수동 컨텍스트 요약 컨텍스트 공간 확보를 위해 이전 대화를 수동으로 요약
/copy 마지막 응답 복사 AI의 마지막 응답을 시스템 클립보드에 복사
/export 세션 HTML 내보내기 전체 대화 세션을 HTML 파일로 내보내기
/share Gist로 공유 현재 세션을 GitHub Gist로 업로드하여 공유
/reload 핫리로드 수정된 확장, 스킬, 테마를 재시작 없이 즉시 반영

세션 관리와 분기(Branching)

Pi의 세션 시스템은 단순한 대화 저장을 넘어 Git과 유사한 분기(branching) 기능을 제공합니다. 모든 세션은 ~/.pi/agent/sessions/ 디렉토리에 JSONL 파일로 저장되며, 하나의 파일 안에 트리 구조로 모든 분기가 보존됩니다. 이 구조 덕분에 과거의 어떤 시점으로든 돌아가서 다른 접근 방식을 시도하고, 여러 실험적 경로를 동시에 유지할 수 있습니다.

# 세션 관련 CLI 옵션
pi -c                    # 가장 최근 세션을 이어서 진행
pi -r                    # 저장된 세션 목록에서 선택하여 재개
pi --no-session          # 세션을 저장하지 않고 일회성으로 실행
pi --session <경로/ID>   # 특정 세션 파일 또는 ID로 시작
pi --fork <경로/ID>      # 기존 세션을 포크하여 새 세션 생성

 

/tree 명령어를 실행하면 세션의 전체 히스토리가 트리 형태로 표시되며, 화살표 키와 Enter 키로 과거의 원하는 시점을 선택할 수 있습니다. 선택한 시점에서 새로운 메시지를 입력하면 자동으로 새 분기가 생성됩니다. 이 기능은 "이 방식으로 리팩토링한 결과가 마음에 들지 않으니, 이전 시점으로 돌아가서 다른 접근을 시도해 보겠다"와 같은 탐색적 코딩 작업에 매우 유용합니다. 또한 Ctrl+← 또는 Ctrl+→ 키로 분기를 접거나 펼 수 있고, ← 또는 → 키로 페이지를 이동할 수 있어 긴 히스토리도 효율적으로 탐색할 수 있습니다.

컴팩션(Compaction)  |  컨텍스트 자동 관리

긴 코딩 세션에서는 대화 내용과 도구 호출 결과가 누적되면서 컨텍스트 윈도우의 한계에 도달할 수 있습니다. Pi의 컴팩션(Compaction) 기능은 이 문제를 자동으로 해결해 줍니다. 컨텍스트가 한계에 근접하면 Pi가 이전 대화 내용을 요약하여 압축하고, 최근 대화(keepRecentTokens에서 지정한 범위)는 원본 그대로 유지합니다. 이 과정에서 원본 히스토리는 JSONL 파일에 그대로 보존되므로, /tree를 통해 언제든 원본 대화로 돌아갈 수 있습니다.

 

수동으로 컴팩션을 실행하고 싶다면 /compact 명령어를 사용할 수 있으며, /compact <커스텀 지시> 형태로 요약 방식에 대한 추가 지시를 전달할 수도 있습니다. 예를 들어, "/compact 코드 변경 사항 위주로 요약해줘"라고 입력하면 해당 지시에 맞게 요약이 수행됩니다. 이 기능은 Extensions를 통해 완전히 커스터마이즈할 수도 있어, 주제별 요약, 코드 인식 요약, 또는 다른 모델을 사용한 요약 등 자신만의 컴팩션 전략을 구현할 수 있습니다.


5. AGENTS.md와 컨텍스트 파일 시스템

AGENTS.md의 역할과 로딩 순서

AGENTS.md는 Pi가 시작될 때 자동으로 로드하는 프로젝트 컨텍스트 파일입니다. 이 파일에는 프로젝트의 특성, 코딩 규칙, 선호하는 패턴, 금지 사항 등 AI 에이전트가 알아야 할 모든 맥락 정보를 마크다운 형식으로 작성합니다. Pi는 시작 시 다음 순서로 AGENTS.md 파일을 탐색하고 로드합니다.

  • 첫째, ~/.pi/agent/AGENTS.md 글로벌 파일이 로드됩니다. 이 파일에는 모든 프로젝트에 공통으로 적용되는 개인 선호도나 코딩 스타일을 작성합니다. 예를 들어, "항상 TypeScript를 사용하고, 함수형 프로그래밍 패턴을 선호한다"와 같은 전반적인 지침을 여기에 넣을 수 있습니다.
  • 둘째, 현재 디렉토리에서 루트 디렉토리까지 모든 경로에 있는 AGENTS.md 또는 CLAUDE.md 파일이 순차적으로 로드됩니다. 이 계층적 로딩 구조 덕분에 모노레포(monorepo) 환경에서 루트에는 전체 프로젝트 규칙을, 각 서브 패키지에는 해당 패키지만의 규칙을 설정할 수 있습니다.

CLAUDE.md 파일명도 인식한다는 점은 주목할 만합니다. 이는 Claude Code에서 이미 CLAUDE.md를 사용하고 있는 프로젝트가 별도의 변환 작업 없이 Pi로 전환하거나, 두 도구를 병행하여 사용할 수 있게 해줍니다. 실제로 많은 개발자들이 CLAUDE.md 하나로 Claude Code와 Pi 양쪽에서 동일한 프로젝트 컨텍스트를 활용하고 있습니다.

시스템 프롬프트 커스터마이즈

Pi는 기본 시스템 프롬프트를 완전히 교체하거나 추가할 수 있는 두 가지 메커니즘을 제공합니다.

  • 첫 번째는 .pi/SYSTEM.md 파일을 통한 완전 교체입니다. 이 파일이 프로젝트 디렉토리에 존재하면, Pi의 기본 시스템 프롬프트("당신은 전문 코딩 어시스턴트입니다...")가 이 파일의 내용으로 완전히 대체됩니다. 이는 매우 강력한 기능으로, 에이전트의 성격, 역할, 행동 방식을 프로젝트에 맞게 근본적으로 재정의할 수 있습니다.
  • 두 번째는 APPEND_SYSTEM.md를 통한 추가 방식입니다. 이 파일이 존재하면 기본 시스템 프롬프트 뒤에 해당 내용이 추가됩니다. 기본 동작을 유지하면서 추가적인 지침만 부여하고 싶을 때 유용합니다. 예를 들어, "모든 코드에 JSDoc 주석을 추가하라" 또는 "에러 처리에는 반드시 커스텀 에러 클래스를 사용하라"와 같은 프로젝트별 규칙을 추가할 수 있습니다.
<!-- .pi/SYSTEM.md 예시 - 시스템 프롬프트 완전 교체 -->
당신은 React와 TypeScript 전문 시니어 개발자입니다.
다음 규칙을 반드시 따르세요:

1. 모든 컴포넌트는 함수형으로 작성합니다.
2. 상태 관리에는 Zustand를 사용합니다.
3. API 호출에는 TanStack Query를 사용합니다.
4. 테스트는 Vitest와 Testing Library로 작성합니다.
5. 코드 변경 시 반드시 관련 테스트도 업데이트합니다.

 

이러한 수준의 시스템 프롬프트 커스터마이즈는 Claude Code에서는 기본적으로 지원되지 않는 기능입니다. Claude Code에서는 CLAUDE.md를 통해 추가적인 컨텍스트를 제공할 수는 있지만, 시스템 프롬프트 자체를 교체하는 것은 불가능합니다. 이 점은 에이전트의 근본적인 행동 방식을 제어하고 싶은 개발자에게 Pi가 제공하는 독보적인 강점입니다.


6. Extensions  |  Pi의 핵심 경쟁력

확장 시스템 개요

Extensions(확장)는 Pi의 가장 핵심적인 경쟁력이자, Claude Code와의 가장 큰 차별점입니다. Extensions는 TypeScript로 작성하는 풀 코드(full code) 플러그인으로, Pi의 내부를 건드리지 않으면서도 동작을 완전히 커스터마이즈할 수 있게 해줍니다. Claude Code의 Hooks 시스템이 14개의 이벤트에 대해 JSON 설정 기반으로 외부 스크립트를 실행하는 방식인 반면, Pi의 Extensions는 20개 이상의 이벤트에 대해 TypeScript의 전체 능력을 활용하여 에이전트의 동작을 가로채고, 변환하고, 확장할 수 있습니다.

 

Extensions의 위치는 글로벌과 프로젝트 로컬 두 가지로 구분됩니다. 글로벌 확장은 ~/.pi/agent/extensions/ 디렉토리에 배치하면 모든 프로젝트에서 활성화되고, 프로젝트 로컬 확장은 .pi/extensions/ 디렉토리에 배치하면 해당 프로젝트에서만 활성화됩니다. 확장은 단일 TypeScript 파일(예: my-ext.ts)이나 디렉토리(예: my-ext/index.ts) 형태로 작성할 수 있으며, 수정 후 /reload 명령어로 Pi를 재시작하지 않고도 즉시 반영할 수 있는 핫리로드(hot reload) 기능을 지원합니다.

~/.pi/agent/extensions/my-ext.ts        # 글로벌 단일 파일 확장
~/.pi/agent/extensions/my-ext/index.ts  # 글로벌 디렉토리 확장
.pi/extensions/my-ext.ts                # 프로젝트 로컬 확장

 

Pi Coding Agent는 오픈 소스 프로젝트인 만큼, GitHub을 중심으로 커뮤니티와 확장 프로그램 생태계가 활발하게 형성되어 있습니다. 

## 1. 공식 리포지토리 및 문서
가장 먼저 확인해야 할 공식 소스입니다.

* GitHub - badlogic/pi-mono: Mario Zechner가 관리하는 공식 모노레포입니다. packages/coding-agent 디렉토리 내에 핵심 코드와 공식 문서가 포함되어 있습니다.
* [Official Site - pi.dev (shittycodingagent.ai)](https://shittycodingagent.ai/packages): 에이전트의 공식 웹사이트로, Packages 섹션에서 커뮤니티가 등록한 확장(Extensions), 기술(Skills), 테마 등을 카테고리별로 찾아볼 수 있습니다. [2, 3, 4, 5] 

## 2. 커뮤니티 확장 모음집 (GitHub)
개발자들이 직접 만든 확장 기능을 모아놓은 대표적인 저장소들입니다.

* [qualisero/awesome-pi-agent](https://github.com/qualisero/awesome-pi-agent): Pi 에이전트와 관련된 유용한 도구, 확장, 리소스를 큐레이션한 'Awesome' 리스트입니다.
* [tomsej/pi-ext](https://github.com/tomsej/pi-ext): 커스텀 푸터, 모델 스위처, 세션 관리자 등 UI/UX 개선을 위한 다양한 확장 기능을 제공합니다.
* [tmustier/pi-extensions](https://github.com/tmustier/pi-extensions): 파일 위젯, 아케이드 게임, 에이전트 가이드 등 독특한 기능들을 포함하고 있습니다. [6, 7, 8, 9] 

## 3. 소통 및 지원 커뮤니티
사용자 간의 팁 공유나 질문이 이루어지는 곳입니다.

* Discord (Official): 개발자와 사용자가 가장 실시간으로 소통하는 채널입니다. 새로운 익스텐션 소식이 가장 먼저 올라오기도 합니다.
* [Reddit - r/PiCodingAgent](https://www.reddit.com/r/PiCodingAgent/): Pi 에이전트 활용 사례나 최적화 팁을 공유하는 커뮤니티입니다. [3, 10, 11] 

## 4. MCP 서버 활용 (확장성 극대화)
Pi는 Model Context Protocol(MCP)을 지원하므로, 범용 MCP 서버 저장소에서 필요한 도구를 가져와 연결할 수 있습니다. [12] 

* [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers): Anthropic에서 관리하는 공식 MCP 서버 목록으로, Google 검색, Slack, GitHub 연동 등을 제공합니다. [12] 

특정 기능(예: UI 개선, 외부 API 연동 등)을 위해 확장 패키지 링크

[1] [https://moge.ai](https://moge.ai/product/pi-coding-agent)
[2] [https://github.com](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/extensions.md)
[3] [https://github.com](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/README.md)
[4] [https://shittycodingagent.ai](https://shittycodingagent.ai/packages)
[5] [https://shittycodingagent.ai](https://shittycodingagent.ai/#:~:text=GitHub%20npm%20Discord.%20$%20npm%20install%20%2Dg,to%20toggle%20thinking%20/%20for%20commands%20!)
[6] [https://github.com](https://github.com/tmustier/pi-extensions#:~:text=Install%20%28pi%20package%20manager%29%20pi%20install%20git:github.com/tmustier/pi%2Dextensions.,the%20setup%20script:%20cd%20~/pi%2Dextensions/agent%2Dguidance%20&&%20./setup.sh.)
[7] [https://github.com](https://github.com/qualisero/awesome-pi-agent)
[8] [https://github.com](https://github.com/qualisero/awesome-pi-agent)
[9] [https://github.com](https://github.com/tomsej/pi-ext)
[10] [https://shittycodingagent.ai](https://shittycodingagent.ai/#:~:text=Get%20involved%20*%20Issues:%20GitHub%20for%20bugs,Docs:%20README%20and%20docs/%20for%20everything%20else.)
[11] [https://www.reddit.com](https://www.reddit.com/r/PiCodingAgent/)
[12] [https://github.com](https://github.com/modelcontextprotocol/servers)

Extension 이벤트 라이프사이클

Pi의 Extension 시스템은 에이전트의 전체 실행 흐름에 걸쳐 이벤트를 발생시키며, 각 이벤트에서 확장이 동작을 가로채거나 수정할 수 있습니다. 이 라이프사이클을 이해하는 것이 효과적인 확장 개발의 핵심입니다.

[i] 이벤트 라이프 사이클 : 전체 흐름은 Pi 시작 시 session_start 이벤트로 시작하여, 사용자 입력(input), 에이전트 시작 전 준비(before_agent_start), 에이전트 루프(agent_start), 각 턴(turn_start -> context -> before_provider_request -> tool_execution_start -> tool_call -> tool_result -> turn_end), 그리고 에이전트 종료(agent_end)로 이어집니다.

 

이 중에서 특히 주목할 만한 이벤트는 세 가지입니다. input 이벤트에서는 사용자의 입력을 가로채어 변환하거나 완전히 교체할 수 있습니다. tool_call 이벤트에서는 도구 실행을 차단(block)할 수 있어, 위험한 명령어 실행을 방지하는 안전장치를 구현할 수 있습니다. tool_result 이벤트에서는 도구 실행 결과를 수정할 수 있어, 결과 필터링이나 후처리를 적용할 수 있습니다. 이러한 이벤트 시스템은 Claude Code의 Hooks(PreToolUse, PostToolUse, Stop 등)보다 훨씬 세밀한 수준의 제어를 가능하게 합니다.

flowchart TD
    A["Pi 시작"] --> B["session_start"]
    B --> C["사용자 입력"]
    C --> D["input\n(가로채기/변환 가능)"]
    D --> E["before_agent_start\n(시스템 프롬프트 수정 가능)"]
    E --> F["agent_start"]
    F --> G["turn_start"]
    G --> H["context\n(메시지 수정 가능)"]
    H --> I["before_provider_request"]
    I --> J["tool_execution_start"]
    J --> K["tool_call\n(차단 가능!)"]
    K --> L["tool_result\n(수정 가능!)"]
    L --> M["turn_end"]
    M --> N{추가 턴\n필요?}
    N -->|Yes| G
    N -->|No| O["agent_end"]
    O --> C

    style K fill:#ff6b6b,stroke:#c92a2a,color:#fff
    style L fill:#ffd43b,stroke:#f59f00,color:#333
    style D fill:#69db7c,stroke:#2b8a3e,color:#333
    style E fill:#69db7c,stroke:#2b8a3e,color:#333
    style H fill:#69db7c,stroke:#2b8a3e,color:#333

Extension 기본 구조와 예제

Extensions의 기본 구조는 default로 내보내는 함수 하나로 시작합니다. 이 함수는 ExtensionAPI 타입의 pi 객체를 인자로 받으며, 이 객체를 통해 이벤트 구독, 도구 등록, 명령어 등록 등 모든 확장 기능에 접근합니다. 다음은 여러 기능을 조합한 실용적인 확장 예제입니다.

import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { Type } from "@sinclair/typebox";

export default function (pi: ExtensionAPI) {

  // --- 세션 시작 시 알림 표시 ---
  pi.on("session_start", async (_event, ctx) => {
    ctx.ui.notify("커스텀 확장이 로드되었습니다!", "info");
  });

  // --- 위험한 명령어 실행 차단 ---
  pi.on("tool_call", async (event, ctx) => {
    if (event.toolName === "bash" 
        && event.input.command?.includes("rm -rf")) {
      const ok = await ctx.ui.confirm(
        "위험 경고!",
        "rm -rf 명령이 감지되었습니다. 정말 실행하시겠습니까?"
      );
      if (!ok) return { block: true, reason: "사용자가 실행을 차단했습니다" };
    }
  });

  // --- 커스텀 도구 등록: LLM이 사용할 수 있는 새 도구 ---
  pi.registerTool({
    name: "project_summary",
    label: "Project Summary",
    description: "프로젝트의 구조와 핵심 파일을 요약합니다",
    parameters: Type.Object({
      depth: Type.Number({ 
        description: "디렉토리 탐색 깊이", 
        default: 2 
      }),
    }),
    async execute(toolCallId, params, signal, onUpdate, ctx) {
      // 커스텀 로직 구현
      return {
        content: [{ 
          type: "text", 
          text: `프로젝트 구조 분석 완료 (깊이: ${params.depth})` 
        }],
        details: {},
      };
    },
  });

  // --- 커스텀 명령어 등록: /hello 명령어 ---
  pi.registerCommand("hello", {
    description: "인사 메시지를 표시합니다",
    handler: async (args, ctx) => {
      ctx.ui.notify(`안녕하세요, ${args || "개발자"}님!`, "info");
    },
  });

  // --- 커스텀 단축키 등록 ---
  pi.registerShortcut("ctrl+shift+s", {
    description: "프로젝트 상태 요약",
    handler: async (ctx) => {
      ctx.ui.setStatus("my-ext", "프로젝트 분석 중...");
      // 분석 로직 수행
      ctx.ui.setStatus("my-ext", "분석 완료");
    },
  });
}

 

위 코드에서 주목할 점은 각 기능이 명확한 역할을 가진다는 것입니다. pi.on()으로 이벤트를 구독하여 에이전트의 동작을 감시하고 개입하며, pi.registerTool()로 LLM이 직접 호출할 수 있는 새로운 도구를 등록하고, pi.registerCommand()로 사용자가 /명령어 형태로 실행할 수 있는 명령을 추가하며, pi.registerShortcut()으로 키보드 단축키를 등록합니다. 이 모든 기능이 하나의 TypeScript 파일 안에서 타입 안전하게(type-safe) 작성될 수 있다는 점이 Pi Extensions의 핵심 강점입니다.

ctx.ui 상호작용 API

Extensions에서 사용자와 상호작용하기 위한 ctx.ui API는 알림, 확인 대화상자, 선택 대화상자, 상태 표시, 위젯 등 다양한 UI 요소를 제공합니다. 이 API를 활용하면 Extensions가 단순히 백그라운드에서 동작하는 것을 넘어, 사용자에게 정보를 제공하고 의사결정을 요청하는 인터랙티브한 경험을 만들 수 있습니다.

// 알림 표시 (info, success, error 타입 지원)
ctx.ui.notify("빌드가 성공적으로 완료되었습니다!", "success");

// 확인 대화상자 (사용자가 Yes/No 선택)
const confirmed = await ctx.ui.confirm(
  "배포 확인",
  "프로덕션 환경에 배포하시겠습니까?"
);  // -> true 또는 false

// 선택 대화상자 (여러 옵션 중 선택)
const choice = await ctx.ui.select(
  "브랜치 선택",
  ["main", "develop", "feature/new-ui"]
);  // -> 선택된 값

// 푸터에 실시간 상태 표시
ctx.ui.setStatus("deploy", "배포 진행 중... 60%");

// 에디터 위에 커스텀 위젯 표시
ctx.ui.setWidget("build-info", [
  "최근 빌드: 성공 | 테스트: 42/42 통과",
  "커버리지: 87% | 번들 크기: 245KB"
]);

 

이러한 UI API의 존재는 Pi의 Extensions가 단순한 후처리 스크립트가 아니라, 완전한 인터랙티브 플러그인 시스템임을 보여줍니다. 실제로 커뮤니티에서는 이 API를 활용하여 실시간 빌드 모니터링 위젯, 배포 파이프라인 확인 플로우, 심지어 Snake 게임까지 구현한 사례가 있습니다.

실용적인 확장 예시  |  Damage Control

Pi의 기본 YOLO 모드가 불안하다면, 커뮤니티에서 제공하는 Damage Control 확장을 참고하여 자신만의 안전장치를 구축할 수 있습니다. 이 확장은 .pi/damage-control-rules.yaml 파일에 정의된 규칙을 기반으로, 위험한 bash 명령어 패턴을 차단하고, 민감한 파일에 대한 접근을 제어합니다.

[i] 참고 : Damage Control 확장은 disler/pi-vs-claude-code GitHub 저장소에서 제공하는 16개 확장 중 하나입니다. 정확한 출처는 다음과 같습니다.
- 저장소: https://github.com/disler/pi-vs-claude-code GitHub

이 저장소는 Pi Agent와 Claude Code를 비교하기 위해 만든 프로젝트로, damage-control 확장은 Pi의 tool_call 이벤트를 활용하여 모든 도구 실행을 .pi/damage-control-rules.yaml 파일의 규칙에 대해 평가하고 차단하는 실시간 안전 감사(safety auditing) 기능 GitHub을 제공합니다.

파일 위치:
- 확장 코드: extensions/damage-control.ts
- 규칙 파일: .pi/damage-control-rules.yaml

저장소 구조: 프로젝트는 extensions/ 디렉토리에 개별 확장 TypeScript 파일들을 포함하고, .pi/ 디렉토리에 damage-control-rules.yaml, agents 정의, settings.json 등의 설정 파일을 포함 GitHub하고 있습니다.

이 저장소에는 damage-control 외에도 pure-focus(산만함 제거 모드), minimal(최소 컨텍스트 미터 푸터), cross-agent(교차 에이전트 명령 로딩), purpose-gate(세션 의도 선언), tool-counter(도구 사용 통계), subagent-widget(서브에이전트 위젯), tilldone(작업 추적), agent-team(멀티에이전트 오케스트레이션), system-select(에이전트 페르소나 전환) GitHub 등 총 16개의 확장 예제가 포함되어 있어, Pi 확장 개발의 참고 자료로 매우 유용합니다.

 

규칙 파일에는 네 가지 유형의 보호가 포함됩니다.

  • 첫째, 위험한 명령어 차단(Dangerous Commands)은 정규식 패턴으로 rm -rf, git reset --hard, DROP DATABASE 등의 파괴적 명령을 감지하여 완전 차단하거나 사용자 확인을 요청합니다.
  • 둘째, 접근 금지 경로(Zero Access Paths)는 .env, ~/.ssh/, *.pem 등 민감한 파일에 대한 읽기와 쓰기를 모두 차단합니다.
  • 셋째, 읽기 전용 경로(Read-Only Paths)는 시스템 파일이나 잠금 파일 등에 대해 읽기는 허용하되 수정은 차단합니다.
  • 넷째, 삭제 금지 경로(No-Delete Paths)는 .git/, Dockerfile, README.md 등 핵심 프로젝트 파일의 삭제를 방지합니다.

Pi-Extention Manager 활용

Pi-Extiontion Manager를 활용하면 TUI환경에서 보다 쉽고 편리하게 Extensions를 관리하실 수 있습니다.

Pi Extention Manager 실행 화면 - 설치된 Extension에 대한 통합관리가 가능합니다
Pi Extention Manager 실행 화면 - 설치된 Extension에 대한 통합관리가 가능합니다

Install

pi install npm:pi-extension-manager

Usage

 
/extensions              Open interactive manager
/extensions show         Summarize current state (counts, updates, cache)
/extensions list         List local extensions
/extensions installed    List installed packages
/extensions install <s>  Install a package (npm:, git:, or path)
/extensions remove <s>   Remove a package
/extensions update [s]   Update one or all packages
/extensions remote       Browse community packages
/extensions enable <n>   Enable a local extension
/extensions disable <n>  Disable a local extension
/extensions history      Show change history
/extensions auto-update  Configure auto-update schedule
/extensions verify       Check runtime dependencies (npm, paths)
/extensions path         Show config and data paths
/extensions reset        Reset settings to defaults
/extensions help         Show usage help

7. Skills  |  온디맨드 전문 능력

Skills 시스템의 개념

Skills(스킬)는 LLM이 필요할 때 온디맨드로 로드하는 전문 능력 패키지입니다. Pi의 Extensions가 에이전트의 동작을 프로그래밍적으로 확장하는 것이라면, Skills는 에이전트에게 특정 분야의 전문 지식과 도구 사용법을 가르치는 역할을 합니다. 각 스킬은 SKILL.md 파일을 핵심으로 하며, 이 파일에 에이전트가 해당 능력을 활용하기 위한 지시사항, 사용 가능한 도구, 예제 등이 마크다운 형식으로 작성되어 있습니다.

 

Skills의 핵심 설계 원칙은 "점진적 공개(progressive disclosure)"입니다. 모든 스킬의 도구 설명이 세션 시작부터 컨텍스트에 포함되는 것이 아니라, 에이전트가 특정 작업을 수행해야 할 때 관련 스킬만 선택적으로 로드됩니다. 이는 앞서 설명한 MCP 서버의 컨텍스트 오버헤드 문제를 효과적으로 해결하는 접근 방식입니다. 스킬이 로드되지 않은 상태에서는 시스템 프롬프트에 스킬 이름과 간단한 설명만 노출되고, 에이전트가 해당 스킬이 필요하다고 판단하면 그때 전체 지시사항을 로드합니다.

 

또한 Pi의 Skills는 Agent Skills 표준(agentskills.io)을 구현하고 있어, Claude Code, Codex CLI, Amp, Droid 등 다른 코딩 에이전트와도 호환됩니다. 실제로 pi-skills 저장소의 스킬들은 Claude Code의 skills 디렉토리에도 심볼릭 링크로 연결하여 동일하게 사용할 수 있습니다.

스킬 디렉토리 구조와 SKILL.md

스킬은 글로벌(~/.pi/agent/skills/) 또는 프로젝트 로컬(.pi/skills/) 디렉토리에 배치합니다. 각 스킬은 하나의 디렉토리로 구성되며, 반드시 SKILL.md 파일을 포함해야 합니다. SKILL.md 파일은 frontmatter(YAML 메타데이터)와 마크다운 본문으로 구성됩니다.

brave-search/               # 스킬 디렉토리
|-- SKILL.md                # 필수: 스킬 정의 파일 (frontmatter + 지시사항)
|-- search.js               # 보조 스크립트
+-- content.js              # 보조 스크립트

 

SKILL.md 파일의 frontmatter에는 스킬의 이름(name)과 설명(description)이 필수로 포함되어야 하며, 이 정보가 에이전트의 시스템 프롬프트에 노출되어 스킬 선택의 기준이 됩니다. 본문에는 스킬 사용법, 설치 과정, 명령어 예시 등이 자유롭게 작성됩니다.

---
name: brave-search
description: Brave Search API로 웹 검색 및 내용 추출.
  문서, 사실, 웹 콘텐츠 검색 시 사용.
---

# Brave Search

## Setup
cd /path/to/brave-search && npm install

## Search
./search.js "query"

## Content Extraction
./content.js "url"

기본 제공 스킬

Pi의 공식 스킬 저장소(badlogic/pi-skills)에는 다양한 실용적인 스킬이 포함되어 있습니다. 이 스킬들은 git clone 한 번으로 설치할 수 있으며, 각각 독립적으로 사용 가능합니다.

스킬 이름 설명 주요 기능
brave-search Brave Search API를 활용한 웹 검색 웹 검색 쿼리 실행 및 결과 내용 추출
browser-tools Chrome DevTools Protocol 기반 브라우저 자동화 웹 페이지 탐색, 스크린샷, DOM 조작
gccli Google Calendar CLI 일정 조회, 생성, 참석 가능 시간 확인
gdcli Google Drive CLI 파일 관리, 검색, 공유 설정
gmcli Gmail CLI 이메일 읽기, 작성, 레이블 관리
transcribe Groq Whisper API 기반 음성-텍스트 변환 오디오 파일을 텍스트로 변환
vscode VS Code 통합 diff 비교, 파일 비교 기능
youtube-transcript YouTube 동영상 자막 추출 동영상의 전체 자막을 텍스트로 추출

 

스킬 설치는 글로벌 또는 프로젝트 수준에서 진행할 수 있으며, 다음과 같이 간단합니다.

# 글로벌 설치 (모든 프로젝트에서 사용 가능)
git clone https://github.com/badlogic/pi-skills ~/.pi/agent/skills/pi-skills

# 또는 프로젝트 로컬 설치
git clone https://github.com/badlogic/pi-skills .pi/skills/pi-skills

스킬 사용 방법

스킬을 사용하는 방법은 두 가지입니다.

  • 첫 번째는 에이전트가 자동으로 적절한 스킬을 선택하여 사용하는 방식입니다. 에이전트의 시스템 프롬프트에 설치된 스킬의 이름과 설명이 노출되어 있으므로, 사용자가 "최근 AI 뉴스를 검색해줘"라고 요청하면 에이전트가 자동으로 brave-search 스킬을 로드하여 실행합니다.
  • 두 번째는 명시적으로 스킬을 지정하여 실행하는 방식으로, 에디터에서 /skill:스킬이름 형태로 입력합니다.
# 명시적 스킬 실행
/skill:brave-search              # 스킬 로드 및 실행
/skill:pdf-tools extract file    # 인자와 함께 실행

8. 실전 활용 시나리오

비인터랙티브 모드로 자동화 파이프라인 구축

Pi는 인터랙티브 TUI 모드 외에도, 비인터랙티브(non-interactive) 모드를 지원하여 CI/CD 파이프라인이나 자동화 스크립트에 통합할 수 있습니다. -p(또는 --print) 옵션을 사용하면 Pi가 응답을 출력한 후 즉시 종료하며, --mode json 옵션을 사용하면 모든 이벤트가 JSON 라인(JSON Lines) 형태로 출력되어 프로그래밍적으로 파싱할 수 있습니다. 이 기능을 활용하면 코드 리뷰 자동화, 문서 생성, 커밋 메시지 작성 등 다양한 반복 작업을 자동화할 수 있습니다.

# 한 번 실행 후 종료: 코드베이스 요약
pi -p "이 코드베이스를 요약해줘"

# 파이프 입력: 파일 내용을 AI에게 전달
cat README.md | pi -p "이 텍스트를 한국어로 번역해줘"

# 파일 참조: 이미지 분석
pi @screenshot.png -p "이 스크린샷의 UI 문제를 찾아줘"

# 읽기 전용 모드: 코드 리뷰 (수정 불가)
pi --tools read,grep,find,ls -p "이 프로젝트의 코드를 리뷰해줘"

# 특정 모델과 thinking level 지정
pi --model sonnet:high "이 알고리즘의 시간 복잡도를 분석해줘"

# JSON 모드: 모든 이벤트를 JSON으로 출력
pi --mode json "빌드 오류를 분석해줘"

 

특히 읽기 전용 모드(--tools read,grep,find,ls)는 코드 리뷰나 탐색 작업에서 에이전트가 실수로 파일을 수정하는 것을 방지하면서 안전하게 분석을 수행할 수 있게 해줍니다. 이 모드에서는 bash 도구와 write, edit 도구가 비활성화되므로, 에이전트는 오직 코드를 읽고 분석하는 것만 가능합니다.

SDK 방식으로 자체 애플리케이션에 임베딩

Pi의 또 다른 강력한 활용법은 SDK를 사용하여 자체 애플리케이션에 코딩 에이전트를 임베딩하는 것입니다. Pi의 모노레포 아키텍처 덕분에 필요한 수준의 패키지만 가져와서 사용할 수 있으며, 이를 통해 Slack 봇, 웹 기반 AI 어시스턴트, 자동화 도구 등 다양한 형태의 애플리케이션을 구축할 수 있습니다. OpenClaw 프로젝트가 바로 이 SDK를 활용하여 멀티채널 AI 어시스턴트를 구축한 대표적인 사례입니다.

import {
  AuthStorage,
  createAgentSession,
  ModelRegistry,
  SessionManager
} from "@mariozechner/pi-coding-agent";

// 인메모리 세션으로 에이전트 세션 생성
const { session } = await createAgentSession({
  sessionManager: SessionManager.inMemory(),
  authStorage: AuthStorage.create(),
  modelRegistry: ModelRegistry.create(authStorage),
});

// 프롬프트 전송 및 결과 수신
await session.prompt("현재 디렉토리의 파일 목록을 보여줘");

 

SDK 방식의 핵심 장점은 에이전트의 모든 동작을 프로그래밍적으로 제어할 수 있다는 점입니다. 세션 관리, 인증, 모델 선택, 도구 구성 등을 코드 수준에서 세밀하게 조정할 수 있으며, Extensions와 동일한 이벤트 시스템을 활용하여 에이전트의 행동을 가로채고 커스터마이즈할 수 있습니다. 이는 Claude Code에서는 제공되지 않는 수준의 통합 유연성입니다.

RPC 모드로 외부 시스템 연동

--mode rpc 옵션을 사용하면 Pi가 JSON 프로토콜을 통해 stdin/stdout으로 통신하는 RPC 서버로 동작합니다. 이 모드는 Node.js가 아닌 다른 언어나 환경에서 Pi를 프로세스로 실행하고 제어해야 할 때 유용합니다. 예를 들어, Python이나 Go로 작성된 자동화 시스템에서 Pi 프로세스를 생성하고, JSON 메시지를 교환하여 코딩 작업을 위임할 수 있습니다. RPC 모드는 JSON Lines 프로토콜을 사용하므로, 한 줄에 하나의 JSON 메시지가 교환되는 간단한 구조입니다.


9. Pi Packages  |  확장 생태계

패키지 시스템 개요

Pi Packages는 Extensions, Skills, Prompt Templates, Themes를 하나로 묶어 npm이나 git을 통해 공유할 수 있는 배포 단위입니다. 이 패키지 시스템을 통해 개발자들은 자신이 만든 확장 기능을 커뮤니티와 공유하고, 다른 사람이 만든 패키지를 손쉽게 설치하여 사용할 수 있습니다. npmjs.com에서 "pi-package" 키워드로 검색하면 커뮤니티에서 공유한 패키지들을 찾을 수 있으며, Pi의 공식 갤러리(shittycodingagent.ai/packages)에서 동영상과 이미지 프리뷰가 포함된 패키지 목록을 확인할 수도 있습니다.

 

패키지의 설치와 관리는 pi 명령어의 하위 명령으로 수행되며, npm 패키지와 git 저장소 두 가지 소스를 지원합니다. 기본적으로 글로벌 설치(~/.pi/agent/)가 이루어지며, -l 옵션을 추가하면 프로젝트 로컬(.pi/)에 설치됩니다.

# npm 패키지 설치
pi install npm:@foo/pi-tools
pi install npm:@foo/pi-tools@1.2.3    # 특정 버전 고정

# git 저장소에서 설치
pi install git:github.com/user/repo
pi install git:github.com/user/repo@v1 # 태그 또는 커밋 고정

# HTTPS URL로 설치
pi install https://github.com/user/repo

# 프로젝트 로컬 설치 (-l 옵션)
pi install -l npm:@foo/pi-tools

# 패키지 관리
pi remove npm:@foo/pi-tools           # 패키지 제거
pi list                               # 설치된 패키지 목록 확인
pi update                             # 버전 고정 제외 전체 업데이트
pi config                             # 패키지 활성화/비활성화 설정

커스텀 패키지 제작

자신만의 Pi 패키지를 만들어 공유하는 것도 간단합니다. package.json 파일에 pi 키를 추가하고, 확장, 스킬, 프롬프트, 테마 등의 디렉토리 경로를 지정하면 됩니다. pi 키가 없는 경우에도 Pi가 자동으로 관례적인 디렉토리(extensions/, skills/, prompts/, themes/)를 탐색합니다.

{
  "name": "my-pi-package",
  "version": "1.0.0",
  "keywords": ["pi-package"],
  "pi": {
    "extensions": ["./extensions"],
    "skills": ["./skills"],
    "prompts": ["./prompts"],
    "themes": ["./themes"]
  }
}

 

패키지를 npm에 공개하면 다른 사용자가 pi install npm:패키지이름으로 바로 설치할 수 있으며, git 저장소를 공개하면 pi install git:github.com/user/repo 형태로 설치할 수 있습니다. 패키지에는 반드시 "pi-package" 키워드를 포함시켜야 검색에 잘 노출됩니다.

[!] 주의: Pi 패키지는 시스템에 대한 완전한 접근 권한을 가집니다. Extensions는 임의의 코드를 실행할 수 있고, Skills는 모델에게 실행 파일 실행을 포함한 모든 행동을 지시할 수 있습니다. 따라서 서드파티 패키지를 설치하기 전에 반드시 소스 코드를 검토하는 것을 강력히 권장합니다.


10.  어떤 도구를 선택할 것인가

Pi를 선택해야 하는 경우

Pi Coding Agent는 다음과 같은 상황에서 특히 강력한 선택이 됩니다.

  • 첫째, 커스터마이즈를 최우선으로 중시하는 개발자에게 적합합니다. 에이전트의 시스템 프롬프트부터 도구 구성, UI 요소까지 모든 것을 TypeScript로 자유롭게 수정하고 확장할 수 있으므로, 자신만의 완벽한 워크플로우를 구축하고 싶은 개발자에게 이상적입니다.
  • 둘째, 다중 LLM 프로바이더를 활용하고 싶은 경우에 적합합니다. 20개 이상의 프로바이더를 지원하므로, 작업 유형에 따라 비용 효율적인 모델을 선택하거나 특정 프로바이더의 장점을 활용할 수 있습니다.
  • 셋째, 오픈소스와 완전한 투명성을 중시하는 경우에 적합합니다. Pi는 MIT 라이선스의 완전한 오픈소스로, 소스 코드를 검토하고 수정하며 포크할 수 있는 자유가 보장됩니다.
  • 넷째, SDK를 활용하여 자체 AI 에이전트 서비스를 구축하고 싶은 경우에 적합합니다. Pi의 모노레포 아키텍처는 필요한 수준의 추상화만 가져다 쓸 수 있어, 커스텀 AI 애플리케이션의 기반으로 활용하기에 최적화되어 있습니다.

Claude Code를 선택해야 하는 경우

반면 Claude Code는 다음과 같은 상황에서 더 나은 선택이 될 수 있습니다.

  • 첫째, 설치 즉시 풍부한 기능을 사용하고 싶은 경우입니다. 서브 에이전트, 플랜 모드, MCP 통합, 웹 검색 등이 모두 내장되어 있어 별도의 설정이나 확장 설치 없이 바로 활용할 수 있습니다.
  • 둘째, 안전성이 중요한 엔터프라이즈 환경에서 사용하는 경우입니다. 거부 우선 권한 시스템, 파일시스템 샌드박스, 명령어 사전 검증 등 다층적 안전장치가 기본으로 제공되므로, 팀 환경에서의 실수를 방지하는 데 효과적입니다.
  • 셋째, Claude 모델의 성능을 최대한 활용하고 싶은 경우입니다. Claude Code는 Anthropic이 직접 개발한 도구인 만큼, Claude 모델과의 최적화가 가장 깊이 이루어져 있으며, SWE-bench Verified 벤치마크에서 80.9%의 최고 점수를 기록한 Opus 4.5의 성능을 가장 잘 발휘할 수 있습니다.
  • 넷째, 팀 단위의 협업이 중요한 경우입니다. Agent Teams 기능과 공식 마켓플레이스, 관리 정책(managed policy) 등 엔터프라이즈 수준의 협업 기능이 내장되어 있습니다.

두 도구의 공존

실제로 많은 개발자들이 두 도구를 상황에 따라 병행하여 사용하고 있습니다. CLAUDE.md 파일이 Pi에서도 인식되므로 프로젝트 컨텍스트를 공유할 수 있으며, Skills 시스템도 호환되어 동일한 스킬을 두 도구에서 모두 활용할 수 있습니다. 예를 들어, 복잡한 디버깅이나 아키텍처 설계에는 Claude Code의 풍부한 내장 기능과 Claude 모델의 깊은 추론 능력을 활용하고, 반복적인 자동화 작업이나 커스텀 워크플로우가 필요한 상황에서는 Pi의 유연한 확장 시스템을 활용하는 방식으로 상호 보완적인 사용이 가능합니다.

향후 코딩 에이전트 생태계 전망

2026년 현재, 코딩 에이전트 시장은 급속도로 발전하고 있습니다. Claude Code, Codex CLI, Cursor, Windsurf 등 메이저 도구들이 멀티 에이전트 기능을 동시에 출시하고, Terminal-Bench 2.0 같은 벤치마크가 에이전트의 실제 업무 수행 능력을 객관적으로 측정할 수 있게 되면서, 도구 선택의 기준이 점점 더 명확해지고 있습니다. Pi는 이 생태계에서 "미니멀한 코어 + 무한한 확장성"이라는 독특한 포지션을 차지하며, 에이전트 도구가 어떤 모습이어야 하는지에 대한 새로운 관점을 제시하고 있습니다.

 

코딩 에이전트의 미래는 하나의 도구가 모든 것을 지배하는 형태가 아니라, 각자의 철학과 강점을 가진 다양한 도구들이 개발자의 선택에 따라 공존하는 생태계로 발전할 가능성이 높습니다. Pi가 보여준 "코어는 작게, 커스터마이즈는 무한하게"라는 원칙은 그 자체로 하나의 설계 철학이며, 자신의 도구를 직접 만들어가고 싶은 개발자들에게 강력한 대안이 되고 있습니다.


참고 자료