# Pi – 간결한 터미널 코딩 하니스

> Clean Markdown view of GeekNews topic #26999. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26999](https://news.hada.io/topic?id=26999)
- GeekNews Markdown: [https://news.hada.io/topic/26999.md](https://news.hada.io/topic/26999.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-02-25T21:33:28+09:00
- Updated: 2026-02-25T21:33:28+09:00
- Original source: [pi.dev](https://pi.dev)
- Points: 12
- Comments: 2

## Summary

터미널 기반 **미니멀 코딩 에이전트 Pi**는 핵심 기능을 최소화하고 확장성 중심으로 설계되어, 개발자가 자신의 워크플로우에 맞게 도구를 조립하듯 구성할 수 있습니다. **TypeScript 확장·스킬·프롬프트 템플릿·테마**를 조합해 맞춤형 환경을 만들고, 이를 npm이나 git 패키지로 공유할 수 있습니다. 세션은 트리 구조로 관리되어 대화 흐름을 시각적으로 추적하거나 HTML·GitHub gist로 내보내기 가능하며, 15개 이상 AI 제공자와 수백 개 모델을 자유롭게 전환해 사용할 수 있습니다.

## Topic Body

- **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**를 통한 병렬 실행 및 관찰 지원  
- 이러한 접근은 **사용자 주도형 개발 환경 구성**을 가능하게 함  
- 전체 철학은 관련 **블로그 포스트**에서 추가 설명 제공

## Comments



### Comment 51947

- Author: qodot
- Created: 2026-02-26T15:49:28+09:00
- Points: 1

pi 너무 맘에 들어용

### Comment 51900

- Author: neo
- Created: 2026-02-25T21:33:28+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47143754) 
- 나에게 Pi와 **“claw” 현상**이 흥미로운 이유는 이것이 오픈소스의 미래를 보여주기 때문임  
  이제는 기능 요청이나 PR을 보내는 대신, 코딩 에이전트에게 기능 추가 방법을 알려주는 **skill 파일**을 내려받는 시대가 됨  
  소프트웨어는 더 이상 고정된 산출물이 아니라, 사용자마다 다른 **살아있는 도구**가 됨  
  이런 새로운 협업 패러다임에서 어떤 툴링이 등장할지 궁금함
  - 나도 같은 흐름을 보고 있음  
    지금의 소프트웨어는 사용자가 환경을 통제할 수 없게 만들어서 **소외감**을 줌  
    하지만 개인화되고 저렴하며 유연한 소프트웨어는 진정한 **소유감**을 줄 수 있음  
    예전엔 리눅스 데스크탑이 그런 자유를 줬다면, 이제는 모두가 그 혜택을 누릴 수 있을 것 같음  
    나는 이런 미래를 낙관적으로 보고 있음
  - 나도 최근 이런 생각을 많이 함  
    앞으로는 **극도로 개인화된 소프트웨어**가 늘어날 것 같음 — 특정 개인이나 소수 그룹만 이해할 수 있는 수준으로  
    나도 최근 Claude를 이용해 나와 몇 명만 쓰는 툴을 많이 만들었음  
    예를 들어 DnD 일정 앱, 스포일러 없는 Formula E 뉴스 확인기, 클라이밍 협동조합 투표 사이트 등  
    예전엔 이런 걸 만들 이유가 없었는데, 이제는 가능해짐  
    관련 글은 [Releasing Software Now](https://redfloatplane.lol/blog/14-releasing-software-now/)에 정리했음
  - “다른 사람의 복제본과는 다른 살아있는 도구”라는 말에 동의하지만, 이런 모델은 **기관 채택**은 어렵다고 봄  
    대기업이나 정부가 이런 비일관적인 시스템을 허용할 리 없음
  - 이런 패러다임이 왜 흥미로운 툴링을 낳는지 모르겠음  
    오히려 **더 나쁜 도구**들이 나올 것 같음
  - 모든 사람이 서로 다른 버전의 소프트웨어를 쓰게 되면, **문제 해결**이 얼마나 복잡해질지 상상만 해도 아찔함

- 나는 OpenCode에 익숙해서 개인용 AI 워크스페이스로 써볼까 고민 중임  
  Pi는 생태계가 작지만 **유연성과 확장성**이 더 크고, 커뮤니티의 열정도 느껴짐  
  Pi를 OpenCode 대신 써보는 게 나을지, 그리고 어떤 **UI 옵션**이 있는지 궁금함
  - 나도 같은 고민을 하고 있음  
    OpenCode를 .md 파일 기반으로 글쓰기나 정리용으로 써봤는데 꽤 잘 맞았음  
    이제는 이 작업에 더 적합한 **새로운 하네스**를 찾아보고 있음
  - 네가 이해한 방향이 정확함

- 내가 요즘 가장 좋아하는 **하네스(harness)** 임  
  직접 확장할 수 있어서 효율이 높고, [vibes 프로젝트](https://github.com/rcarmo/vibes)에 통합했음  
  ACP보다 훨씬 빠름
  - 직접 통합과 ACP의 **속도 차이**가 왜 나는지 궁금함  
    나는 범용 에이전트 상호작용 프로토콜을 찾고 있었는데, ACP가 그 후보였음  
    그런데 OpenCode조차 UI에서 ACP를 안 쓰는 걸 보면 뭔가 문제가 있는 듯함  
    대체할 만한 더 나은 옵션이 있는지도 알고 싶음
  - 어떤 하네스들과 비교해봤는지 궁금함
  - 이거 정말 마음에 듦! 내가 직접 만들려던 걸 이미 구현해둔 느낌임
  - “하네스”가 무슨 뜻인지? 그냥 **코딩 에이전트** 아닌가?

- Pi를 며칠만 써본 사람 중에 **일상용으로 안 쓰게 된 사람을 본 적이 없음**  
  자기 입맛대로 도구를 세팅할 수 있는 자유를 맛보면 다시 돌아가기 힘듦  
  게다가 그 위에 멋진 확장 기능도 만들 수 있음
  - 듣자하니 Pi는 코딩 에이전트계의 **Neovim 혹은 Emacs** 같음
  - 반갑지만, 나는 Pi보다 **Claude CLI와 OpenCode**가 훨씬 생산적이었음  
    Pi는 확장성은 흥미롭지만, 실제 작업 품질은 부족했음
  - Claude Code에는 없는 **직접 만든 기능** 중 어떤 게 가장 마음에 드는지 궁금함

- 왜 굳이 **터미널 앱**으로 코딩을 해야 하는지 이해가 안 됨  
  IDE 확장으로도 똑같은 일을 더 잘할 수 있고, VSCode에서도 창 배치를 그대로 복원할 수 있음
  - 나는 CLI 에이전트를 쓰면 IDE가 전혀 필요 없음  
    마치 **텍스트 채팅으로 동료 개발자에게 지시**하는 느낌임  
    예를 들어 서버 유지보수 프로그램을 Claude에게 맡겨두고, 다른 일 하다가 결과만 확인함  
    테스트 통과하면 코드가 어떻게 생겼는지는 중요하지 않음  
    실제로 15분 정도의 능동 작업만으로 여러 일을 병행할 수 있었음

- 나는 Emacs용 **pi-coding-agent 패키지**로 Pi를 쓰고 있음  
  RPC 모드로 입력/출력용 Markdown 버퍼를 만들어서, 다른 TUI보다 훨씬 쾌적함  
  이슈 트래커 연동도 쉽게 했고, `read`와 `write` 명령을 Emacs 버퍼 기반으로 재정의했음  
  `edit` 명령도 Emacs의 **tree-sitter 쿼리**를 활용해 개선해보고 싶음  
  또 `emacs_eval` 명령으로 EWW를 통해 문서 탐색도 가능하게 했음
  - 멋짐! `read`와 `write`를 Emacs 버퍼에 어떻게 매핑했는지 궁금함  
    참고로 Pi Emacs 모드는 [여기서 설치 가능](https://github.com/dnouri/pi-coding-agent)함  
    `read`, `write`, `edit` 호출 결과에서 바로 해당 파일을 열 수 있게 하는 기능도 추가 중임  
    곧 Pi의 세션 및 트리 브라우징과 **Magit 연동**도 지원할 예정임

- 나는 Pi로 시작해서 최근 2주간 **oh-my-pi**를 써오고 있음  
  [oh-my-pi 저장소](https://github.com/can1357/oh-my-pi)는 Pi의 **배터리 포함 버전**임
  - oh-my-pi를 써본 경험이 어떤지 궁금함
  - 샌드박스 환경에서 돌리고 있는지, 혹은 **격리 기능**이 있는지도 알고 싶음

- 나도 기존 프로젝트를 복제해서 다른 이름으로 내볼까 함  
  예를 들어 “**Waterfox** — 최소한의 웹 소비자” 같은 식으로

- **사전 구성된 Pi 버전**: [oh-my-pi](https://github.com/can1357/oh-my-pi)
  - 이 포크는 멋지지만, 아무 저장소의 툴을 마구 추가하는 건 **보안상 위험**해 보임  
    앱처럼 안전하게 설치·테스트할 수 있는 **격리된 환경**이 필요함
  - 이 포크의 **열렬한 팬**임  
    codex/claude code → opencode → pi → oh-my-pi 순으로 넘어왔음
  - 훌륭한 포크임! 나도 기여하려 했지만 커뮤니티가 다소 **폐쇄적**인 느낌이었음
  - oh-my-pi의 웹 툴을 일반 Pi 플러그인으로 **분리**해서 쓰면 좋을 것 같음  
    언젠가 직접 시도해볼 생각임
  - 하지만 이건 Pi의 본질을 놓친 것 같음  
    Pi의 매력은 **가벼움과 자율성**인데, oh-my-pi는 기능이 많아 오히려 **OpenCode와 비슷한 무거움**을 줌

- Pi는 정말 **훌륭한 설계 선택**을 했음  
  Mario와 Armin에게 찬사를 보냄 — 좋은 취향은 결국 드러남
  - 하지만 왜 이런 걸 **JavaScript로 구현**했는지는 이해가 안 됨
