Installation
Commands
validate
Check a spec file offline — no LLM calls, no network, no MCP connections.
inspect
Print a summary of the spec — agents, orchestrators, MCP servers, hooks, and tool tags — without running anything.
generate
Create plugin stubs from the spec. Safe to run repeatedly — existing implementations are preserved by default.
plugins/resolvers/shared.py—SharedResolverwith shared methodsplugins/resolvers/<agent_id>.py— per-agentResolversubclassplugins/tools/<tool_id>.py— tool stubsplugins/hooks/<hook_id>.py— hook stubsplugins/plugins.toml— plugin manifest
run
Send one message through the engine. Persists the conversation via agent_manager.
| Flag | Description |
|---|---|
--config | Path to the spec file |
--message | The user message |
--stream | Print tokens as they arrive |
--session-id | Attach to an existing session |
--user-id | Associate with a user |
--env | Load environment variables from a file |
serve
Start the stateless engine HTTP API. No persistence, no widget.
GET /health, POST /invoke, POST /stream
Default port: 8090. Override it with --port or the PORT env var (e.g. PORT=8080 agentctl serve --config agents.yml).
chat
Interactive developer console. Keeps one engine alive, lets you ask multiple questions without restarting. Nothing is persisted.
--config (local) or --url (remote), not both. Type exit, quit, or press Ctrl-C to stop.
agent-manager
Separate command for the conversation layer + widget:POST /conversations, GET /conversations/{id}/messages, POST /conversations/{id}/messages, POST /conversations/{id}/messages/stream, GET /widget.js