소개
⌥ AI Coding agent for the terminal — hash-anchored edits, optimized tool harness, LSP, Python, browser, subagents, and more
상세정보
소개
oh-my-pi는 터미널에서 작동하는 AI 코딩 에이전트로, 해시 기반 편집, 최적화된 툴 허브, LSP, Python, 브라우저, 서브에이전트 등을 제공합니다.
주요 기능
- 해시 기반 편집(hash-anchored edits)을 통한 안정적인 코드 변경
- 최적화된 툴 허브: read, bash, edit, ast_grep, ast_edit, ask, debug, eval, find, search, lsp, inspect_image, browser, task, job, recipe, irc, todo_write, web_search, write, memory/hindsight 도구 등
- LSP 통합을 통해 언어 서버와 연동된 코드 분석 및 자동완성 지원
- 브라우저 도구: Puppeteer 기반 헤리스 Chromium 탭 제어, CDP 연결 앱 또는 자체 Chrome 연동
- 컴퓨터 도구: 호스트 데스크톱에서의 지속적인 JS 실행, 윈도우, 스크린샷, 네이티브 입력, AX tree, 클립보드 접근
- 웹 검색 도구: 구성된 제공업체에 걸쳐 한 번의 질의로 답변과 출처 반환
- GitHub 도구: 리포지터리, PR, 이슈, 코드 검색, Actions 워치 등 GitHub CLI 작업 수행
- 이미지 생성 도구: Gemini, GPT, 또는 xAI Grok 이미지 모델을 사용한 래스터 이미지 생성·편집
- 쉘 완성 지원 및 PowerShell, mise, nix, Home Manager 등을 통한 설치 옵션 제공
지원 환경
macOS, Linux, Windows 플랫폼에서 bun 버전 1.3.14 이상을 기준으로 동작합니다. Windows에서는 PowerShell을 통해 실행할 수 있습니다.
기본 사용법
winget 패키지 관리자를 통해 winget install can1357.oh-my-pi 로 설치할 수 있으며, nix를 이용한 nix run github:can1357/oh-my-pi 또는 mise를 이용한 mise use -g github:can1357/oh-my-pi 명령으로 바로 실행할 수 있습니다. Home Manager 모듈을 이용한 선언적 설치도 지원됩니다.
주의사항 및 제한점
- 일부 사용자는 기능이 많다고 느껴 bloated(무겁게) 느낄 수 있으며, 필요에 따라 최소 구성을 선호할 수 있습니다.
- 이미지 생성 및 일부 고급 기능은 외부 AI 모델(Gemini, GPT, xAI Grok) 접근이 필요하며, 해당 모델의 API 키가 별도로 요구될 수 있습니다.
- 최소 bun 버전 1.3.14가 필요하므로, 이전 버전에서는 정상 작동하지 않을 수 있습니다.
FAQ
oh-my-pi는 오픈소스인가요?
예, oh-my-pi는 오픈소스 AI 에이전트 툴킷으로 제공됩니다.
API 키가 필요한 기능은 무엇인가요?
이미지 생성 기능은 Gemini, GPT, 또는 xAI Grok 이미지 모델을 사용하므로, 해당 서비스의 API 키가 필요할 수 있습니다.
Windows에서 어떻게 실행하나요?
PowerShell에서 winget으로 설치 후 omp 명령으로 실행할 수 있으며, nix 또는 mise를 통해서도 바로 실행 가능합니다.
화면으로 보는 주요 기능
조화파 간섭 시각화

다크 테마의 그래프가 표시된 화면으로, 'Harmonic Wave Interference'라는 제목 아래 여러 색상의 파동이 겹쳐진 모습을 보여준다. 각 파동은 희미한 빛나는 효과를 가지고 있으며, x축은 'Phase (radians)'로 표시되어 있고, y축은 'Amplitude'로 표시되어 있다. 그래프 하단에는 'Gradient accent bar'라는 텍스트와 함께 스펙트럼 인디케이터가 있다. 화면 상단에는 Python 코드와 함께 'UserWarning' 경고 메시지가 표시되어 있다.
Gemini 3 Flash 인터페이스

왼쪽 상단에 'Gemini 3 Flash' 로고와 함께 'p-gemini'라는 텍스트가 있는 인터페이스로, 오른쪽에는 'LSP Servers'와 'Recent sessions' 목록이 표시되어 있다. 'LSP Servers'에는 'typescript-language-server.ts.tsx.js'와 'biome.ts.tsx.js'가, 'Recent sessions'에는 세 개의 세션 ID가 나열되어 있다. 하단에는 'write to /tmp/x.ts: const x: number = 'hi''라는 코드 입력창과 'Working… (esc to interrupt)'라는 상태 메시지가 있다. 하단 바에는 'gemini-3-flash', 'high', 'pi', 'main', '0.0%/1.0M (auto)' 등의 정보가 표시되어 있다.
LLDB 디버깅 세션 정보

디버깅 세션 정보가 표시된 화면으로, 'Session debug-1'과 'Adapter: lldb-dap', 'Status: stopped', 'Program: /tmp/omp-native/demo', 'Stop reason: step', 'Frame: xorshift32', 'Instruction pointer: 0x10000055C', 'Location: /tmp/omp-native/demo.c:6:10' 등의 정보가 포함되어 있다. 'Output' 섹션에는 '7 more lines ((Ctrl+0 for more))'라는 메시지가 있다. 'Debug scopes' 섹션에는 'Locals: ref=1, expensive=no, hint=locals', 'Globals: ref=2, expensive=no' 등의 정보가 있다. 'Debug variables' 섹션에는 'x = 57351 (int)'라는 변수 값이 표시되어 있다. 하단 바에는 'x: 7 → 57351 (7 ^ (7<<13) = 57344 = 57351). Stopped at demo.c:6 after stepping. Session debug-1 still active.'라는 메시지가 있다.
Rust 코드 및 디버깅 정보

Rust 코드가 표시된 화면으로, 'use std::sync::Arc;'와 'pub fn intern(s: String) -> Arc' 등의 코드가 있다. 'pub fn handle(req_id: String)' 함수 내에서 'let id: Arc = intern(req_id);'와 'println!("handling {}", id);'가 있다. 하단에는 'Arc'에 대한 설명과 'Switch to Arc (recommended), or Override to the rule and proceed with Box::leak anyway?'라는 선택지가 있다. 하단 바에는 'Opus 4.7', 'high', 'master', '1.9%/1M' 등의 정보가 있다.
시스템 요구사항
bun 1.3.14 이상, Windows/macOS/Linux


