Everything in the tool belt.
The model can reach for any of 25 tools, streamed and schema-validated, and run in parallel when read-only. Here is the full catalogue, plus how it reasons, the commands worth knowing, and the security model.
Files
Read and edit with stale-file guards that refuse a write when a file changed since it was last read.
Search
Regex search, glob, and language-aware code intelligence without setup.
Shell
Run commands with a destructive-command guard, plus background shells you can poll and kill.
Web
Fetch and search the web behind an SSRF guard with a response-size cap.
Flow
Track todos with dependencies, hold an active goal, wait, and move in and out of plan mode.
Agents
Dispatch sub-agents, ask the user, invoke skills, and disclose tools progressively.
Git worktrees
Branch the session into a throwaway worktree and clean it up safely.
Notebooks
Edit Jupyter notebook cells with the same stale-file guard as files.
Stale-file guards refuse a write when a file changed since the model last read it. Destructive shell commands are flagged for confirmation, and incomplete streamed tool calls are dropped rather than executed with half-finished arguments.
Reasoning effort, dialled in
Choose how hard the model thinks, for the session or a single turn. The newest Claude models use adaptive extended thinking; OpenAI maps the same levels to its reasoning effort.
Set it with opencli config --set-reasoning high, or /thinking inside the session.
Slash commands worth knowing
Spend and context
- /usage
- Live provider quota and rate-limit snapshot.
- /cost
- Per-model token tally and estimated dollars, cache-aware.
- /context
- Context-window usage and where the tokens are going.
Source control
- /diff
- Show the current git diff.
- /commit
- Stage and commit with a Conventional-Commit message.
- /commit-push-pr
- Commit, push the branch, and open a PR with gh.
Session
- /model
- Switch the active model mid-session.
- /resume
- Pick a previous session and continue it.
- /plan
- Enter read-only plan mode before acting.
Workspace
- /worktree
- Create or exit an isolated git worktree.
- /init
- Create a CLAUDE.md for the project.
- /buddy
- Hatch the pixel companion, or reset and hide it.
Composer prefixes
Three characters you type at the start of a line, matching Claude Code and Codex muscle memory.
- @path
- Attach a file or directory listing with a gitignore-aware typeahead.
- !command
- Run a shell command immediately, no model turn. Output feeds the next message.
- #note
- Append a note to the project CLAUDE.md and re-apply memory to the live session.
The security model, stated plainly
run_shell executes directly on your machine. There is no sandbox yet, so review destructive prompts. Here is what opencli does guard.
Destructive commands are flagged
run_shell executes directly on your machine. There is no sandbox yet, so opencli flags obvious destructive commands like rm -rf on home or system paths, curl piped to a shell, mkfs, and force-pushes, and refuses them until you explicitly override.
Secrets stay out of the shell
Environment variables that look like secrets, with names containing TOKEN, SECRET, KEY, OPENAI, AWS, or GITHUB, are stripped from the child process so the model cannot read them back.
Writes are guarded
Stale-file guards refuse a write when a file changed since the model last read it. auto_approve_write is false by default, and sub-agents inherit the parent approval policy.
Credentials are owner-only
OAuth uses PKCE and refreshes automatically. Tokens are written with owner-only permissions on Unix. Project permission allow-lists reject symlinked paths so an allow decision cannot be redirected.
Questions
Is it really a drop-in for Claude Code?
It is built to match the muscle memory: a terminal UI, slash commands, plan mode, composer prefixes, and inherited AGENTS.md and CLAUDE.md memory. The difference is that it is a single Rust binary and it is provider-agnostic.
Do I need an API key?
No. You can sign in with a ChatGPT or Claude subscription over OAuth. API keys also work and unlock the full model catalogue. Environment keys are picked up automatically.
Which providers and models are supported?
The OpenAI GPT-5 family, the Anthropic Claude 4 family, and any OpenAI-compatible endpoint you configure, including local ones. See the Models page for the current catalogue.
Is my code sent anywhere, and is it sandboxed?
Your prompts and the files the agent reads go to the provider you choose, the same as any coding assistant. run_shell runs directly on your machine with no sandbox yet, so review destructive commands. opencli flags the obvious ones.
What platforms run it?
Prebuilt binaries cover Linux x86-64, macOS on Intel and Apple Silicon, and Windows x86-64. You can also build from source with stable Rust.
What is the pixel companion?
A small pixel-art creature that hatches from an egg and sits in the corner of the terminal UI. Its species is rarity-weighted and seeded from your account, so it is stable for you and only re-rolls when you switch accounts.
Put it in your terminal
One binary, then sign in. The full agent in under a minute.