In the terminal
Everything the app does with the panel, you can do from a terminal: a chat where each question gets the panel's verdict, one-line reviews of your code changes, and commands for scripts.
The ixel chat
ixel
Type a question and press Enter. The panel answers, and you get its verdict. A question typed on its own runs a quick review (answers, then a verdict), unless you picked another mode in ixel setup or with plain_questions in your settings file.
Follow-ups work like a chat: each question is sent with your last three questions and the panel's answers, so "and in Python?" or "why?" make sense. /new starts a fresh topic. The moon at the prompt grows as the conversation does (☾ ◗ ◕ ●), and turns gold when the panel sees three earlier exchanges.
The prompt is drawn inline, so your terminal's scrollback, selection and copy and paste work as always. During a review, each round scrolls up into your terminal's history when it's done, and only the round that's running stays live.
Keys
| Key | What it does |
|---|---|
| Enter | Send |
| Ctrl J, or \ then Enter | A new line instead of sending (Alt Enter too, where your terminal passes it on) |
| Tab | Complete a /command, an --option, a model's name, or a file path |
| ↑ ↓, Ctrl R | Earlier questions from this session, and search through them |
| Ctrl C | Clear the line. While a review runs, cancel it: the models are stopped and you're back at the prompt. Press it twice on an empty line to leave. |
| Ctrl D, Ctrl L | Leave, clear the screen |
Commands in the chat
| Command | What it does |
|---|---|
/review <question> | A full review: answers, peer review, verdict. Add --quick or --deep, and --diff, --staged, --base main or --file PATH to review code. |
/saver <question> | Cheaper models draft and review; your big model only checks the result. |
/auto <question> | Triage picks Quick, Review or Deep for this question. |
/compare <prompt> | Every model answers side by side, with no review. |
/answers | Every answer from the last review, in full. |
/new | A fresh topic: the next question won't see earlier ones. |
/saves | What Saver saved, and what reviews have cost. |
/agents, /config, /help, /quit | Your models, your settings, help, and leave. |
From your shell
One line gets you one answer, which is handy in scripts:
ixel review "Is this regex safe against catastrophic backtracking? ^(a+)+$"
ixel review --saver "Summarize the tradeoffs of SQLite vs Postgres for a desktop app"
ixel review --auto "Why does this deadlock?"
ixel review --continue "And for Postgres 17?"
echo "Why is this slow?" | ixel review -
ixel review --json "…" > result.json
--continue (or -c) asks a follow-up to your last ixel review. - reads the question from what's piped in. With --json, only the JSON goes to the output.
Each review ends with what it used, counted from what each model reports:
Cost: $0.042 on API keys · 3 calls on your subscriptions · 1 free on your own hardware · 12.3k tokens in, 2,100 out
API keys are priced per token. Subscriptions (Claude Code, Codex, Gemini CLI, Copilot, Grok Build) count against your plan, so they're counted as calls. Local models are free. ixel saves keeps the running total for this month and overall.
Review your code
Hand the panel a diff or the files you choose, and ask about them or let it review them:
ixel review --diff # your changes since the last commit
ixel review --staged "Is this safe to push?" # only what you've staged
ixel review --base main # everything on this branch since it left main
ixel review --diff --new-files # your changes, and new files git doesn't track yet
ixel review -f app.py -f config.toml "Why does the retry loop never stop?"
With no question, the panel looks for bugs, security problems and anything that would break. It's read-only: Ixel reads the diff or files once, before the panel starts, and sends them as text. Models get no shell and none of your other files. Before anything is sent:
- Secrets are refused. A diff or file that holds what looks like a private key, an API key or a token, or a file such as
.envorid_rsa, isn't sent, and you're told where it is. It's a check for the common kinds of keys; passwords aren't caught, so look over what you send. - Hidden characters are shown. Invisible characters that can make code read differently from what it does are shown to the models as visible markers like
[U+202E]. - Your repository runs nothing. Git settings a cloned repository could use to run a program are switched off for the diff, and git doesn't go on the network.
A review takes up to 60,000 characters, and up to 20 files named with -f, since every model reads it in every round.
One model, or pictures
Not everything needs a panel:
ixel ask --list # the models you can ask
ixel ask --agent gemini "Make me a list of open-source projects like this one" -f README.md
ixel ask --agent codex --diff "Review this" # one model reads your changes
ixel ask --agent codex,claude,gemini "Explain this error" -f log.txt # the next answers when one is out of usage
ixel image "a lighthouse at dusk, watercolor" # saved in Pictures/Ixel
ixel image -f README.md -n 2 "a poster for my project" --provider grok
Name several models, in the order you want them, with the names ixel ask --list shows. When one is out of usage (its plan's limit, its quota or its credits are used up for now, or it keeps turning you away for too many requests), the next one answers. Only the models you name are asked, and any other failure, like a wrong key, stops there rather than being hidden by the next model's answer.
ixel image uses xAI (Grok Imagine) or OpenAI, with the key you saved in ixel setup. If you give it files, one of your chat models reads them first and describes the picture, and only that description goes to the picture service.
Inside Claude Desktop, Claude Code, Codex and Cursor
Ixel can run as a plugin (an MCP server) in the AI apps you use, so you can ask for a second opinion without leaving them:
ixel mcp --setup
It prints the settings to paste into each app, with the right paths for your computer. The plugin adds two tools: ixel_review asks the panel, and ixel_panel says who's on it. Then ask your app: "Get a second opinion from the Ixel panel on this."
If you set up the plugin on Windows before, run ixel mcp --setup again and use the new command it prints. It starts the plugin through Python, since Smart App Control can block ixel.exe.
ChatGPT's app only connects to plugins over the internet, and Ixel never listens on the network. To use a ChatGPT subscription, set up Codex, which signs in with the same account.
Every command
| Command | What it does |
|---|---|
ixel | The chat |
ixel setup | Find your models and save your keys (Set up your models) |
ixel review "question" | Ask the panel; --diff reviews your changes |
ixel ask --agent NAME "question" | One model answers on its own; name several (codex,claude) and the next answers when one is out of usage; --list shows who you can ask |
ixel image "description" | Make pictures with xAI or OpenAI |
ixel app | The Ixel app, in a window of its own |
ixel gui | The Ixel app, as a tab in your browser |
ixel machines | List your SSH machines; connect NAME, or import ssh |
ixel mcp --setup | The plugin for Claude Desktop, Claude Code, Codex and Cursor |
ixel model [agent] [model] | See each model, or change one (latest is always the newest) |
ixel saves | What Saver saved, and what reviews have cost |
ixel triage | Check Triage: its settings, its key, and a test call |
ixel doctor | Check each part of Ixel; --check tests your models too |
ixel status, ixel agents, ixel config | Your models and settings at a glance |
ixel update | Get the latest Ixel; --check only says whether one is out |
ixel docs | Open these docs in your browser |
ixel version, ixel help | The version, and this list |
A command can be shortened to its first letters when nothing else starts the same way: ixel rev is ixel review.