sonny is an interactive CLI tool for testing and running prompt recipes with various LLM providers. It supports Language Server Protocol (LSP) integration, agent management, and comprehensive tool execution.

Every command name, flag, shorthand, default and description on these pages is copied from the verbatim --help output captured in the Sonny source reference (docs/user/cli-reference.md), where each block is doc-tested against the real binary. If a flag is not listed there, it does not exist.

Commands

CommandPurpose
sonny runRun an interactive chat session with a recipe. Bare sonny is this command.
sonny configManage configuration. Also covers sonny credentials, which inspects credential resolution and manages the OAuth credential migration to the credential broker.
sonny initInitialize sonny’s directories and example config
sonny meshDistributed mesh session management
sonny recipe (alias pack)Manage recipes and git-backed recipe sources

See Overview and global flags for the persistent flags every command accepts and for the published exit-code table.

Full command list

Bare sonny with no subcommand is an alias for sonny run . These are the commands listed by sonny --help:

CommandPurpose
a2aAgent-to-Agent (A2A) protocol commands
archArchitecture DSL evaluation
benchBenchmark harnesses for sonny recipe eval / sonny recipe optimize
canaryEmbedded Canary: requirement migration and test evidence
capabilitiesReport which toolchain capabilities this project needs and which are usable
catalogManage the installable model-catalog registry
commitmsgValidate commit messages against the Conventional Commit + work-item policy (ENG-4428)
completionGenerate the autocompletion script for the specified shell
configManage configuration
conformanceRun the conformance harness, qualification matrix, and release dossier
contextInspect, validate, and assemble context-efficiency data
context-statsSummarize context-efficiency metrics for a session or time range
context-validateVerify context-efficiency invariants for a session
controlInspect Sonny’s authority control plane
credentialsInspect credential resolution and manage the OAuth credential migration to the credential broker
cuePlan, import, run, analyze, and report context-use evaluations
editor-rpcServe a JSON-RPC editor client of the supervisor over stdin/stdout
freezeContain a tenant with a signed freeze epoch
helpHelp about any command
hooksInspect and validate the session hooks configuration
initInitialize sonny’s directories and example config
isolationInspect and verify session isolation
lspInspect and validate Language Server Protocol configuration
mcpInspect resolved MCP server and tool configuration
mcp-serverRun Sonny tools or a traced external MCP proxy over stdio
meshDistributed mesh session management
modelsInspect and manage model categories, fitness, and pricing
policyValidate, inspect and control DPolicy decision policies
precommitciRun the authoritative CI pre-commit/commit-range gates (ENG-4429)
promptDisplay the rendered system prompt for a recipe
recipeManage recipes and git-backed recipe sources
routingInspect routing decisions and evaluation evidence
runRun interactive chat with a prompt recipe
sessionRun deterministic full-session evaluation and optimization
supervisorManage the supervisor daemon: ensure, serve, status, stop
toolsList and manage available tools
traceInspect conversation traces without opening the JSONL files by hand
trainingAggregate and export conversation traces as training data
updateManage signed Sonny application updates
variantSync and inspect upstream model-variant bundles
versionPrint version information, the license, the changelog, or SCA build info
workspaceGrant, revoke, or inspect workspace trust
worktreesManage the Git worktrees Sonny creates for delegated child agents

sonny pack is an alias of sonny recipe; the help output prints the primary name recipe and the alias line recipe, pack.

Two commands bypass cobra entirely and are absent from every --help listing: sonny schema-gen (prints the JSON Schema for pack YAML files to stdout and exits — no flags, no subcommands) and the embedded Canary command surface.

pages