앱, MCP, 메모리, 그리고 모든 모델을 지원하는 로컬 우선 에이전틱 워크스페이스 앱.
한국어는 runchr 제공 번역입니다. 원문 README는 English tool page.
oh-my-pi
IDE가 연결된 터미널 코딩 에이전트: 60개 이상의 모델 제공자, 31개의 내장 도구, LSP 및 디버거 작업, Rust 코어. curl로 설치
- Run
- omp
- Interface
- terminal
- Models
- anthropic
프로젝트 README (번역)
GitHub ↗Written by the project's own authors, not by runchr. Snapshot taken 2026-10-31.
IDE가 연결된 코딩 에이전트.
omp.sh
Stencil Labs 제작 · @mariozechner의 Pi 포크
출시되는 에이전트 표면 중 가장 강력합니다. 실제 사용으로 지속적으로 튜닝되며 — 박스에서 꺼내자마자 완전하고, 끝까지 열려 있습니다.
60개 이상의 프로바이더 · 31개의 내장 도구 · 14개의 lsp 작업 · 28개의 dap 작업 · 약 80k 줄의 Rust 코어.
참고
현재 PR은 실험적으로 누구에게나 열려 있습니다. 이전에는 PR을 받기 전에
vouch를 요구했으나, 오픈 기여가 어떻게 진행되는지 평가하는 동안 해당 요구 사항을
한시적으로 해제했습니다. 결과에 따라 vouch 시스템이
다시 돌아올 수 있습니다.
설치
macOS · Linux
curl -fsSL https://omp.sh/install | sh
사용 가능한 bun이 없거나(또는 --binary 사용 시) 설치 스크립트는 build.stencil.so에서 사전 빌드된 바이너리를 가져와 설치 전에 SHA-256을 검증합니다. curl -fsSL https://omp.sh/install | sh -s -- --binary --ref v<version> 로 릴리스를 고정하세요 (PowerShell: -Binary -Ref v<version> ).
Alpine / musl: 사전 빌드된 musl 바이너리는 libstdc++ / libgcc를 동적으로 링크하는데, 기본 Alpine에는 이들이 포함되어 있지 않습니다. 먼저 설치하세요: apk add libstdc++ libgcc .
Homebrew
brew install can1357/tap/omp
Bun (권장)
bun install -g @oh-my-pi/pi-coding-agent
Nix
# 설치 없이 실행
nix run github:can1357/oh-my-pi
# 또는 활성 프로필에 설치 (Nix < 2.30: `nix profile install`)
nix profile add github:can1357/oh-my-pi
Flake 사용자는 packages.<system>.omp , overlays.default , nixosModules.default , 또는 homeManagerModules.default 를 사용할 수 있습니다. Home Manager 구성으로 OMP를 설치하고 설정을 선언적으로 관리할 수 있습니다:
{
inputs . omp . url = "github:can1357/oh-my-pi" ;
# Home Manager 모듈에서:
imports = [ inputs . omp . homeManagerModules . default ] ;
programs . omp = {
enable = true ;
settings . startup . quiet = true ;
} ;
}
Windows (PowerShell)
irm https: // omp.sh / install.ps1 | iex
버전 고정 (mise)
mise use -g github:can1357/oh-my-pi
macOS · Linux · Windows · bun ≥ 1.4.4
셸 완성
omp는 실제 명령/플래그 메타데이터로부터 bash , zsh , fish용 완성 스크립트를 자체 생성하므로 실제 CLI와 절대 어긋나지 않습니다. 서브커맨드, 플래그, 열거형 값은 정적으로 완성되며, 모델 이름( --model , --smol , --slow , --plan )은 번들된 모델 카탈로그에 대해, --resume 은 디스크의 세션에 대해 해석됩니다.
# zsh — ~/.zshrc에 추가 (또는 출력을 $fpath의 파일에 기록)
eval " $( omp completions zsh ) "
# bash — ~/.bashrc에 추가
eval " $( omp completions bash ) "
# fish
omp completions fish > ~ /.config/fish/completions/omp.fish
모든 도구, 벤치마크 극대화.
첫 시도에 성공하는 편집. 파일 내용을 쏟아내는 대신 요약하는 읽기. 즉시 반환되는 검색. 어떤 모델이든 선택하세요 — omp가 제대로 해냅니다.
모델
지표
내용
Grok Code Fast 1
6.7% → 68.3%
편집 형식이 모델을 갉아먹는 순간이 사라지자 열 배 상승.
Gemini 3 Flash
+5 pp
str_replace 대비 — Google 자체의 최선 시도보다 우수.
Grok 4 Fast
−61% 토큰
잘못된 diff에 대한 재시도 루프가 사라지자 출력이 급감.
MiniMax
2.1×
통과율이 두 배 이상. 같은 가중치, 같은 프롬프트.
read : 요약된 스니펫 · 이상적인 기본값 · 선택자 적중률
grep : 서부에서 가장 빠름
lsp : IDE가 아는 모든 것을 에이전트도 앎
prompts : 각 모델에 맞춰 끊임없이 조정됨
전체 글 읽기 ↗
사랑하는 Pi , 배터리 포함 .
Mario Zechner 의 훌륭한 Pi 위에 구축되어, omp는 빠져 있던 모든 것을 더합니다.
01 · 도구 호출을 곁들인 코드 실행
대부분의 하네스는 에이전트에게 Python 샌드박스를 주고 끝냅니다. 우리는 영속적인 Python과 Bun 워커를 실행하며, 어느 커널이든 루프백 브리지를 통해 에이전트 자체 도구 — read, search, task — 를 다시 호출할 수 있습니다. 에이전트는 Python 내부에서 tool.read로 CSV를 불러오고, JavaScript에서 차트를 그리고, 셀을 벗어나지 않습니다.
02 · 모든 쓰기에 연결된 LSP
이름 변경을 요청하면 이름 변경이 됩니다. 호출은 workspace/willRenameFiles를 거치므로, 재내보내기, 배럴 파일, 별칭 임포트가 파일이 이동하기 전에 갱신됩니다. IDE가 아는 모든 것을 에이전트도 압니다.
LSP 구성 문서 읽기
03 · 실제 디버거를 구동
C 바이너리가 세그폴트: 에이전트가 lldb에 붙어 잘못된 포인터까지 스텝하고 프레임을 읽습니다. Go 서비스가 멈춤: dlv에 붙어 고루틴을 순회합니다. Python 프로세스가 막힘: debugpy, 일시정지, 검사, 평가. 대부분의 에이전트는 여전히 print 문을 뿌리고 있습니다.
캡처 보기 ↗
04 · 시간여행하는 스트림 규칙
규칙은 모델이 탈선할 때까지 잠들어 있습니다. 정규식 매칭이 토큰 중간에 스트림을 중단시키고, 규칙을 시스템 리마인더로 주입한 뒤 같은 지점에서 재시도합니다. 매 턴마다 컨텍스트 비용을 치르지 않고 방향 수정을 얻습니다. 주입은 압축을 견디므로 수정이 유지됩니다.
캡처 보기 ↗
05 · 일급 서브에이전트
작업을 워커들에 나누고 타입이 지정된 결과를 돌려받습니다. task는 격리된 워크트리로 팬아웃되고, 각 워커는 자체 도구 표면을 실행하며, 최종 산출물은 부모가 직접 읽는 스키마 검증된 객체입니다. 파싱할 산문도, 형제 간 병합 충돌도, 고아 편집도 없습니다.
캡처 보기 ↗
실행 중 팬아웃을 지켜보세요: Alt+A가 Agent Hub 를 열며, 여기서 로스터가 모든 서브에이전트의 현재 활동과 사용량을 보여줍니다. 하나를 열어 실시간 트랜스크립트를 읽고, 조향 메시지를 입력하고, 대기 중인 워커를 되살리거나, 부모 세션을 중단하지 않고 막힌 워커를 종료할 수 있습니다.
06 · 매 턴을 지켜보는 두 번째 모델.
리뷰어 모델을 'advisor' 역할에 페어링하면 메인 에이전트가 취하는 매 턴을 읽고 인라인으로 노트를 주입합니다 — 조용한 부연, 우려, 또는 강한 차단. 자체 컨텍스트와 자체 모델로 실행되므로 실행자가 급히 지나친 것을 잡아냅니다. 메인 에이전트는 노트를 보고 방향을 수정하거나, 왜 그러지 않을지 알려줍니다.
캡처 보기 ↗
07 · 링크를 건네면 바로 참여.
/collab은 라이브 세션을 릴레이에 올리고 링크 — 그리고 QR — 를 돌려줍니다. 팀원은 다른 터미널에서 omp join으로 참여하거나, 브라우저에서 바로 엽니다. 같은 에이전트에서 페어링하려면 읽기-쓰기로 공유하거나, /collab view로 누구나 볼 수 있지만 아무도 조향할 수 없는 읽기 전용 링크를 만드세요. 프레임은 클라이언트 측에서 봉인되며, 릴레이는 키를 절대 보지 못합니다.
캡처 보기 ↗
08 · arxiv의 pdf를 읽는다고, 왜 안 되겠어?
web_search는 23개의 순위 프로바이더를 연결하고 찾은 URL을 곧바로 read에 넘깁니다. Arxiv PDF, GitHub 페이지, Stack Overflow 스레드가 앵커를 그대로 유지한 구조화된 마크다운으로 돌아옵니다 — 로컬 파일에 쓰는 것과 같은 도구 표면입니다. 인용하고, 따라가고, 인용문을 뽑고, 출처를 잃지 마세요.
캡처 보기 ↗
09 · 거침없이 네이티브. Windows에서도.
다른 에이전트는 rg, grep, find, bash를 셸로 호출합니다. 많은 머신에는 그 바이너리가 없고, 있는 머신에서도 매 호출이 fork-exec 왕복 비용을 치릅니다. omp는 실제 구현을 프로세스에 링크합니다. ripgrep, glob, find: 인프로세스. brush가 bash입니다 — 호출 간에 살아남는 세션과, builtins 크레이트로 포팅되어 인프로세스로 실행되는 58개의 명령줄 유틸리티(ls, sed, sort, xargs, 심지어 jq까지), fork/exec 제로. 같은 omp 바이너리가 macOS, Linux, Windows에서 실행됩니다 — WSL 브리지 없이.
10 · 우선순위와 판정이 있는 코드 리뷰
변경이 출시되어야 하는지에 대한 명확한 판정을 받고, 모든 이슈는 P0부터 P3까지 순위가 매겨지고 신뢰도가 점수화됩니다. /review는 브랜치, 단일 커밋, 또는 커밋되지 않은 작업을 병렬로 훑는 전용 리뷰어 서브에이전트를 생성합니다. 릴리스를 막는 것부터 처리하고, 중요한 것은 산문의 벽 속에 숨지 않습니다.
리뷰를 직접 조향하고 싶으신가요? /annotate code-review는 리뷰어가 실행되기 전에 diff를 열어 줄에 노트를 고정할 수 있게 합니다. /annotate는 또한 최신 답변, 세션 메시지, 파일, 또는 인용된 텍스트를 받아 노트를 프롬프트에 붙여넣습니다. /annotate 참고.
11 · Hashline: 콘텐츠 해시로 편집
완벽한 편집, 더 적은 토큰. 모델은 변경하려는 줄을 다시 입력하는 대신 앵커를 가리키므로, 공백 싸움과 문자열-없음 루프가 그냥 사라집니다. 오래된 파일을 편집하면 앵커가 어긋나고 — 우리는 무언가를 손상시키기 전에 패치를 거부합니다. Grok 4 Fast는 같은 작업에서 출력 토큰을 61% 덜 씁니다.
12 · GitHub는 그저 또 하나의 파일시스템
다른 하네스는 gh_issue_view, gh_pr_view, gh_search를 덧붙입니다 — 각각 에이전트가 배워야 하고 당신이 디버깅해야 하는 자체 파라미터를 가집니다. 우리는 그걸 건너뛰었습니다. read는 이미 경로를 다룹니다; PR도 경로입니다. 모델에 가르칠 인터페이스 하나, 올바르게 유지할 표면 하나.
13 · 에이전트가 관리하는 메모리
에이전트는 세션 간에 코드베이스를 기억합니다. 실행 중에 retain으로 사실을 기록하고, learn으로 재사용 가능한 교훈을 포착하고, recall로 다시 끌어오며, 각 세션을 다음 세션의 첫 턴에 로드되는 멘탈 모델로 압축합니다. memory.backend로 엔진을 선택하세요 — local, Hindsight, 또는 Mnemopi. 기본적으로 프로젝트 범위이므로, 이 레포에 대해 배운 것은 이 레포에 머뭅니다.
14 · ACP: 에디터가 구동하는 에이전트
Zed 안에서 omp를 실행하면 터미널에서 구동하는 것과 같은 에이전트를 얻습니다 — 당신이 실제로 보고 있는 버퍼를 읽고, 에디터의 저장 경로로 쓰고, 에디터의 터미널에서 셸을 생성합니다. 파괴적 도구는 한 번 답하고 잊으면 되는 권한 프롬프트에서 일시정지합니다. 브리지도, 플러그인도, 동기화할 두 번째 두뇌도 없습니다.
15 · 다른 도구가 이미 쓴 것을 상속
다른 모든 에이전트는 임포터를 제공하고 당신이 변환하기를 기대합니다. omp는 디스크에 이미 있는 여덟 가지 형식을 원래 모양 그대로 읽습니다 — Cursor MDC, Cline .clinerules, Codex AGENTS.md, Copilot applyTo, 그리고 나머지. 마이그레이션 스크립트도, YAML-to-TOML 포팅도, "지원되는 서브셋" 각주도 없습니다. 팀이 지난 분기에 쓴 구성이 오늘 밤에도 작동합니다.
16 · omp commit: 원자적 분할, 검증된 메시지
omp는 git_overview, git_file_diff, git_hunk를 통해 작업 트리를 읽고, 관련 없는 변경을 의존성 순서로 정렬된 원자적 커밋으로 분할합니다. 순환은 무언가가 쓰이기 전에 거부됩니다. 소스 파일은 테스트, 문서, 구성보다 높은 점수를 받으므로, 헤드라인 커밋이 중요한 커밋입니다. 잠금 파일은 분석에서 완전히 제외됩니다.
17 · PR 읽기. 스킬 순회. 서브에이전트에서 JSON 추출.
16개의 내부 스킴 — pr:// , issue:// , agent:// , skill:// , ssh:// , 그리고 나머지 — 이 에이전트가 이미 호출하는 모든 FS 형태 도구 안에서 투명하게 해석됩니다. read pr://1428은 read src/foo.ts와 같은 모양을 반환합니다. grep은 diff를 디렉터리처럼 순회합니다. agent://<id>/findings.0.path는 경로로 서브에이전트 출력에서 필드를 끌어냅니다.
18 · 충돌 해결, 쉽게.
각 병합 충돌은 하나의 URL이 됩니다. 에이전트가 conflict://N에 @theirs , @ours , 또는 @base를 쓰면 파일이 깔끔하게 해결됩니다. 일괄 형식: conflict://* .
캡처 보기 ↗
19 · 미리보기, 그다음 수락.
ast_edit는 교체 횟수가 담긴 (제안됨) 카드를 반환합니다. 변경은 스테이징됩니다. 에이전트가 xd://resolve에 한 줄 이유를 쓰면, TUI가 이를 Accept 카드로 바꾸고 디스크 이동이 일어납니다 — 원자적, 전부 아니면 전무.
캡처 보기 ↗
20 · 실제 브라우저를 구동 . 아니면 당신의 Slack?
Eval의 browser.open(...)은 직접 탐색, 검사, 상호작용, 요소 헬퍼가 있는 탭 핸들을 반환합니다; tab.run(...)은 커스텀 JavaScript를 처리합니다. 격리된 탭 런타임에서 Chromium 또는 Electron을 구동합니다. 스텔스는 기본으로 켜져 있으며, 브라우저 릴레이는 포커스를 빼앗지 않고 이미 열려 있는 Chrome 탭을 채택할 수 있습니다.
21 · 데스크톱 자체에 손을 대다
Eval의 컴퓨터 헬퍼 — computer.window(...) , win.screenshot() , win.ax() , el.press() , 그리고 다단계 스크립트용 computer.run(fnOrCode, options) — 가 실제 호스트를 제어합니다: 창과 디스플레이 열거, 스크린샷 캡처, 네이티브 입력 전송, OS 접근성 트리 순회, 클립보드 사용. 브라우저 DOM은 노출하지 않습니다.
작업에 필요한 것은 무엇이든, 이미 박스 안에 있습니다 .
핵심 도구는 read와 bash와 같은 네임스페이스에 있습니다. --tools read,edit,bash,… 로 활성 세트를 고정하세요; 드물게 쓰이는 발견 가능 도구는 xd:// 디바이스 뒤에 남습니다. read xd://가 그것들을 나열하고, write xd://<tool>이 tools.xdev가 활성화된 경우 하나를 실행합니다.
파일 & 검색
read — 파일, 디렉터리, 아카이브, SQLite, PDF, 그 외…
Other tools that do the same work
개인 AI 에이전트를 구축하기 위한 경량 셀프 호스팅 Python 프레임워크입니다.
웹을 탐색하고, 코드를 작성하며, 작업을 계획하는 완전 로컬 자율 에이전트입니다.
Agent stacks with this tool(2)View graph
Graphify와 Anthropic Skills로 구축한 코드베이스 지식 그래프
From README links에이전트가 중형 Python/TypeScript 모노레포에 대해 추측하지 않도록, 그들은 저장소에 Graphify를 실행해 모듈, 임포트, 호출 관계의 구조적 그래프를 추출했다. Graphify는 코드베이스를 파싱하고 파일 간 참조를 해석해, grep 대신 질의할 수 있는 그래프를 생성했다. 그다음 그래프 질의를 Anth
View stackContext Mode: 코딩 에이전트를 위한 샌드박스형 컨텍스트 윈도우 압축
From README links그들은 codex와 opencode로 긴 에이전틱 코딩 세션을 진행하다가 같은 벽에 계속 부딪혔다. 파일 읽기, 테스트 실행, 로그 덤프가 매번 컨텍스트 윈도우에 그대로 쌓여서, 에이전트가 결국 작업을 잊어버리거나 잘린 출력 주변에서 환각을 일으키기 시작했다. 그들은 npm에서 context-mode를 설치하고 에이전트
View stack
No comments yet.
to comment.