{
  "key": "full-example",
  "description": "Argsbarg CLI copy template (MCP, HTTP, configure, skills; no schemagen)",
  "commands": [
    {
      "key": "echo",
      "description": "Echo a message (MCP-friendly leaf).",
      "options": [
        {
          "name": "message",
          "description": "Text to print.",
          "kind": "string",
          "required": true
        }
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Text to print."
          }
        },
        "additionalProperties": false,
        "required": [
          "message"
        ]
      },
      "commands": [
        {
          "key": "version",
          "description": "Print the program version."
        },
        {
          "key": "configure",
          "description": "Set up MCP config for this app (binary via Homebrew).",
          "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew installs the binary and shell completions only. Agent artifacts live under ~/.agents and are not written during brew install.\n\nAfter install or upgrade:\n  full-example configure install\n\nUpgrade:\n  brew upgrade full-example\n  full-example configure install\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n  full-example configure status\n\nUninstall:\n  full-example configure uninstall\n  brew uninstall <tap>/full-example\n\nUse `configure status --json` for machine-readable output.",
          "commands": [
            {
              "key": "install",
              "description": "Install agent artifacts and bootstrap app config."
            },
            {
              "key": "uninstall",
              "description": "Remove agent artifacts and app config.",
              "options": [
                {
                  "name": "yes",
                  "description": "Skip uninstall confirmation.",
                  "kind": "presence",
                  "shortName": "y"
                }
              ]
            },
            {
              "key": "status",
              "description": "Print what is currently installed (read-only).",
              "options": [
                {
                  "name": "json",
                  "description": "Print status JSON on stdout.",
                  "kind": "presence"
                }
              ]
            }
          ]
        },
        {
          "key": "docs",
          "description": "Print bundled CLI documentation.",
          "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
          "options": [
            {
              "name": "save",
              "description": "Write documentation to ./docs/.",
              "kind": "presence"
            }
          ],
          "commands": [
            {
              "key": "readme",
              "description": "Print README (user guide).",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "mcp",
              "description": "Print MCP server setup and tool guidance.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "http",
              "description": "Print HTTP API setup and tool guidance.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "openapi",
              "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "cli-schema",
              "description": "Print the full CLI command tree as JSON.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "cli",
              "description": "Print the full command reference as markdown.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            }
          ]
        },
        {
          "key": "mcp",
          "description": "MCP server and bundle tools.",
          "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n  command: full-example\n  args: mcp\n\nOr:\n\n  full-example configure\n\nFull setup guide: full-example docs mcp",
          "options": [
            {
              "name": "obscure-errors",
              "description": "Hide unexpected errors from clients.",
              "kind": "presence"
            },
            {
              "name": "log-format",
              "description": "Log format: json (ECS Logging) or text.",
              "kind": "enum",
              "choices": [
                "json",
                "text"
              ]
            },
            {
              "name": "log-file",
              "description": "Append logs to this file (relative → app config dir).",
              "kind": "string"
            },
            {
              "name": "dev",
              "description": "Print full stacks to stderr on errors.",
              "kind": "presence"
            }
          ],
          "fallbackCommand": "serve",
          "fallbackMode": "missingOnly",
          "commands": [
            {
              "key": "bundle",
              "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
            }
          ]
        },
        {
          "key": "http",
          "description": "HTTP API server for tools.",
          "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health/liveness, GET /health/readiness, GET /openapi.json, GET /swagger, /*\n\nConfigure app settings:\n\n  full-example configure\n\nFull setup guide: full-example docs http",
          "options": [
            {
              "name": "host",
              "description": "Listen host.",
              "kind": "string"
            },
            {
              "name": "port",
              "description": "Listen port.",
              "kind": "number"
            },
            {
              "name": "trust-proxy",
              "description": "Honor X-Forwarded-For for client IP.",
              "kind": "presence"
            },
            {
              "name": "obscure-errors",
              "description": "Hide unexpected errors from clients.",
              "kind": "presence"
            },
            {
              "name": "log-format",
              "description": "Log format: json (ECS Logging) or text.",
              "kind": "enum",
              "choices": [
                "json",
                "text"
              ]
            },
            {
              "name": "log-file",
              "description": "Append logs to this file (relative → app config dir).",
              "kind": "string"
            },
            {
              "name": "no-access-log",
              "description": "Disable HTTP access logs.",
              "kind": "presence"
            },
            {
              "name": "dev",
              "description": "Print full stacks to stderr on errors.",
              "kind": "presence"
            }
          ],
          "fallbackCommand": "serve",
          "fallbackMode": "missingOnly"
        }
      ]
    },
    {
      "key": "status",
      "description": "Show app version.",
      "options": [
        {
          "name": "json",
          "description": "Emit JSON.",
          "kind": "presence"
        }
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "commands": [
        {
          "key": "version",
          "description": "Print the program version."
        },
        {
          "key": "configure",
          "description": "Set up MCP config for this app (binary via Homebrew).",
          "notes": "Set up agent artifacts after the binary is installed via Homebrew (see README for tap install).\n\nHomebrew installs the binary and shell completions only. Agent artifacts live under ~/.agents and are not written during brew install.\n\nAfter install or upgrade:\n  full-example configure install\n\nUpgrade:\n  brew upgrade full-example\n  full-example configure install\n\nShell completions are installed by Homebrew during brew install.\nSee: https://docs.brew.sh/Shell-Completion\n\nSee what is installed:\n  full-example configure status\n\nUninstall:\n  full-example configure uninstall\n  brew uninstall <tap>/full-example\n\nUse `configure status --json` for machine-readable output.",
          "commands": [
            {
              "key": "install",
              "description": "Install agent artifacts and bootstrap app config."
            },
            {
              "key": "uninstall",
              "description": "Remove agent artifacts and app config.",
              "options": [
                {
                  "name": "yes",
                  "description": "Skip uninstall confirmation.",
                  "kind": "presence",
                  "shortName": "y"
                }
              ]
            },
            {
              "key": "status",
              "description": "Print what is currently installed (read-only).",
              "options": [
                {
                  "name": "json",
                  "description": "Print status JSON on stdout.",
                  "kind": "presence"
                }
              ]
            }
          ]
        },
        {
          "key": "docs",
          "description": "Print bundled CLI documentation.",
          "notes": "Topics print to stdout. Add --save to write files under ./docs/.",
          "options": [
            {
              "name": "save",
              "description": "Write documentation to ./docs/.",
              "kind": "presence"
            }
          ],
          "commands": [
            {
              "key": "readme",
              "description": "Print README (user guide).",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "mcp",
              "description": "Print MCP server setup and tool guidance.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "http",
              "description": "Print HTTP API setup and tool guidance.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "openapi",
              "description": "Print the HTTP OpenAPI 3.1 document as JSON.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "cli-schema",
              "description": "Print the full CLI command tree as JSON.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            },
            {
              "key": "cli",
              "description": "Print the full command reference as markdown.",
              "options": [
                {
                  "name": "save",
                  "description": "Write documentation to ./docs/.",
                  "kind": "presence"
                }
              ]
            }
          ]
        },
        {
          "key": "mcp",
          "description": "MCP server and bundle tools.",
          "notes": "Stdio MCP server. Add to Cursor, Claude Code, or Claude Desktop:\n\n  command: full-example\n  args: mcp\n\nOr:\n\n  full-example configure\n\nFull setup guide: full-example docs mcp",
          "options": [
            {
              "name": "obscure-errors",
              "description": "Hide unexpected errors from clients.",
              "kind": "presence"
            },
            {
              "name": "log-format",
              "description": "Log format: json (ECS Logging) or text.",
              "kind": "enum",
              "choices": [
                "json",
                "text"
              ]
            },
            {
              "name": "log-file",
              "description": "Append logs to this file (relative → app config dir).",
              "kind": "string"
            },
            {
              "name": "dev",
              "description": "Print full stacks to stderr on errors.",
              "kind": "presence"
            }
          ],
          "fallbackCommand": "serve",
          "fallbackMode": "missingOnly",
          "commands": [
            {
              "key": "bundle",
              "description": "Pack dist MCP artifacts (`.mcpb`, Claude Code plugin zip) from dist/<key>."
            }
          ]
        },
        {
          "key": "http",
          "description": "HTTP API server for tools.",
          "notes": "HTTP tool server on http://127.0.0.1:3000.\n\nEndpoints: GET /health/liveness, GET /health/readiness, GET /openapi.json, GET /swagger, /*\n\nConfigure app settings:\n\n  full-example configure\n\nFull setup guide: full-example docs http",
          "options": [
            {
              "name": "host",
              "description": "Listen host.",
              "kind": "string"
            },
            {
              "name": "port",
              "description": "Listen port.",
              "kind": "number"
            },
            {
              "name": "trust-proxy",
              "description": "Honor X-Forwarded-For for client IP.",
              "kind": "presence"
            },
            {
              "name": "obscure-errors",
              "description": "Hide unexpected errors from clients.",
              "kind": "presence"
            },
            {
              "name": "log-format",
              "description": "Log format: json (ECS Logging) or text.",
              "kind": "enum",
              "choices": [
                "json",
                "text"
              ]
            },
            {
              "name": "log-file",
              "description": "Append logs to this file (relative → app config dir).",
              "kind": "string"
            },
            {
              "name": "no-access-log",
              "description": "Disable HTTP access logs.",
              "kind": "presence"
            },
            {
              "name": "dev",
              "description": "Print full stacks to stderr on errors.",
              "kind": "presence"
            }
          ],
          "fallbackCommand": "serve",
          "fallbackMode": "missingOnly"
        }
      ]
    }
  ]
}
