Skip to content

Agents and the control plane

charly is built to be driven by an agent as well as by a person. That shows up in three places: the binary is itself an MCP server, the agent control plane is a first-class command family, and the marketplace ships a skill corpus for several harnesses.

charly mcp serve speaks the Model Context Protocol; mcp is served out-of-process by the plugin-mcp candy (mcp). The tool surface is built from the host’s own CLI model, so the RPC set follows the project you point charly at rather than a fixed list.

The package ships systemd units named charly-mcp, in both system and user scope:

systemd:
- name: charly-mcp
scope: system
exec: /usr/bin/charly mcp serve --listen 127.0.0.1:18765
description: Charly MCP server (Streamable HTTP on 127.0.0.1:18765)
restart: on-failure
- name: charly-mcp
scope: user
exec: /usr/bin/charly mcp serve --listen 127.0.0.1:18765
description: Charly MCP server (user session, Streamable HTTP on 127.0.0.1:18765)
restart: on-failure

They are installed but never enabled — nothing starts at boot; the operator starts one on demand with systemctl start charly-mcp or systemctl --user start charly-mcp. On the host the server binds loopback only; --listen 0.0.0.0:18765 is the explicit opt-in, normal inside a pod or VM deployment.

plugin-agent owns the CUE-validated agent and agent-team kinds plus three command words:

Verb What it is
charly agent the headless, daemon-free agent control CLI — sessions, runs, ordered evidence, incidents, RCA and recovery decisions (agent)
charly tui the terminal UI for the same control plane — browse and drive sessions, runs and terminal channels interactively (tui, recipe)
charly tmux a typed compatibility facade preserving the legacy tmux command grammar; it never constructs remote tmux shell strings (tmux)

Everything routes through generic provider channels, so charly never reaches into an operator’s tmux socket.

Verb What it is
charly pipeline the domain-neutral agent/workflow engine — run a declared plan, the bare agent runtime, deterministic probes, template rendering (pipeline, recipe)
charly review the PR-review engine: it assembles the complete PR context (body, every changed file’s unified diff, commits, comment thread) into one model call and emits a deterministic PASS/BLOCK verdict (review)
charly feature the project-inspection surface — enumerate a project’s plan-shaped entity descriptions (list / pending / validate) (feature)
charly task a named, host-native reusable plan authored as a task: node using the same step grammar a candy’s plan: uses (task)
charly agentteams the management CLI for the AgentTeams controller REST API plus the declarative agentteams: check verb (agentteams)

The marketplace ships a skill corpus for several agent harnesses. Its README names Claude Code (and Cursor, which reads the same .claude-plugin catalog), Codex CLI (via the .agents catalog), Kimi Code, and pi.

Skills are addressed as /charly-<plugin>:<skill> — for example a plugin family plus one of its skill names — and this site publishes that corpus under recipes, one page per skill plus its reference detail pages.

  • You and your agents — the concept behind the control plane.
  • The CLI — the core spine versus the plugin-served catalog.
  • Install — installing the packages that carry the charly-mcp units.