Install
omp ships as a Bun-runnable package and as prebuilt binaries. Pick one of the methods below; all of them produce an omp executable on your PATH.
| Method | Command | Best for |
| ---------------- | ----------------------------------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Bun | bun install -g @oh-my-pi/pi-coding-agent | You already have Bun >= 1.3.14. |
| Installer script | curl -fsSL https://raw.githubusercontent.com/can1357/oh-my-pi/main/scripts/install.sh \\ | sh | Anything else. Picks Bun if available, prebuilt binary otherwise. Windows: pipe the corresponding install.ps1 to iex. |
| mise | mise use -g github:can1357/oh-my-pi | Per-project version pinning. |
The installer accepts --source (force Bun), --binary (force prebuilt), and --ref \<tag|branch|commit\> for pinning. Set PI_INSTALL_DIR to override the install directory.
Verify
omp --version # the binary version on PATH
omp config path # the active agent dir (contains config.yml)
omp -p 'hello' # round-trip a one-shot promptFor upgrade commands, channel pinning, and offline binaries, see the CLI reference.
Terminal setup
omp speaks the Kitty keyboard protocol so it can tell Shift+Enter apart from Enter and pick up Alt chords reliably. Kitty and iTerm2 work without configuration. Ghostty needs two keybinds in ~/.config/ghostty/config:
keybind = alt+backspace=text:\x1b\x7f
keybind = shift+enter=text:\nwezterm needs config.enable_kitty_keyboard = true in ~/.wezterm.lua. Windows Terminal doesn’t implement the protocol; use Alt+Enter for newline instead of Shift+Enter.
Authenticate
Wire up a provider one of two ways: an environment variable before launch, or /login inside the TUI for OAuth providers. See Providers for the full list.
Option 1 — environment variable
The fastest start with Anthropic:
export ANTHROPIC_API_KEY=sk-ant-...
ompOther common keys: OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY, GROQ_API_KEY, MISTRAL_API_KEY, OPENROUTER_API_KEY, ZAI_API_KEY. The full map lives on Environment variables.
Option 2 — /login
For Claude Pro/Max, ChatGPT Plus/Pro, GitHub Copilot, Cursor, Z.AI, and other subscription providers, launch omp and authenticate from inside:
omp
/loginYou’ll see an alphabetical picker. /login appends credentials, never overwrites; /logout clears the selected provider. For the same provider, a saved API key wins over OAuth. Everything is stored in ~/.omp/agent/agent.db — back that file up when you migrate machines.
First prompt
Run omp in any project directory:
ompThe first launch creates ~/.omp/agent/, detects your terminal’s light/dark mode and Kitty support, and renders a welcome panel. The current working directory becomes the project root; AGENTS.md and rule files are discovered from there. Type a prompt to begin:
summarise src/main.tsThe agent picks a tool, the TUI renders the call as a compact card, and the response streams in. Ctrl+O expands the card to show full tool output.
For one-shot mode (no TUI, exits after one turn):
omp -p "list .ts files in src/"Next
-
Using omp — editor, message queue, modes.
-
Keybindings — the shortcuts you’ll use daily.
-
Slash commands — in-chat reference.
-
Sessions — resume, fork, branch.
-
Plan mode — before large changes.\n