Comparison
Agent AFK vs. Claude Code
Claude Code ends a turn in prose you read back. Agent AFK ends every turn in a verdict — Done, Blocked, Asking, or Interrupted — where Done must cite a file, a commit, or a test result. Same models, same machine. The difference is what you get back.
Prose vs. receipt
Both tools run the same models with the same tools. The divergence is the output contract. A Claude Code turn ends when the model stops talking — “what happened” is something you reconstruct from scrollback. An Agent AFK turn cannot end without a named terminal state, and Done carries a required Evidence field pointing at a durable location: a file path, a commit SHA, a test result. That contract is injected in code, not prompt, so no config can drop it. The 24 shipped skills, the Telegram push, the cross-session memory — all downstream of that one decision.
Feature comparison
Grounded in the actual implementations, not marketing copy.
| Dimension | Claude Code | Agent AFK |
|---|---|---|
| How a turn ends | Free-form prose. You read the output to decide what happened. | One of four terminal states: Done, Blocked, Asking, or Interrupted. Done requires an Evidence pointer to a file, commit, or test result. Injected in code — no config can remove it. |
| Primary workflow | Interactive: you prompt, watch, steer, and decide when it’s done | Goal-in, verdict-out: you state the goal, auto-routing picks the skill, and the turn ends in a named terminal state with evidence |
| Model providers | Anthropic API natively; also Bedrock, Vertex AI, and Foundry via cloud integrations | Anthropic + any OpenAI-compatible endpoint + local models (Ollama, LM Studio, etc.) |
| Memory architecture | 4 scopes (managed, user, project, local CLAUDE.md) + recursive rules dir. Delivered as user message. Upward directory walk. MEMORY.md auto-loaded. | 2 fixed scopes (user AFK.md + project AFK.md). Delivered via system prompt (higher adherence). No upward directory walk. Separate HOT.md + cross-session FTS5 fact archive for model-written memory. |
| Cross-session memory | MEMORY.md file auto-loaded into context each session | Dedicated SQLite store with full-text search; survives compaction; queryable across sessions |
| Bash concurrency | Parallel bash execution. Cap: 10 safe concurrent tools (tunable via env var). | Serial bash execution (conservative by design). Cap: 8 safe concurrent tools. Subagent fan-out: 8 concurrent, queued — no deadlock on overflow. |
| Subagent concurrency | 20 concurrent subagents, 200 per session maximum; excess fails immediately | 8 concurrent subagents per fan-out, queued beyond cap; no hard per-session ceiling |
| Tool output cap | Truncates long tool output at the tail | Head+tail strategy: preserves both the start and end of large outputs so context and summaries both survive |
| Surfaces | Terminal (CLI) + IDE (VS Code, JetBrains) + GitHub integration + Agent SDK for headless/programmatic use | Chat, REPL, background daemon, and Telegram bot — all sharing one session manager under ~/.afk/ |
| Notification / async handoff | Terminal output; results can be posted to GitHub via native integration | Telegram push: the verdict (not a log tail) lands on your phone. Answer Asking, approve, or interrupt from Telegram. |
| Orchestration skills | Custom slash commands (project-local). Agent SDK for building autonomous agents. | 24 skills ship in the box: /mint (spec → research → plan → build → verify), /diagnose (parallel hypothesis fan-out), /ship, /review (parallel dimension agents), /fix-pr, /refactor, /shadow-verify. Auto-routed by task shape, default on. Extensible via plugins. |
| Permissions model | Per-tool prompts by default; auto mode (classifier-reviewed) on Pro/Max/Team; bypassPermissions available | Bypass permissions for unattended work; path containment in default mode; configurable per surface. Shift+Tab cycles modes in the REPL without interrupting. |
| Hooks / extensibility | PreToolUse, PostToolUse, Notification, Stop hooks. Custom slash commands in project-scope .claude/ directory. | PreToolUse, PostToolUse, SessionStart/End, SubagentStart/Stop hooks — each can block, inject context, or fire custom logic. Plugin architecture for distributing skills, MCP servers, and config as installable packages. |
| MCP support | MCP client with project-scope config in .mcp.json. Stdio and HTTP transports. | 4-layer MCP config (plugin → user → project → flag). Supports stdio, HTTP, SSE, and OAuth transports. afk mcp auth handles OAuth flows for servers that need them. |
| Browser automation | No built-in browser tools; available via MCP servers. | Built-in Playwright-backed browser: open, observe, act, screenshot. Domain policy enforcement and SSRF guards included. |
| Migration path | N/A — primary tool for most users | afk migrate imports CLAUDE.md rules, custom commands, and project context from an existing Claude Code setup. One command. |
| Config isolation | Lives in ~/.claude/ | Lives in ~/.afk/ — fully isolated; both can coexist |
| License | Closed source; Anthropic product | Apache-2.0; open source |
Where Agent AFK pulls ahead
Genuine architectural differences, not marketing claims.
Every turn ends in a verdict
Done, Blocked, Asking, or Interrupted — one of four, every turn, on the REPL and Telegram surfaces. Done must carry an Evidence line pointing at a file path, commit SHA, trace, or test result — “transcript-only” is explicitly disallowed. The protocol lives in the runtime as a code constant, not a prompt, so a custom AFK.md cannot silently drop it. When a turn ends, that verdict is what lands on your phone via Telegram.
It picks the workflow, you state the goal
Skill auto-routing is on by default in the REPL. The runtime matches task shape to skill — a failing test routes to /diagnose, pre-write work runs /ground-state first, high-stakes subagent output gets /shadow-verify before you act on it, finished work goes to /ship. It also knows when to stay out of the way: single-line edits and direct requests skip orchestration entirely.
24 skills ship in the box
/mint runs spec, research, plan, parallel build, and verify — pausing for your approval before it writes. /diagnose forks parallel hypotheses into isolated worktrees. /review dispatches agents across security, correctness, API compat, and coverage. /fix-pr pulls review feedback and pushes the fix. All 24 are open source, readable, and extensible via the plugin system.
Cross-session memory with FTS5 search
SQLite with FTS5 search backs a durable fact archive that survives context compaction and is queryable across sessions. The agent can recall decisions made three weeks ago. Memory is delivered via system prompt, which the model treats as persistent background context rather than a conversational turn.
Any model provider, including local
Anthropic and OpenAI API formats are supported natively — point it at Claude, GPT-4o, Gemini, Mistral, or a local Ollama instance with the same configuration. Each pipeline step can target a different provider or cost tier without changing your workflow.
A real terminal, not just a chat prompt
The REPL is a full TUI: tool calls render in a structured lane with arguments, elapsed time, and parallel ×N badges. Ghost-text suggestions autocomplete your input. Ctrl+B backgrounds a running turn so you can keep prompting. A live loop-stage rail shows where the agent is in its reasoning cycle. It’s closer to an IDE for agent work than a shell you paste prompts into.
One-command migration from Claude Code
afk migrate imports your CLAUDE.md rules, custom commands, and project context. If you’re evaluating Agent AFK alongside Claude Code, you don’t start from scratch — your existing project conventions come along.
Where Claude Code pulls ahead
Honest. Claude Code is a well-built tool with real strengths.
IDE integration
Claude Code has native extensions for VS Code and JetBrains. It can see your cursor position, open file, and inline diagnostics — context that a terminal-first agent does not have. If most of your work happens inside an IDE, Claude Code’s ambient presence is hard to match.
Richer project memory scoping
Claude Code’s four-scope hierarchy (managed, user, project, local) with recursive rules directories and @path imports gives monorepo teams fine-grained control over what each subproject sees. If you run a complex monorepo with per-package conventions, that composability is a real structural advantage.
Background shell lifecycle management
Claude Code can start a background process, keep it alive across tool calls, and shut it down cleanly at session end. Agent AFK’s bash is serial and stateless by design — that conservatism is a tradeoff, not a limitation to overlook.
GitHub-native, IDE-native, and further along
Claude Code has VS Code and JetBrains extensions, native GitHub integration, an Agent SDK for building autonomous agents, and Routines for scheduled task execution. It has a large, active community producing tutorials, extensions, and CLAUDE.md conventions. If you want the ecosystem with the most shared tooling and the backing of Anthropic, Claude Code has more of it.
Managed and supported
Claude Code is a supported Anthropic product. Agent AFK is one maintainer and an Apache-2.0 license. If you need an SLA, vendor support, or enterprise procurement, Claude Code is the straightforward choice.
Frequently asked questions
- Can I use Agent AFK alongside Claude Code?
- Yes. Agent AFK stores its configuration in ~/.afk/ and Claude Code in ~/.claude/ — they are fully isolated. Many developers use Claude Code for interactive sessions and Agent AFK for tasks they want to run overnight or delegate to a daemon.
- Is Agent AFK free?
- Yes. Agent AFK is open source under Apache 2.0. The full runtime is free with no feature gates. You bring your own API key. Paid plans cover supported setup from the maintainer, not access to the software.
- Does Agent AFK work with local models?
- Yes. Agent AFK supports any provider that speaks the Anthropic or OpenAI API format, including local inference servers like Ollama and LM Studio. You configure the endpoint and model in ~/.afk/ and the runtime routes requests there.
- Can Agent AFK replace Claude Code?
- For interactive work where you’re watching the screen, the verdict contract is overhead — Claude Code’s IDE integration and GitHub-native workflow are genuinely better there. The contract pays for itself the moment you’re not reading every line: overnight runs, parallel tasks, anything you’ll review hours later. Many developers run both.
- What model providers does Agent AFK support?
- Anthropic (Claude), any OpenAI-compatible API (GPT-4o, Gemini, Mistral, Grok, etc.), and local models served through compatible endpoints (Ollama, LM Studio, llama.cpp server). You can configure a different provider per surface or per task.
- Can I migrate my Claude Code setup to Agent AFK?
- Yes. Run afk migrate in a project with an existing .claude/ directory. It imports your CLAUDE.md rules, custom slash commands, and project context into the equivalent AFK.md and skill structure. The original Claude Code config is not modified.
- Does Agent AFK support MCP?
- Yes. Agent AFK ships a full MCP client with 4-layer config resolution (plugin, user, project, CLI flag), supporting stdio, HTTP, SSE, and OAuth transports. Run afk mcp auth to complete OAuth flows for servers that require them.
- Which should I use?
- Use Claude Code if: you work inside VS Code or JetBrains, you want GitHub-native integration, you prefer to direct each step interactively, or you need vendor support. Use Agent AFK if: you want every turn to end in a verdict with evidence, you want auto-routed orchestration skills, you need persistent cross-session memory, you want Telegram notification, or you want to use local or non-Anthropic models. The two tools coexist cleanly — you do not have to choose just one.
Compare other tools
See how Agent AFK compares across the landscape.