{
  "schema_version": "cmdhub.website.command_catalog.v1",
  "tool": "agent",
  "title": "Agent CLI",
  "description": "Schema-aware transforms between one command contract and another.",
  "auth_mode": "Model profile",
  "auth_scopes": {
    "label": "local model profile",
    "scopes": [
      "local model/profile configuration"
    ],
    "note": "Provider credentials stay with the source and destination CLIs."
  },
  "markdown_url": "/cli/agent/index.md",
  "commands": [
    {
      "id": "cmd-agent-adapt",
      "path": "agent adapt",
      "name": "adapt",
      "short": "Compile one typed stream into another",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": true,
      "example": "agent adapt --help\ngmail message get m1 --jsonl | agent adapt --to 'gcal event create' --dry-run\ngmail message get m1 --jsonl | agent adapt --to 'gcal event create' --via intent.meeting_request.v1 --json\ngmail message get m1 --jsonl | agent adapt --to intent.task.v1",
      "flags": [
        {
          "name": "dry-run",
          "type": "bool",
          "usage": "Dry run mode"
        },
        {
          "name": "model",
          "type": "string",
          "usage": "Model profile name"
        },
        {
          "name": "to",
          "type": "string",
          "usage": "Target command"
        },
        {
          "name": "via",
          "type": "string",
          "usage": "Optional intermediate intent schema"
        }
      ]
    },
    {
      "id": "cmd-agent-auth",
      "path": "agent auth",
      "name": "auth",
      "short": "Show local agent auth state",
      "long": "The agent CLI does not own provider credentials. Provider CLIs such as gmail, gcal, gdrive, msdrive, mscal, slack, and notion handle their own auth. Configure model backends with agent model.",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "",
      "flags": []
    },
    {
      "id": "cmd-agent-auth-login",
      "path": "agent auth login",
      "name": "login",
      "short": "No-op for local agent auth",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent auth login",
      "flags": []
    },
    {
      "id": "cmd-agent-auth-logout",
      "path": "agent auth logout",
      "name": "logout",
      "short": "No-op for local agent auth logout",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent auth logout\nagent auth logout --help",
      "flags": []
    },
    {
      "id": "cmd-agent-auth-refresh",
      "path": "agent auth refresh",
      "name": "refresh",
      "short": "No-op for local agent auth refresh",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent auth refresh",
      "flags": []
    },
    {
      "id": "cmd-agent-auth-status",
      "path": "agent auth status",
      "name": "status",
      "short": "Show local agent auth status",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent auth status\nagent auth status --json",
      "flags": []
    },
    {
      "id": "cmd-agent-auth-whoami",
      "path": "agent auth whoami",
      "name": "whoami",
      "short": "Show local agent model profile identity",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent auth whoami",
      "flags": []
    },
    {
      "id": "cmd-agent-capabilities",
      "path": "agent capabilities",
      "name": "capabilities",
      "short": "Describe agent CLI capabilities",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent capabilities\nagent capabilities --json\nagent capabilities --view full",
      "flags": []
    },
    {
      "id": "cmd-agent-doctor",
      "path": "agent doctor",
      "name": "doctor",
      "short": "Run agent CLI diagnostics",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent doctor\nagent doctor --view full",
      "flags": []
    },
    {
      "id": "cmd-agent-explain",
      "path": "agent explain",
      "name": "explain",
      "short": "Explain how stdin could map to a target schema",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent explain\ngmail message get m1 --jsonl | agent explain --to 'gcal event create'\ngmail message get m1 --jsonl | agent explain --to 'gcal event create' --via intent.meeting_request.v1 --json\ngmail message get m1 --jsonl | agent explain --to intent.task.v1",
      "flags": [
        {
          "name": "model",
          "type": "string",
          "usage": "Model profile name"
        },
        {
          "name": "to",
          "type": "string",
          "usage": "Target command"
        },
        {
          "name": "via",
          "type": "string",
          "usage": "Optional intermediate intent schema"
        }
      ]
    },
    {
      "id": "cmd-agent-login",
      "path": "agent login",
      "name": "login",
      "short": "No-op for local agent auth",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent auth login\nagent login",
      "flags": []
    },
    {
      "id": "cmd-agent-logout",
      "path": "agent logout",
      "name": "logout",
      "short": "No-op for local agent auth logout",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent auth logout\nagent logout",
      "flags": []
    },
    {
      "id": "cmd-agent-model",
      "path": "agent model",
      "name": "model",
      "short": "Manage model execution profiles",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent model add local\n  agent model add local --provider ollama --model qwen3.5:2b\n  agent model add work-openai --provider openai --model <model>\n  agent model use local\n  agent model list",
      "flags": []
    },
    {
      "id": "cmd-agent-model-add",
      "path": "agent model add",
      "name": "add",
      "short": "Add or update a model execution profile",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent model add --help\nagent model add gateway --provider custom --protocol openai-chat --base-url https://llm-gateway.example.com/v1 --model <model> --api-key-stdin\nagent model add local\nagent model add local --provider ollama --model qwen3.5:2b\nagent model add work-openai --provider openai --model <model>",
      "flags": [
        {
          "name": "api-key-stdin",
          "type": "bool",
          "usage": "Read API key from stdin"
        },
        {
          "name": "base-url",
          "type": "string",
          "usage": "Model endpoint base URL"
        },
        {
          "name": "model",
          "type": "string",
          "usage": "Provider model name"
        },
        {
          "name": "protocol",
          "type": "string",
          "usage": "Model protocol override"
        },
        {
          "name": "provider",
          "type": "string",
          "usage": "Model provider: ollama|openai|anthropic|claude|gemini|custom"
        },
        {
          "name": "structured-output",
          "type": "bool",
          "default": "true",
          "usage": "Backend supports structured JSON output"
        }
      ]
    },
    {
      "id": "cmd-agent-model-list",
      "path": "agent model list",
      "name": "list",
      "short": "List model execution profiles",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent model list\nagent model list --json\nagent model list --view full",
      "flags": []
    },
    {
      "id": "cmd-agent-model-remove",
      "path": "agent model remove",
      "name": "remove",
      "short": "Remove a model execution profile and its stored API key",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent model remove --help\nagent model remove local",
      "flags": []
    },
    {
      "id": "cmd-agent-model-show",
      "path": "agent model show",
      "name": "show",
      "short": "Show a model execution profile",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent model show\nagent model show local --json",
      "flags": []
    },
    {
      "id": "cmd-agent-model-test",
      "path": "agent model test",
      "name": "test",
      "short": "Test a model execution profile",
      "long": "",
      "mutates": false,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent model test\nagent model test local --json",
      "flags": []
    },
    {
      "id": "cmd-agent-model-use",
      "path": "agent model use",
      "name": "use",
      "short": "Set the default model execution profile",
      "long": "",
      "mutates": true,
      "safe_discovery": false,
      "supports_dry_run": false,
      "example": "agent model use --help\nagent model use local",
      "flags": []
    },
    {
      "id": "cmd-agent-resolve",
      "path": "agent resolve",
      "name": "resolve",
      "short": "Resolve an agent schema or command target",
      "long": "Resolve an intent schema id or a command target such as 'gcal event create'. This does not resolve item refs such as m1 or c1.",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent resolve\nagent resolve 'gcal event create'\nagent resolve 'gcal event create' --view full\nagent resolve gmail message get --view full\nagent resolve intent.contact.v1",
      "flags": []
    },
    {
      "id": "cmd-agent-schema",
      "path": "agent schema",
      "name": "schema",
      "short": "Show schema for a command or intent",
      "long": "Show schema for a command or intent.\n\nUse --to for command targets and intent schema ids. The --via flag is accepted\nas a compatibility alias for intent schema ids used with adapt/explain.",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent schema\nagent schema --to 'gcal event create' --in --json\nagent schema --to 'mscal event create' --in --json\nagent schema --to intent.contact.v1 --out --json\nagent schema --via intent.crm_activity.v1 --out --json\nagent schema gcal event create --in --json",
      "flags": [
        {
          "name": "in",
          "type": "bool",
          "usage": "Show input schema"
        },
        {
          "name": "out",
          "type": "bool",
          "usage": "Show output schema"
        },
        {
          "name": "to",
          "type": "string",
          "usage": "Target command"
        },
        {
          "name": "via",
          "type": "string",
          "usage": "Intent schema id alias for --to"
        }
      ]
    },
    {
      "id": "cmd-agent-validate",
      "path": "agent validate",
      "name": "validate",
      "short": "Validate stdin against a target or intent schema",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent validate\ncat event.json | agent validate --to 'gcal event create'\ncat task.json | agent validate --schema intent.task.v1\ngmail message get m1 --jsonl | agent validate --schema intent.note.v1",
      "flags": [
        {
          "name": "schema",
          "type": "string",
          "usage": "Intent schema id"
        },
        {
          "name": "to",
          "type": "string",
          "usage": "Target command"
        }
      ]
    },
    {
      "id": "cmd-agent-version",
      "path": "agent version",
      "name": "version",
      "short": "Show agent version information",
      "long": "",
      "mutates": false,
      "safe_discovery": true,
      "supports_dry_run": false,
      "example": "agent version\nagent version --json\nagent version --view full",
      "flags": []
    }
  ]
}
