-
Pi는 터미널 기반의 미니멀 코딩 에이전트로, 사용자의 워크플로우에 맞게 확장 가능한 구조를 제공
-
TypeScript 확장, 스킬, 프롬프트 템플릿, 테마를 조합해 자신만의 개발 환경을 구성하고, 이를 npm 또는 git 패키지로 공유 가능
-
15개 이상 AI 제공자와 수백 개 모델을 지원하며, 세션 중에도 모델을 전환하거나 사용자 정의 모델을 추가할 수 있음
- 세션은 트리 구조의 히스토리로 저장되어 이전 지점으로 이동하거나 HTML·GitHub gist로 내보내기 가능
- 핵심 기능을 최소화하고 확장성 중심의 설계 철학을 유지해, 개발자가 필요한 기능만 직접 구현하거나 패키지로 추가할 수 있음
Pi 개요
- Pi는 터미널 코딩 하니스로, 사용자가 워크플로우를 바꾸지 않고 도구를 맞춤화할 수 있는 구조
- 확장 가능한 구성요소로 TypeScript 확장, 스킬, 프롬프트 템플릿, 테마를 지원
- 이들을 묶은 pi 패키지를 npm 또는 git을 통해 설치·공유 가능
- 기본 설정은 강력하지만, 서브 에이전트나 플랜 모드 같은 기능은 포함하지 않음
- 네 가지 모드(인터랙티브, print/JSON, RPC, SDK)를 제공하며, clawdbot에서 실제 통합 사례 확인 가능
모델 및 제공자
-
Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama 등 15개 이상 제공자와 수백 개 모델 지원
-
API 키 또는 OAuth로 인증 가능
-
/model 명령어나 Ctrl+L로 세션 중 모델 전환, Ctrl+P로 즐겨찾기 모델 순환
-
models.json 또는 확장을 통해 사용자 정의 모델 추가 가능
세션 관리
- 세션은 트리 구조로 저장되어, /tree 명령으로 과거 지점으로 이동 가능
- 모든 분기가 하나의 파일에 저장되며, 메시지 유형 필터링 및 북마크 라벨링 지원
-
/export로 HTML 내보내기, /share로 GitHub gist 업로드 및 공유 URL 생성 가능
컨텍스트 엔지니어링
-
최소한의 시스템 프롬프트와 확장성으로 컨텍스트 윈도우를 세밀하게 제어 가능
-
AGENTS.md: 프로젝트 지침을 시작 시 자동 로드
-
SYSTEM.md: 프로젝트별 기본 시스템 프롬프트 교체 또는 추가
-
Compaction: 컨텍스트 한계에 도달 시 이전 메시지를 자동 요약, 확장을 통해 주제 기반 요약이나 코드 인식 요약 구현 가능
-
Skills: 필요 시 로드되는 기능 패키지로, 프롬프트 캐시를 유지하며 점진적 기능 제공
-
Prompt templates: /name 명령으로 확장 가능한 재사용 프롬프트
-
Dynamic context: 확장을 통해 메시지 삽입, 히스토리 필터링, RAG 구현, 장기 메모리 구축 가능
메시지 큐잉
- 에이전트가 작업 중일 때도 메시지 제출 가능
-
Enter: 현재 도구 실행 후 전달되는 steering 메시지
-
Alt+Enter: 작업 완료 후 전달되는 follow-up 메시지
확장 구조
- Pi는 기능이 아닌 원시 구성요소(Primitives) 중심으로 설계되어, 사용자가 직접 기능을 구현 가능
- 확장은 TypeScript 모듈 형태로, 도구, 명령, 단축키, 이벤트, 전체 TUI 접근 가능
- 예시 확장: 서브 에이전트, 플랜 모드, 권한 게이트, 경로 보호, SSH 실행, 샌드박싱, MCP 통합, 커스텀 에디터, 오버레이 등
- “Yes, Doom runs.”라는 예시처럼 게임 오버레이 확장도 존재
- 직접 구현하지 않으려면 pi 패키지 설치로 기능 추가 가능
-
50개 이상 확장 예시가 GitHub에 공개됨
패키지 관리
- 확장, 스킬, 프롬프트, 테마를 패키지로 번들링하여 npm 또는 git에서 설치 가능
- 예시:
$ pi install npm:@foo/pi-tools
$ pi install git:github.com/badlogic/pi-doom
- 버전 고정(@1.2.3 또는 @tag), pi update로 전체 업데이트, pi list로 목록 확인, pi config로 설정 가능
-
pi -e 명령으로 설치 없이 테스트 가능
-
npm 검색어 pi-package 또는 Discord 채널에서 패키지 탐색 및 공유 가능
통합 모드
-
Interactive: 전체 TUI 환경
-
Print/JSON: 스크립트용 pi -p "query", 이벤트 스트림용 --mode json
-
RPC: stdin/stdout 기반 JSON 프로토콜로 비-Node 환경 통합 지원
-
SDK: 애플리케이션 내 임베딩 가능, clawdbot에서 실제 사용 예시 제공
설계 철학
- Pi는 확장성을 극대화하여 핵심을 최소화하고, 사용자가 직접 워크플로우를 정의하도록 설계
-
MCP, 서브 에이전트, 권한 팝업, 플랜 모드, 내장 TODO, 백그라운드 bash 기능은 포함하지 않음
- 대신 확장, 스킬, 패키지를 통해 동일 기능을 구현하거나 외부 도구와 연동 가능
-
tmux를 통한 병렬 실행 및 관찰 지원
- 이러한 접근은 사용자 주도형 개발 환경 구성을 가능하게 함
- 전체 철학은 관련 블로그 포스트에서 추가 설명 제공