Autohand Code CLI
An ultra-fast, self-improving AI coding agent that runs in your terminal, understands your codebase, and executes changes while keeping you in control through a permission system.
Per-dimension scores and reasoning
Evidence shows permission modes (restricted/plan/YOLO), confirmation before dangerous actions (tests verify delete_path requires confirmation), rollback via --dry-run/--patch/worktrees/checkpoints, and complete Apache-2.0 text with copyright headers. Deductions: the installer silently scans PATH and replaces any third-party 'agent' command (README admits 'no prompt') — an over-broad, default-on side effect; settings sync defaults to on (--sync-settings default true); code being sent to LLMs is barely described in a feature line; no dedicated sensitive-data documentation; broad external effects (auto-commit, push, web search) with thin default-behavior disclosure.
A vitest suite including terminal integration tests (tuistory), CI type checking, --frozen-lockfile installs, and multi-platform build smoke tests are all visible; actionExecutor validation tests show clear failure messages ('search_replace requires a path argument' etc.). Deductions: reliability is static inference only; node-llama-cpp must be externalized at bundle time, and postinstall scripts that modify helper permissions are environmentally fragile.
Scenario coverage is thorough: interactive/command/RPC/ACP modes, CI/CD, editor integrations, five-language SDKs, multi-provider models, cross-platform build matrix with Windows installer tests — full marks for audience_and_scenarios. Deductions: capability boundaries (context limits, failure rates, how 'self-improving' actually works) are not quantified; --yolo allow/deny patterns give trigger precision but only moderately documented.
Information architecture is excellent: multilingual config docs, an exhaustive workflows README, clean structure — full marks. License is complete Apache-2.0, consistent with package.. Deductions: npm name autohand-cli vs repo code-cli, three bin names coexisting, and the generic 'agent' name 'stabilized' by overwriting others' commands is naming instability; no known-limitations section; SemVer and generated release notes exist but no CHANGELOG file is shown; maintenance process is documented yet publisher identity is unverified.
Output usability is good: stream- event streams, -- local, git patch output, session export are documented and tested. Cost controls (--max-cost, --max-iterations, --max-runtime, checkpoints) are explicit. Deductions: marginal value versus Claude Code/Codex-class tools is asserted only via 'fast'/'self-evolving' claims with no benchmarks in-repo; cost-benefit rests on unverified performance claims.
Cross-source corroboration is good — README, package., tests, and CI agree on version, build, test commands, and bin names. Deductions: core marketing claims ('Ultra fast', 'self-evolving') have no traceable measurement or benchmark; promotional language is not separated from verifiable facts in the README; this is a static review and no execution claims were independently verified.
- The installer overwrites any third-party 'agent' command on PATH without a prompt; verify the name is not in use before installing.
- curl | bash installation combined with an unverified publisher is risky — prefer Homebrew or building from source after reviewing install.sh.
- --sync-settings is on by default and code content is sent to your chosen LLM provider; audit data flows before using on sensitive codebases.
- Avoid auto-approval options (-y / --unrestricted / --yolo) outside default mode, and use --dry-run and worktree isolation to validate changes first.
- Performance and 'self-evolving' claims are unbenchmarked; run your own trials on a small repository before adoption.
What does this agent do, and when should you use it?
Autohand Code CLI is a terminal-native AI coding agent built with Bun/TypeScript, invoked via the `autohand` command in either an interactive Ink-based REPL or single-shot command mode. It reads project context, plans changes, edits files, runs shell and Git operations, and prompts for approval before risky actions, with configurable permission modes for tighter or looser control. It ships 40+ tools spanning file operations, Git, planning, memory, browser integration, and subagent delegation, plus a modular Agent Skills system and a declarative code-extension mechanism. Structured JSON Lines streaming (`--output-format stream-`) makes it scriptable from CI/CD. It supports multiple model providers including OpenRouter, OpenAI, AWS Bedrock, DeepSeek, and local Ollama/llama.cpp/MLX, and offers a companion Code Agent SDK in TypeScript, Go, Python, Java, and Swift. Installation is via curl script, Homebrew, manual build, or Docker, with a VS Code extension and ACP integration for Zed and JetBrains IDEs.
Run autohand for the interactive REPL or autohand -p "..." for a single instruction. It reads workspace files and project context, then calls tools such as plan, read_file, write_file, apply_patch, search, and semantic_search to generate and apply edits, executes shell commands via run_command, and manages version control with git_commit, git_push, and auto_commit (-c/--auto-commit commits after task completion). The REPL supports @ file mentions, / slash commands, $ skill autocomplete, and session persistence with /resume. --auto-skill analyzes the project and generates skill packages; --output-format stream- emits thinking, tool_start, tool_end, file_modified, result, and error events; --dry-run and --patch preview changes without applying them. It also provides /goal persistent goal queues, --auto-mode autonomous loops with iteration/runtime/cost caps, /mcp for MCP server management, and spawn_subagent for delegating tasks to focused subagents.
- Terminal-first developers who want an AI to understand their codebase and directly fix lint/type errors, write tests, or do small refactors without leaving the shell
- Teams wiring repetitive engineering tasks into CI/CD or scripts, using command mode plus
--output-format stream-to parse structured results - Engineers onboarding into unfamiliar or polyglot codebases, using
/initto create AGENTS.md and--auto-skillto generate project-specific skill packages - Cautious users reviewing work before it lands, using
--planread-only planning mode or--dry-run/--patchto preview changes before applying them - Power users running autonomous batch work with
--auto-mode, constrained by--max-cost,--max-runtime, git worktree isolation, and checkpoint intervals - Developers embedding agent capabilities in their own tools or IDEs via the Code Agent SDK (TypeScript/Go/Python/Java/Swift) or the ACP protocol
What are this agent's strengths and limitations?
- Terminal-native with zero context switching: the REPL combines file mentions, slash commands, skill autocomplete, and session resume in one prompt
- Multi-provider support (OpenRouter, OpenAI, Bedrock, DeepSeek, local Ollama/llama.cpp/MLX) avoids single-vendor model lock-in
- Explicit permission tiers: interactive approval,
--unrestricted,--restricted, whitelist/blacklist patterns, and a--planread-only mode as a safe entry point - Strong extensibility: Agent Skills (compatible with Codex and Claude skill formats), declarative code extensions, MCP server management, and 40+ built-in tools
- Engineering-grade automation: stream- event output,
--patch, worktree isolation, and cost/runtime/iteration caps suited to scripting and CI/CD
- Runtime depends on Bun >= 1.0 and Git (ripgrep optional), so teams on a standard Node toolchain must adopt Bun
- The installer silently replaces any existing generic
agentcommand on your PATH, which can break other tools using that name - Custom provider setup requires hand-editing JSON/TOML/YAML and managing API keys yourself, adding initial configuration cost
- The README markets 'self-evolving' behavior, but the concrete evidence is skill auto-generation and memory tools; independent verification of long-term self-improvement is not provided in the source
- Telemetry is off by default (a privacy plus), but adopters should audit the code themselves; Apache-2.0 with commercial terms for companies with ARR above $5M (see COMMERCIAL.md)
How do you install or deploy this agent?
Quick install: curl -fsSL https://autohand.ai/install.sh | bash. Homebrew: brew install autohandai/code/autohand-code. Manual build requires Bun >= 1.0 and Git: git clone https://github.com/autohandai/code-cli.git && cd code-cli && bun install && bun run build && bun add -g .. A Dockerfile based on oven/bun:1 is provided in the README. Optionally install ripgrep for faster search. After install, run autohand --setup for the configuration wizard.
How do you use this agent?
1) Configure a provider: create ~/.autohand/config. (or config.toml/yaml) such as {"provider":"openrouter","openrouter":{"apiKey":"sk-or-...","model":"..."}}; 2) Interactive session: run autohand, describe your goal in natural language, use @ for file mentions, /skills for skills, and Shift+Tab to cycle edit/plan/YOLO/auto modes; 3) One-shot: autohand -p "add a dark mode toggle to the settings page" with optional -y auto-confirm, -c auto-commit, --dry-run preview, or --output-format stream- for event streaming; 4) Resume work: autohand resume --last. Editor use: install the AutohandAI.vscode-autohand extension in VS Code, or run as a native ACP external agent in Zed/JetBrains via --acp.