AI agents

Comparisons

Feature Matrix

Legend: ✅ Supported · ⚠️ Partial or different implementation · ❌ Not supported · ? Unable to verify

FeatureClaude CodeCodexKimi Code
Interactive CLI✅ claude TUI✅ codex TUI✅ kimi TUI
Slash commands✅ Large built-in set (/compact, /plan, /review, …)✅ Built-in set (/compact, /plan, /review, …)✅ Built-in set (/compact, /plan, /goal, …)
Plan mode✅ /plan, Shift+Tab, --permission-mode plan✅ /plan (TUI only)✅ /plan, Shift-Tab, --plan
Project instructions✅ CLAUDE.md✅ AGENTS.md✅ AGENTS.md
Agents/Subagents✅ .claude/agents/ + built-ins✅ .codex/agents/ + built-ins✅ .kimi-code/agents/ + built-ins
Skills✅ SKILL.md (also legacy .claude/commands/)✅ SKILL.md under .agents/skills/✅ SKILL.md or flat .md
MCP✅ Client (stdio/HTTP/SSE/WS)✅ Client (stdio/streamable HTTP) + codex mcp-server✅ Client (stdio/HTTP/SSE)
Context compaction✅ Auto (~95%) + /compact✅ Auto (token limit) + /compact✅ Auto (reserved threshold) + /compact
Session resume✅ -c, -r, /resume✅ codex resume, /resume✅ -c, -S, /sessions
Code review✅ /code-review, /review, /security-review✅ /review, codex review❌ No code review command documented
Permission controls✅ Six modes + allow/ask/deny rules✅ Approval policies + named profiles + execpolicy✅ Three modes + [[permission.rules]]
Sandbox⚠️ Optional OS sandbox (off by default)✅ OS sandbox on by default❌ No OS-level sandbox documented
Non-interactive mode✅ claude -p✅ codex exec✅ kimi -p
Hooks✅ Command + LLM-prompt hooks✅ hooks.json / inline [hooks]⚠️ [[hooks]] in config.toml (fail-open)
Plugins✅ /plugin + marketplaces✅ codex plugin + marketplaces✅ /plugins + marketplace
Goal/autonomous mode✅ /goal [condition]✅ /goal (persistent goal, features.goals on)✅ /goal (auto-continuing turns, exit codes)
Custom providers/models⚠️ Anthropic + Bedrock/Vertex/Foundry✅ Custom model_providers (Responses wire API only) + local --oss✅ Multiple provider types + KIMI_MODEL_* envs

Per-row notes

  • Slash commands — All three have rich built-in command sets, but the names differ for the same task (e.g. Kimi /permission vs Claude/Codex /permissions; Kimi /sessions vs Claude/Codex /resume). See Command Equivalents.
  • Plan mode — Claude’s plan mode is a permission mode (plan), so it can be set at launch and combined with other permission settings. Codex’s /plan only switches the active chat and is unavailable while Codex is already working. Kimi’s plan mode restricts Write/Edit to the plan file and blocks TaskStop; exiting plan mode requires user confirmation except in Never Ask mode.
  • Project instructions — Same concept, different filenames and precedence rules. Claude reads CLAUDE.md (with @import support); Codex and Kimi read AGENTS.md. Details in Project Instructions: CLAUDE.md vs AGENTS.md.
  • Agents/Subagents — All three support custom subagent definitions, but in different formats and locations: Claude uses Markdown + YAML frontmatter in .claude/agents/; Codex uses standalone TOML files in .codex/agents/; Kimi uses Markdown + YAML frontmatter in .kimi-code/agents/ and .agents/agents/.
  • Permission controls — Not 1:1. Claude has six permission modes (default/manual, acceptEdits, plan, auto, dontAsk, bypassPermissions); auto became the default mode in August 2026 and uses a background safety classifier. Codex separates approval policy (untrusted/on-request/never/granular) from sandbox mode. Kimi has three modes: Always Ask (default), Ask When Needed (--yolo), and Never Ask (--auto). Claude’s auto mode is not the same as Kimi’s auto/Never Ask: Claude still runs classifier checks, while Kimi’s Never Ask decides everything automatically without asking. See Permissions and Security Models.
  • Sandbox — Codex enforces an OS-level sandbox by default (macOS Seatbelt, Linux bwrap + seccomp, Windows native sandbox or WSL2) with three modes: read-only, workspace-write, danger-full-access. Claude Code has an optional sandbox (sandbox.enabled, macOS/Linux/WSL2, default off) with network domain allowlists. Kimi Code documents no OS-level sandboxing; permissions, approval rules, and hooks are the documented safety model, and its hooks are fail-open.
  • Hooks — Claude supports command hooks (bash) and prompt hooks (LLM-evaluated) across many events, with blocking exit code 2. Codex supports lifecycle hooks via hooks.json or inline config across a similar event list. Kimi hooks allow only four fields (event, matcher, command, timeout), only PreToolUse, Stop, and UserPromptSubmit can block, and any non-zero exit other than 2 (or a timeout/crash) allows the action — fail-open, so they must not be the sole security barrier.
  • Custom providers/models — Claude Code supports Anthropic plus third-party clouds (Bedrock, Vertex, Foundry) via env vars/settings; arbitrary OpenAI-compatible endpoints are not documented. Codex supports custom model_providers with base_url and headers, but only the responses wire API, plus local models via --oss (LM Studio/Ollama). Kimi supports kimi, anthropic, openai, openai_responses, google-genai, and vertexai provider types, custom base_url, and a KIMI_MODEL_* env family that synthesizes a temporary provider.

Last verified: 2026-09-07

Official sources:

AI coding tools evolve quickly. If you find outdated information, please open an issue or pull request.