AchillesCLI Documentation

AchillesCLI is a skill-oriented CLI runtime built on AchillesAgentLib. This documentation tracks the implemented runtime and keeps detailed specifications synchronized with the codebase.

Architecture Scope

Runtime package: achilles-cli/ (entrypoint, REPL, UI, schemas, skills)
Tests: tests/ and achilles-cli/tests/
Specifications: docs/specs/DS000-DS011

Ecosystem Integration

AchillesCLI integration boundaries are specified against: Ploinky, AchillesAgentLib, and AchillesIDE in DS010.

Interruption Model

AchillesCLI supports ESC cancellation for long-running prompt and slash-command executions. Cancellation is propagated as an abort signal to runtime calls, interrupted turns are not persisted to command history, and the next user input resumes normal interactive flow. In webchat runtime mode (non-TTY stdin), ESC is accepted as a standalone input line to abort the current prompt.

WebChat Progress

In webchat runtime mode, AchillesCLI emits structured progress metadata before loop-session tool calls. The metadata carries the planner reason for the selected tool and is intended for browser UI progress rendering, not for transcript or final-answer text.

Repository Maintenance

Cloned skill repositories live under .achilles-cli/repos/. The slash command /update repos runs git pull in each cloned repository and reports aggregated per-repository failures with a failed to update repos: message.

MCP Tool Exposure

AchillesCLI exposes its skill catalog as MCP tools via the AgentServer mechanism. Each user skill is exposed as execute_<sanitised_skill_name> with an input schema. WebChat clients query this catalog at session start to populate slash-command autocomplete menus. For AchillesCLI slash commands, WebChat calls the dedicated command-catalog MCP tool (list_achilles_cli_commands) and receives a structured command+subcommand catalog. The tool accepts the WebChat working dir and uses AchillesAgentLib discovery to add available skill names as argument completions for slash commands that operate on skills. If a skill descriptor contains ## Help, that text is returned as the completion description so remote UIs can show invocation guidance beside the skill name. If no tools are available, clients silently fall back to an empty command list.

Semantic Copilot Routing

AchillesCLI Copilot owns semantic provider routing. Ploinky WebChat supplies only the generic envelope, sanitized references, and selected-agent invocation token. Non-slash Copilot turns route through copilot-router, which may call deterministic launcher cskills such as launch-open-interpreter. Deprecated provider tokens such as @open-interpreter remain ordinary chat text. Explorer launch metadata may add generic parameters such as forward-envelope=1 and workspace-dir, but provider tags, relay tool names, and provider agent ids stay out of WebChat launch URLs.

Specification Entry Points