{
  "id": "dolt",
  "name": "Dolt",
  "homepage": "https://www.dolthub.com",
  "description": "Dolt is Git for data.",
  "executables": [
    "dolt"
  ],
  "dotfiles": {
    "paths": [
      "~/.dolt/config_global.json",
      "~/.dolt/config.json"
    ],
    "secret": [
      "~/.dolt/creds/"
    ],
    "secret_paths": [
      {
        "file": "~/.dolt/config_global.json",
        "format": "json",
        "match": {
          "key_path": [
            "*.password",
            "profiles.*.password"
          ]
        }
      },
      {
        "file": "~/.dolt/config.json",
        "format": "json",
        "match": {
          "key_path": [
            "*.password",
            "profiles.*.password"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Dolt",
    "description": "Common Dolt jobs: clone a database, run SQL, commit and read the log. Remotes, branches, merges and the SQL server are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "clone"
        ],
        "label": "Clone a database",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://docs.dolthub.com/cli-reference/cli",
            "revision": "2026-10-27",
            "evidence": "dolt clone [-remote <remote>] [-branch <branch>]  [--aws-region <region>] [--aws-creds-type <creds-type>] [--aws-creds-file <file>] [--aws-creds-profile <profile>] <remote-url> <new-dir>\n-b, --branch:\nThe branch to be cloned. If not specified all branches will be cloned.\n--depth:\nClone a single branch and limit history to the given commit depth.\n-u, --user:\nUser name to use when authenticating with the remote. Gets password from the environment variable DOLT_REMOTE_PASSWORD.\n--single-branch:\nClone only the history leading to the tip of a single branch, either specified by —branch or the remote's HEAD (default).\n"
          }
        ],
        "field": [
          {
            "id": "remote_url",
            "label": "Remote URL",
            "description": "For example dolthub/repository or a file:// URL.",
            "type": "string",
            "position": 0,
            "min": 1,
            "sources": [
              "help"
            ]
          },
          {
            "id": "new_dir",
            "label": "New directory",
            "description": "Defaults to the repository name.",
            "type": "path",
            "position": 1,
            "path": {
              "kind": "directory",
              "role": "output",
              "must_exist": false
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "branch",
            "label": "Branch",
            "type": "string",
            "option": [
              "--branch",
              "-b"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "depth",
            "label": "History depth",
            "type": "integer",
            "option": [
              "--depth"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "single_branch",
            "label": "Single branch only",
            "type": "boolean",
            "option": [
              "--single-branch"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "user",
            "label": "User",
            "type": "string",
            "option": [
              "--user",
              "-u"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "clone",
            "label": "Clone",
            "fields": [
              "remote_url",
              "new_dir",
              "branch",
              "depth"
            ],
            "required": [
              "remote_url"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "remote_url",
              "new_dir",
              "branch",
              "depth"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "single_branch",
              "user"
            ]
          }
        ]
      },
      {
        "path": [
          "sql"
        ],
        "label": "Run SQL",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://docs.dolthub.com/cli-reference/cli",
            "revision": "2026-10-27",
            "evidence": "dolt sql\ndolt sql < script.sql\ndolt sql -q <query> [-r <result format>] [-s <name> -m <message>] [-b]\n-q, --query:\nRuns a single query and exits.\n-r, --result-format:\nHow to format result output. Valid values are tabular, csv, json, vertical, and parquet. Defaults to tabular.\n-s, --save:\nUsed with —query, save the query to the query catalog with the name provided.\n-x, --execute:\nExecutes a saved query with the given name.\n-l, --list-saved:\nList all saved queries.\n-m, --message:\nUsed with —query and —save, saves the query with the descriptive message given.\n-c, --continue:\nContinue running queries on an error. Used for batch mode only.\n-f, --file:\nExecute statements from the file given.\n"
          }
        ],
        "field": [
          {
            "id": "query",
            "label": "Query",
            "description": "Runs a single query and exits. Leave empty for the interactive shell.",
            "type": "string",
            "option": [
              "--query",
              "-q"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "file",
            "label": "SQL file",
            "description": "Execute statements from this file.",
            "type": "path",
            "option": [
              "--file",
              "-f"
            ],
            "path": {
              "kind": "file",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "help"
            ]
          },
          {
            "id": "result_format",
            "label": "Result format",
            "type": "enum",
            "option": [
              "--result-format",
              "-r"
            ],
            "choices": [
              {
                "value": "tabular",
                "label": "tabular"
              },
              {
                "value": "csv",
                "label": "csv"
              },
              {
                "value": "json",
                "label": "json"
              },
              {
                "value": "vertical",
                "label": "vertical"
              },
              {
                "value": "parquet",
                "label": "parquet"
              }
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "save",
            "label": "Save query as",
            "description": "Used with a query: save it in the query catalog under this name.",
            "type": "string",
            "option": [
              "--save",
              "-s"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "message",
            "label": "Saved query description",
            "type": "string",
            "option": [
              "--message",
              "-m"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "execute",
            "label": "Run saved query",
            "type": "string",
            "option": [
              "--execute",
              "-x"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "list_saved",
            "label": "List saved queries",
            "type": "boolean",
            "option": [
              "--list-saved",
              "-l"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "continue_on_error",
            "label": "Continue on error",
            "type": "boolean",
            "option": [
              "--continue",
              "-c"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "query",
            "label": "Run a query",
            "fields": [
              "query",
              "result_format"
            ],
            "required": [
              "query"
            ]
          },
          {
            "id": "script",
            "label": "Run a script",
            "fields": [
              "file",
              "continue_on_error"
            ],
            "required": [
              "file"
            ]
          },
          {
            "id": "shell",
            "label": "Interactive shell",
            "fields": [],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "query",
              "file",
              "result_format",
              "list_saved"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "save",
              "message",
              "execute",
              "continue_on_error"
            ]
          }
        ]
      },
      {
        "path": [
          "commit"
        ],
        "label": "Commit staged changes",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://docs.dolthub.com/cli-reference/cli",
            "revision": "2026-10-27",
            "evidence": "dolt commit [options]\n-m, --message:\nUse the given <msg> as the commit message.\n--allow-empty:\nAllow recording a commit that has the exact same data as its sole parent.\n--skip-empty:\nOnly create a commit if there are staged changes.\n--date:\nSpecify the date used in the commit. If not specified the current system time is used.\n-f, --force:\nIgnores any foreign key warnings and proceeds with the commit.\n--author:\nSpecify an explicit author using the standard A U Thor <author@example.com> format.\n-a, --all:\nAdds all existing, changed tables (but not new tables) in the working set to the staged set.\n-A, --ALL:\nAdds all tables and databases (including new tables) in the working set to the staged set.\n--amend:\nAmend previous commit\n"
          }
        ],
        "field": [
          {
            "id": "message",
            "label": "Message",
            "type": "string",
            "option": [
              "--message",
              "-m"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "all",
            "label": "Stage changed tables",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "all_new",
            "label": "Stage all tables including new",
            "type": "boolean",
            "option": [
              "--ALL",
              "-A"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "skip_empty",
            "label": "Skip when nothing staged",
            "type": "boolean",
            "option": [
              "--skip-empty"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "allow_empty",
            "label": "Allow empty commit",
            "type": "boolean",
            "option": [
              "--allow-empty"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "amend",
            "label": "Amend previous commit",
            "type": "boolean",
            "option": [
              "--amend"
            ],
            "effect": "overwrite",
            "sources": [
              "help"
            ]
          },
          {
            "id": "author",
            "label": "Author",
            "description": "A U Thor <author@example.com>",
            "type": "string",
            "option": [
              "--author"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "date",
            "label": "Date",
            "description": "YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS.",
            "type": "string",
            "option": [
              "--date"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "force",
            "label": "Ignore foreign key warnings",
            "type": "boolean",
            "option": [
              "--force",
              "-f"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "commit",
            "label": "Commit",
            "fields": [
              "message",
              "all"
            ],
            "required": [
              "message"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "message",
              "all",
              "all_new",
              "skip_empty"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "allow_empty",
              "amend",
              "author",
              "date",
              "force"
            ]
          }
        ]
      },
      {
        "path": [
          "log"
        ],
        "label": "Show commit log",
        "source": [
          {
            "id": "help",
            "kind": "manual",
            "url": "https://docs.dolthub.com/cli-reference/cli",
            "revision": "2026-10-27",
            "evidence": "dolt log [-n <num_commits>] [<revision-range>] [[--] <table>]\n-n, --number:\nLimit the number of commits to output.\n--merges:\nEquivalent to min-parents == 2, this will limit the log to commits with 2 or more parents.\n--parents:\nShows all parents of each commit in the log.\n--all:\nAutomatically select every branch in database\n--oneline:\nShows logs in a compact format.\n--stat:\nShows the diffstat for each commit.\n--graph:\nShows the commit graph.\n"
          }
        ],
        "field": [
          {
            "id": "revisions",
            "label": "Revisions",
            "description": "Revision or revision range; defaults to HEAD.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "help"
            ]
          },
          {
            "id": "number",
            "label": "Number of commits",
            "type": "integer",
            "option": [
              "--number",
              "-n"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "oneline",
            "label": "Compact format",
            "type": "boolean",
            "option": [
              "--oneline"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "graph",
            "label": "Commit graph",
            "type": "boolean",
            "option": [
              "--graph"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "stat",
            "label": "Diffstat per commit",
            "type": "boolean",
            "option": [
              "--stat"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "merges",
            "label": "Merge commits only",
            "type": "boolean",
            "option": [
              "--merges"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "parents",
            "label": "Show parents",
            "type": "boolean",
            "option": [
              "--parents"
            ],
            "sources": [
              "help"
            ]
          },
          {
            "id": "all",
            "label": "All branches",
            "type": "boolean",
            "option": [
              "--all"
            ],
            "sources": [
              "help"
            ]
          }
        ],
        "task": [
          {
            "id": "recent",
            "label": "Recent commits",
            "fields": [
              "number",
              "oneline"
            ],
            "required": [],
            "set": {
              "number": [
                10
              ],
              "oneline": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "revisions",
              "number",
              "oneline",
              "graph"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "stat",
              "merges",
              "parents",
              "all"
            ]
          }
        ]
      }
    ]
  }
}
