{
  "id": "gptme",
  "name": "gptme",
  "homepage": "https://gptme.org/docs/",
  "description": "AI assistant in your terminal",
  "executables": [
    "gptme"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/gptme/config.toml"
    ],
    "secret": [
      "[configHome]/gptme/config.local.toml",
      "[configHome]/gptme/credentials.toml"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Chat with gptme",
    "description": "Start or resume a gptme conversation, optionally non-interactive. Sub-commands such as gptme-util, server and agent tools, and context-budget options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": true
    },
    "source": [
      {
        "id": "src",
        "kind": "help",
        "url": "https://github.com/gptme/gptme/blob/master/gptme/cli/main.py",
        "revision": "master 2026-10-27",
        "evidence": "\"--name\",\nhelp=\"Conversation ID (used to resume). Defaults to a random name.\",\n\"-m\",\n\"--model\",\nhelp=\"Model to use, e.g. {model_examples}. If only provider given then a default is used.\",\n\"-w\",\n\"--workspace\",\nhelp=\"Path to workspace directory, or '@log' to use the log directory.\",\n\"-r\",\n\"--resume\",\nhelp=\"Load the most recent conversation in this workspace. Use --name ID to select one.\",\n\"-y\",\n\"--no-confirm\",\nhelp=\"Skip all confirmation prompts.\",\n\"-n\",\n\"--non-interactive\",\nhelp=\"Non-interactive mode. Implies --no-confirm.\",\n\"--output-format\",\ntype=click.Choice([\"text\", \"json\"]),\nhelp=\"Output format for non-interactive mode. 'json' emits one JSON object per line on stdout.\",\n\"-t\",\n\"--tools\",\n\"-v\",\n\"--verbose\",\n\"--no-workspace\",\nhelp=\"Skip all workspace context (prompt files and context_cmd). Tools and agent config are still included.\",\n"
      }
    ],
    "field": [
      {
        "id": "prompts",
        "label": "Prompt and context files",
        "description": "Words become the first prompt; existing file paths are added as context.",
        "type": "string",
        "position": 0,
        "multiple": true,
        "sources": [
          "src"
        ]
      },
      {
        "id": "model",
        "label": "Model",
        "description": "For example anthropic/claude-sonnet-4-5 or just a provider name.",
        "type": "string",
        "option": [
          "--model",
          "-m"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "workspace",
        "label": "Workspace directory",
        "type": "path",
        "option": [
          "--workspace",
          "-w"
        ],
        "path": {
          "kind": "directory",
          "role": "input",
          "must_exist": true
        },
        "sources": [
          "src"
        ]
      },
      {
        "id": "resume",
        "label": "Resume most recent conversation",
        "type": "boolean",
        "option": [
          "--resume",
          "-r"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "name",
        "label": "Conversation name",
        "type": "string",
        "option": [
          "--name"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "non_interactive",
        "label": "Non-interactive",
        "description": "Run the prompt to completion without asking questions; implies skipping confirmations.",
        "type": "boolean",
        "option": [
          "--non-interactive",
          "-n"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "no_confirm",
        "label": "Skip confirmation prompts",
        "description": "Lets tools run without asking first.",
        "type": "boolean",
        "option": [
          "--no-confirm",
          "-y"
        ],
        "effect": "exec",
        "sources": [
          "src"
        ]
      },
      {
        "id": "output_format",
        "label": "Output format (non-interactive)",
        "type": "enum",
        "option": [
          "--output-format"
        ],
        "choices": [
          {
            "value": "text",
            "label": "Text"
          },
          {
            "value": "json",
            "label": "JSON lines"
          }
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "tools",
        "label": "Allowed tools",
        "description": "Comma-separated tool names to allow.",
        "type": "string",
        "option": [
          "--tools",
          "-t"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "no_workspace",
        "label": "Skip workspace context",
        "type": "boolean",
        "option": [
          "--no-workspace"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbose",
        "type": "boolean",
        "option": [
          "--verbose",
          "-v"
        ],
        "sources": [
          "src"
        ]
      }
    ],
    "task": [
      {
        "id": "chat",
        "label": "Start a chat",
        "fields": [
          "prompts",
          "model",
          "workspace"
        ],
        "required": []
      },
      {
        "id": "one-shot",
        "label": "One-shot, non-interactive run",
        "set": {
          "non_interactive": [
            true
          ]
        },
        "lock": [
          "non_interactive"
        ],
        "fields": [
          "prompts",
          "model",
          "workspace",
          "output_format",
          "tools"
        ],
        "required": [
          "prompts"
        ]
      },
      {
        "id": "resume",
        "label": "Resume last conversation",
        "set": {
          "resume": [
            true
          ]
        },
        "lock": [
          "resume"
        ],
        "fields": [
          "resume",
          "workspace"
        ],
        "required": []
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "prompts",
          "model",
          "workspace",
          "resume",
          "non_interactive"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "name",
          "no_confirm",
          "output_format",
          "tools",
          "no_workspace",
          "verbose"
        ]
      }
    ]
  }
}
