protocol agentproto.shcli cli.agentproto.shpanel /panel
agentproto CLI
Reference

Config schema — `~/.agentproto/config.json`

The CLI's global config file. Location: $AGENTPROTO_HOME/config.json (defaults to ~/.agentproto/config.json). Created lazily — absent until first agentproto config set or agentproto plugins install.

Config schema — ~/.agentproto/config.json

The CLI's global config file. Location: $AGENTPROTO_HOME/config.json (defaults to ~/.agentproto/config.json). Created lazily — absent until first agentproto config set or agentproto plugins install.

Read/write via agentproto config:

agentproto config show
agentproto config get plugins
agentproto config set daemon.port 18791

Full shape

{
  // Runtime plugins loaded by `agentproto run-swarm`. Each entry is an
  // npm package id resolvable from the cli's install location OR the
  // user's cwd. Loaded in array order; last write wins on duplicate
  // adapter kinds.
  "plugins": [
    "@guilde/agentproto-bridge",
    "@acme/agentproto-slack"
  ],

  // Slug → package-name aliases for `agentproto install
  // runtime-profile/<slug>`. Without an alias, the verb defaults to
  // `@agentproto/runtime-profile-<slug>`.
  "profileAliases": {
    "guilde": "@guilde/runtime-profile-guilde"
  },

  // npm packages the `corpus` CLI scans for AIP-10 starter presets.
  // Each must declare `package.json#agentproto-corpus-preset` matching
  // the agentproto/corpus-preset/v1 schema. Defaults to just
  // ["@agentproto/corpus-presets"] when omitted.
  "corpusPresetPackages": [
    "@agentproto/corpus-presets",
    "@vendor/corpus-presets"
  ],

  // Daemon-mode options. Read by `agentproto daemon` and
  // `agentproto serve` when launched without explicit flags.
  "daemon": {
    "port": 18791,
    "bind": "127.0.0.1",
    "allowedOrigins": [
      "https://guilde.work"
    ]
  },

  // Global and per-adapter defaults auto-applied to every `agent_start`
  // spawn (CLI, MCP, or HTTP). See "defaults" below.
  "defaults": {
    "skills": ["review-checklist"],
    "options": { "verbose": true },
    "adapters": {
      "hermes": { "skills": ["hermes-only-skill"], "options": { "model": "z-ai/glm-5.2" } }
    },
    "defaultRoleDepthCutoff": 1,
    "maxGrantableDelegation": 2,
    "langfuseTracing": false,
    "traceRedactor": "secrets"
  }
}

Keys

plugins: string[]

npm packages with an agentproto/plugin/v1 manifest. The CLI walks this list at every run-swarm invocation, reads each plugin's manifest, dynamic-imports declared adapter factories, and registers them.

Managed via agentproto plugins. Direct edit is fine — the verbs are convenience.

profileAliases: Record<string, string>

Maps a runtime-profile slug to an npm package name. Lets you install third-party profiles without typing the full package name:

# Without alias:
agentproto install runtime-profile/guilde \
  --package @guilde/runtime-profile-guilde

# With alias above:
agentproto install runtime-profile/guilde

The default resolver (@agentproto/runtime-profile-<slug>) still applies when no alias matches.

corpusPresetPackages: string[]

Only consumed by the corpus binary (@agentproto/corpus-cli). Each listed package must declare package.json#agentproto-corpus-preset listing its starter presets. corpus init <slug> resolves against the merged set. corpus init --list enumerates everything visible.

daemon: object

Defaults for agentproto daemon and agentproto serve:

FieldTypeMeaning
portnumberListen port (default 18791).
bindstringBind address (default 127.0.0.1 — loopback-only).
allowedOriginsstring[]CORS allow-list for browser callers of the daemon API.

Verb flags override config; config overrides hard-coded defaults.

defaults: object

Global and per-adapter defaults auto-applied to every agent_start spawn (CLI sessions start/run, MCP start_agent_session, or the HTTP API) — introduced in 0.5.0.

FieldTypeMeaning
skillsstring[]Global skills folded into every spawn's options.skills.
optionsRecord<string, boolean|number|string>Global options merged into every spawn.
adaptersRecord<string, { skills?, options? }>Per-adapter overrides, keyed by adapter slug (e.g. "hermes").
defaultRoleDepthCutoffnumberSpawn depth at/above which a session defaults to executor instead of supervisor (default 1).
maxGrantableDelegationnumberTrust-boundary cap on how much delegation a supervisor can grant a child.
langfuseTracingbooleanOpt in to per-session Langfuse tracing by default.
traceRedactorstringRedactor slug (e.g. "secrets") applied to traced session content.

Merge precedence (low → high): defaults.options < defaults.adapters.<slug>.options < the explicit options passed at spawn time. For skills, an explicit skills array at spawn time replaces the union of defaults.skills and defaults.adapters.<slug>.skills rather than merging with it. Adapters with no declared skills option treat the resolved skills list as a no-op.

Permissions

Mode 0600 is NOT enforced for config.json — unlike credentials.json, this file doesn't carry secrets. Plugin names, ports, and alias maps are not sensitive.

Versioning

The config file is unversioned today. New keys may appear in any minor release of the CLI; unknown keys are tolerated and preserved across reads/writes. Removed keys are still readable but are no-ops. See ../../VERSIONING.md for the broader policy.