# How clai compares

> clai next to Claude Code, Codex CLI, Gemini CLI, OpenCode, Aider, hax, aichat, llm, mods and ShellGPT: measured answer time and install size, model vendors, Agent Skills, MCP and other agents' sessions.

Canonical URL: https://www.clai.chat/compare/

Full site index: https://www.clai.chat/llms.txt

Most terminal AI tools are built around a coding session: you open the tool
in a repository and an agent edits files for you. `clai` is built around
the terminal itself. One static Go binary covers one-shot queries, pipes,
chats, media, MCP tools and Agent Skills, so it fits inside a script, a
cron job, an editor or another harness.

These tools change quickly. This page compares what each one is built
around, checked in October 2026, not every feature of its latest release.

## At a glance

| Tool                | Interactive      | One-shot             | Answer time  | Install size     | Model vendors      | Agent Skills | MCP client   | Other agents' sessions | License           |
| ------------------- | ---------------- | -------------------- | ------------ | ---------------- | ------------------ | ------------ | ------------ | ---------------------- | ----------------- |
| **clai** v1.12.0    | Partly (`-dre`)  | Yes (`clai q`)       | 11 ms        | 21 MB            | Eight              | Yes          | Yes          | Yes                    | MIT               |
| Claude Code 2.1.310 | Yes              | Yes (`-p`)           | 0.92 s       | 292 MB           | Anthropic          | Yes          | Yes          | Not built in           | Proprietary       |
| Codex CLI 0.164.0   | Yes              | Yes (`codex exec`)   | 0.46 s       | 444 MB           | OpenAI first       | Yes          | Yes          | Not built in           | Apache-2.0        |
| Gemini CLI 0.65.0   | Yes              | Yes (`-p`)           | 1.42 s       | 103 MB + Node.js | Google             | Yes          | Yes          | Not built in           | Apache-2.0        |
| OpenCode 1.19.4     | Yes              | Yes (`opencode run`) | 1.69 s       | 429 MB           | Many               | Yes          | Yes          | Not built in           | MIT               |
| Aider 0.86.2        | Yes              | Yes (`--message`)    | 3.06 s       | 570 MB + Python  | Many               | Not built in | Partly       | Not built in           | Apache-2.0        |
| hax 0.6.1           | Yes              | Yes (`-p`)           | Not measured | 0.9 MB archive   | Many               | Yes          | Not built in | Not built in           | MIT               |
| aichat 0.30.0       | Yes              | Yes                  | 4 ms         | 12 MB            | Many               | Not built in | Not built in | Not built in           | MIT or Apache-2.0 |
| llm 0.36            | Yes (`llm chat`) | Yes                  | 0.62 s       | 40 MB + Python   | Many, by plugin    | Not built in | Not built in | Not built in           | Apache-2.0        |
| mods v1.8.1         | Not built in     | Yes                  | 21 ms        | 47 MB            | Many               | Not built in | Yes          | Not built in           | MIT               |
| ShellGPT 1.5.1      | Yes (`--repl`)   | Yes                  | 1.07 s       | 39 MB + Python   | OpenAI, or LiteLLM | Not built in | Not built in | Not built in           | MIT               |

Claude Code, Codex CLI, Gemini CLI, OpenCode, Aider and hax are coding
agents; aichat, llm, mods and ShellGPT are prompt CLIs. "Not built in" is
not a verdict: a plugin or a script may cover it. Check the tool's own
documentation. `clai` answers one turn per command, and `-dre` carries on
the directory's conversation, so it has no chat screen of its own. Only
`clai` also generates images, video and audio, and has a public Hub for
configs.

How the time and size were measured: answer time is the wall time of one
one-shot prompt, from start to exit, against a local test server that
answers instantly in each tool's own API format, so it shows the tool's own
start-up and request overhead and none of a model's. It is the median of 20
runs on Linux x86_64, 4 vCPU Xeon at 2.3 GHz, on 26 October 2026, after one
warm-up run. Update checks and analytics were switched off where a tool has
a switch for them. Install size is what the documented install puts on
disk for Linux x86_64: `go install` for clai and mods, `npm install` for the
Node tools, `uv tool install` for the Python tools (the interpreter not
counted), and `cargo install` for aichat. hax could not be built where we
measured, so its size is its static Linux release archive and its time is
not measured.

## Where clai differs

### Every agent's sessions, kept and continued

`clai chat list` shows the sessions Claude Code, Codex, OpenCode, Gemini
CLI, Qwen and Antigravity left on disk. `clai cloud commit --imports` keeps
them in one synced store on `clai.chat`, and `clai chat continue` resumes
any of them on a different model. See
[Multi-vendor transcripts](/docs/concepts/multi-vendor-transcripts/).

### One profile, any vendor

A profile is one JSON file: the model, the system prompt, the tools and the
MCP servers. Pass `-p <name>` and it applies. Change the `model` field and
the same profile runs on another vendor, so your prompts survive a price
change or an outage. See [Profiles and setup](/docs/guides/profiles/) and
[Supported vendors](/docs/reference/vendors/).

### Built for pipes

`clai q` reads standard input. `-i` puts it where `{}` is in the prompt,
`-I` names your own placeholder, and `-r` prints raw text for the next
command.

```sh
git diff | clai -i q "Review these changes: {}"
kubectl logs deploy/api --tail=200 | clai -i q "Find the first error: {}"
clai -r q "A one-liner that lists the ten largest files" | sh
```

See [Queries and Unix pipes](/docs/guides/queries-and-pipes/).

### Your skills already work

`clai` loads Agent Skills, the `SKILL.md` folders, from its config, from
`~/.agents/skills` and from a repository's `.claude/skills`, so skills
written for Claude Code work as they are. See
[Agent Skills and shell context](/docs/guides/skills-and-shell-context/).

### Your shell, in the prompt

A shell context (`-asc`) adds live values to the system prompt: the branch,
the dirty files and the last commit, or whatever command output you choose.

### A hub for the parts you reuse

The [Hub](/hub/) holds profiles, MCP servers, shell contexts, skills, themes
and prompts. Anyone can read and download them; sign in to publish or rate.

### Media from the same binary

`clai photo`, `clai video` and `clai audio` generate media with the same
profiles and keys, and the Go packages (`pkg/agent`, `pkg/tools`) put the
same loop in your own programs. See the [CLI reference](/docs/reference/cli/)
and the [Go packages](/docs/reference/go-sdk/).

## When another tool fits better

- **Claude Code, Codex CLI, Gemini CLI or OpenCode** when you want one
  vendor's agent to own a coding session in one repository.
- **Aider** when you want a focused pair-programming loop over git.
- **hax** when you want the smallest coding agent there is: one C binary
  that treats local models as first-class.
- **aichat, llm, mods or ShellGPT** when you only want prompts and a chat
  from the shell, with no agent, skills or synced sessions.
- **clai** when you want one tool for scripts, chats, media and agents,
  when you switch vendors, or when your prompts and skills should live as
  plain files you can share.

## Get started

- [Install clai](/docs/installation/) with Go or Nix:
  `go install github.com/baalimago/clai@latest`.
- Follow the [Quickstart](/docs/quickstart/).
- Browse the [Hub](/hub/) for a profile or skill to start from.
