oh-my-pi
LSP 와 브라우저를 함께 쓰는 터미널 우선 AI 코딩 에이전트
curl -fsSL https://omp.sh/install | sh터미널에서 바로 돌리는 AI 코딩 에이전트입니다. 해시 앵커 방식으로 편집 위치를 고정해 수정이 엉뚱한 줄에 들어가는 문제를 줄이고, LSP 연결로 타입 정보를 읽으며 브라우저 접근까지 함께 씁니다. 설치 스크립트와 Homebrew 탭 두 경로를 모두 제공합니다.
판단
이럴 때 씁니다
- 에이전트가 편집 위치를 잘못 잡아 공백 싸움이나 string-not-found 루프에 빠지는 일이 잦을 때
- 이름 변경이 참조까지 제대로 전파되도록 LSP 를 붙인 에이전트가 필요할 때
- 실행 중인 바이너리를 디버거로 직접 붙잡아 확인하는 작업까지 맡기고 싶을 때
- 역할별로 다른 모델을 라우팅해 비용과 품질을 나누고 싶을 때
이럴 땐 쓰지 마세요
- 최소한의 도구만 두고 필요한 기능을 직접 확장해 쓰는 방식을 선호할 때
- Alpine 처럼 libstdc++ 를 기본 제공하지 않는 환경에서 추가 설치가 곤란할 때
- 터미널이 아니라 GUI 중심 작업 흐름을 원할 때
차별점
- 해시 앵커 편집으로 모델이 줄을 다시 타이핑하는 대신 앵커를 가리켜 공백 불일치와 문자열 미발견 루프를 줄입니다.
- LSP 14개 조작과 DAP 28개 조작을 내장해 이름 변경 전파와 실행 중 디버깅을 에이전트가 직접 수행합니다.
- 60개 이상 프로바이더와 31개 내장 도구를 기본 제공하고 역할별 모델 라우팅을 지원합니다.
- 약 8만 줄 규모의 Rust 코어가 실행을 담당하고 셸 자동완성을 CLI 메타데이터에서 생성해 문서와 실제가 어긋나지 않습니다.
워크플로
- 01설치 스크립트나 Homebrew, Bun, Nix 중 환경에 맞는 경로로 설치합니다.
- 02omp completions 로 셸 자동완성을 걸어 둡니다. 명령 메타데이터에서 생성되므로 실제 CLI 와 어긋나지 않습니다.
- 03프로젝트에서 omp 를 실행하고 --model 계열 플래그로 역할별 모델을 지정합니다.
- 04복잡한 변경은 plan 모드로 계획을 먼저 확정하고, 병렬 작업이 필요하면 격리된 워크트리에서 서브에이전트를 돌립니다.
주요 명령
| 명령 | 설명 |
|---|---|
curl -fsSL https://omp.sh/install | sh | macOS·Linux 에 설치합니다. |
brew install can1357/tap/omp | Homebrew 탭으로 설치합니다. |
bun install -g @oh-my-pi/pi-coding-agent | Bun 으로 설치합니다. 저장소가 권장하는 경로입니다. |
eval "$(omp completions zsh)" | 실제 CLI 메타데이터에서 생성한 셸 자동완성을 활성화합니다. |
mise use -g github:can1357/oh-my-pi | mise 로 버전을 고정해 설치합니다. |
함정
설치 전에 확인하세요
- Alpine 등 musl 환경에서는 프리빌트 바이너리가 libstdc++ 와 libgcc 를 동적 링크하므로 apk add libstdc++ libgcc 를 먼저 해야 합니다.
- Bun 경로로 설치하려면 bun 1.3.14 이상이 필요합니다.
- Pi 의 포크라 원본과 철학이 다릅니다. 원본이 최소 도구 집합을 지향하는 반면 이쪽은 기능을 기본 탑재하므로, Pi 문서를 그대로 참고하면 어긋나는 부분이 있습니다.
- 릴리스 주기가 매우 짧습니다. 버전을 고정하지 않으면 팀원 간 동작이 달라질 수 있어 mise 등으로 핀 고정을 권합니다.
검토 메모
공식 문서·릴리스·공개 자료를 바탕으로 정리한 편집 메모입니다.
저는 이 도구의 핵심을 모델이 아니라 편집 방식으로 봅니다. 에이전트를 쓰다 보면 모델이 똑똑한데도 편집이 엉뚱한 줄에 들어가거나 문자열을 못 찾아 같은 시도를 반복하는 일이 생깁니다. 해시 앵커 편집은 모델이 고칠 줄을 다시 타이핑하지 않고 앵커를 가리키게 해서 이 문제를 구조적으로 줄입니다. 여러 리뷰가 공백 싸움이 사라진다는 표현으로 같은 지점을 짚습니다. 편집 실패로 시간을 버린 경험이 있으시다면 여기서 체감이 클 것으로 봅니다.
LSP 14개와 DAP 28개 조작을 내장했다는 점도 그냥 기능 목록으로 넘기기 아깝습니다. 이름 변경이 참조까지 제대로 퍼지는지, 실행 중인 바이너리를 붙잡아 확인할 수 있는지는 에이전트가 실제 코드베이스에서 쓸모 있는지를 가르는 조건입니다. 대신 그만큼 무겁습니다. 최소 도구만 두고 필요한 것을 직접 붙이는 방식을 선호하신다면 원본인 Pi 쪽이 철학에 맞습니다.
실무에서 미리 정해 두시길 권하는 것은 버전 고정입니다. 릴리스 주기가 대단히 짧아서 v17.3.2 를 확인한 당일에 v17.3.3 이 올라올 정도입니다. 팀으로 쓴다면 각자 다른 버전을 물고 동작이 갈리기 쉬우므로 mise use -g github:can1357/oh-my-pi 같은 방식으로 핀을 박는 편이 낫습니다. Alpine 계열에 올리실 계획이라면 프리빌트 바이너리가 libstdc++ 와 libgcc 를 동적 링크한다는 점도 설치 전에 확인하셔야 합니다.
비교
OpenCode 가 여러 프로바이더를 붙이는 폭에 강점이 있다면, oh-my-pi 는 편집 정확도와 IDE 급 도구 연동에 무게를 둡니다. 원본인 Pi 가 읽기·쓰기·편집·셸만 남기고 나머지를 확장으로 미루는 설계라면 이쪽은 LSP·DAP·서브에이전트·플랜 모드를 처음부터 내장한 쪽입니다. 최소 구성을 선호한다면 원본이, 바로 쓸 수 있는 완비 상태를 원한다면 이쪽이 맞습니다.
최근 변경
v18.1.15에서는 Enterprise GitHub 도메인의 Copilot OAuth 경로를 바로잡고, 서브에이전트 모델 배지와 task description 탭 렌더링, WorkPool yield 프롬프트를 개선했습니다.