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"
    ]
  }
}

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.

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.