{
  "name": "supabase",
  "description": "Supabase CLI",
  "subcommands": [
    {
      "name": "completion",
      "description": "Generate the autocompletion script for the specified shell",
      "subcommands": [
        {
          "name": "bash",
          "description": "Generate the autocompletion script for bash",
          "options": [
            {
              "names": [
                "--no-descriptions"
              ],
              "description": "Disable completion descriptions"
            }
          ]
        },
        {
          "name": "fish",
          "description": "Generate the autocompletion script for fish",
          "options": [
            {
              "names": [
                "--no-descriptions"
              ],
              "description": "Disable completion descriptions"
            }
          ]
        },
        {
          "name": "powershell",
          "description": "Generate the autocompletion script for powershell",
          "options": [
            {
              "names": [
                "--no-descriptions"
              ],
              "description": "Disable completion descriptions"
            }
          ]
        },
        {
          "name": "zsh",
          "description": "Generate the autocompletion script for zsh",
          "options": [
            {
              "names": [
                "--no-descriptions"
              ],
              "description": "Disable completion descriptions"
            }
          ]
        }
      ]
    },
    {
      "name": "db",
      "description": "Manage local Postgres databases",
      "subcommands": [
        {
          "name": "branch",
          "description": "Manage local database branches",
          "subcommands": [
            {
              "name": "create",
              "description": "Create a branch"
            },
            {
              "name": "delete",
              "description": "Delete a branch"
            },
            {
              "name": "list",
              "description": "List branches"
            },
            {
              "name": "switch",
              "description": "Switch the active branch"
            }
          ]
        },
        {
          "name": "diff",
          "description": "Diffs the local database for schema changes",
          "options": [
            {
              "names": [
                "--file",
                "-f"
              ],
              "description": "Saves schema diff to a file",
              "takes_arg": true,
              "arg": {
                "name": "file",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--schema",
                "-s"
              ],
              "description": "List of schema to include",
              "takes_arg": true,
              "arg": {
                "name": "schema"
              }
            },
            {
              "names": [
                "--use-migra"
              ],
              "description": "Use migra to generate schema diff"
            }
          ]
        },
        {
          "name": "dump",
          "description": "Dumps data or schemas from the remote database",
          "options": [
            {
              "names": [
                "--data-only"
              ],
              "description": "Dumps only data records"
            },
            {
              "names": [
                "--db-url"
              ],
              "description": "Dumps from the database specified by the connection string (must be percent-encoded)",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--dry-run"
              ],
              "description": "Prints the pg_dump script that would be executed"
            },
            {
              "names": [
                "--file",
                "-f"
              ],
              "description": "File path to save the dumped contents",
              "takes_arg": true,
              "arg": {
                "name": "string",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "-h",
                "--help"
              ],
              "description": "Help for dump"
            },
            {
              "names": [
                "--keep-comments"
              ],
              "description": "Keeps commented lines from pg_dump output"
            },
            {
              "names": [
                "--linked"
              ],
              "description": "Dumps from the linked project. (default true)"
            },
            {
              "names": [
                "--local"
              ],
              "description": "Dumps from the local database"
            },
            {
              "names": [
                "--password",
                "-p"
              ],
              "description": "Password to your remote Postgres database",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--role-only"
              ],
              "description": "Dumps only cluster roles"
            },
            {
              "names": [
                "--schema",
                "-s"
              ],
              "description": "Comma separated list of schema to include. (default all)",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--use-copy"
              ],
              "description": "Uses copy statements in place of inserts"
            }
          ]
        },
        {
          "name": "lint",
          "description": "Checks local database for typing error",
          "options": [
            {
              "names": [
                "--level"
              ],
              "description": "Error level to emit",
              "takes_arg": true,
              "arg": {
                "name": "level"
              }
            },
            {
              "names": [
                "--schema",
                "-s"
              ],
              "description": "List of schema to include",
              "takes_arg": true,
              "arg": {
                "name": "schema"
              }
            }
          ]
        },
        {
          "name": "pull",
          "description": "Pull schema from the remote database"
        },
        {
          "name": "push",
          "description": "Push new migrations to the remote database",
          "options": [
            {
              "names": [
                "--dry-run"
              ],
              "description": "Print the migrations that would be applied, but don't actually apply them"
            },
            {
              "names": [
                "--password",
                "-p"
              ],
              "description": "Password to your remote Postgres database",
              "takes_arg": true,
              "arg": {
                "name": "password"
              }
            }
          ]
        },
        {
          "name": "remote",
          "description": "Manage remote databases",
          "subcommands": [
            {
              "name": "changes",
              "description": "Show changes on the remote database"
            },
            {
              "name": "commit",
              "description": "Commit remote changes as a new migration"
            }
          ],
          "options": [
            {
              "names": [
                "--password",
                "-p"
              ],
              "description": "Password to your remote Postgres database",
              "takes_arg": true,
              "arg": {
                "name": "password"
              }
            }
          ]
        },
        {
          "name": "reset",
          "description": "Resets the local database to current migrations"
        }
      ]
    },
    {
      "name": "functions",
      "description": "Manage Supabase Edge functions",
      "subcommands": [
        {
          "name": "delete",
          "description": "Delete a Function from Supabase",
          "options": [
            {
              "names": [
                "--project-ref"
              ],
              "description": "Project ref of the Supabase project",
              "takes_arg": true,
              "arg": {
                "name": "project-ref"
              }
            }
          ]
        },
        {
          "name": "deploy",
          "description": "Deploy a Function to Supabase",
          "options": [
            {
              "names": [
                "--no-verify-jwt"
              ],
              "description": "Disable JWT verification for the Function"
            },
            {
              "names": [
                "--project-ref"
              ],
              "description": "Project ref of the Supabase project",
              "takes_arg": true,
              "arg": {
                "name": "project-ref"
              }
            }
          ]
        },
        {
          "name": "new",
          "description": "Create a new Function locally"
        },
        {
          "name": "serve",
          "description": "Serve a Function locally",
          "options": [
            {
              "names": [
                "--env-file"
              ],
              "description": "Path to an env file to be populated to the Function environment",
              "takes_arg": true,
              "arg": {
                "name": "env-file",
                "template": "filepaths"
              }
            },
            {
              "names": [
                "--no-verify-jwt"
              ],
              "description": "Disable JWT verification for the Function"
            }
          ]
        }
      ]
    },
    {
      "name": "gen",
      "description": "Run code generation tools",
      "subcommands": [
        {
          "name": "types",
          "description": "Generate types from Postgres schema",
          "subcommands": [
            {
              "name": "typescript",
              "description": "Generate types for TypeScript",
              "options": [
                {
                  "names": [
                    "--db-url"
                  ],
                  "description": "Generate types from a database url",
                  "takes_arg": true,
                  "arg": {
                    "name": "db-url"
                  }
                },
                {
                  "names": [
                    "--local"
                  ],
                  "description": "Generate types from the local dev database"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "init",
      "description": "Initialize a local project"
    },
    {
      "name": "link",
      "description": "Link to a Supabase project",
      "options": [
        {
          "names": [
            "--password",
            "-p"
          ],
          "description": "Password to your remote Postgres database",
          "takes_arg": true,
          "arg": {
            "name": "password"
          }
        },
        {
          "names": [
            "--project-ref"
          ],
          "description": "Project ref of the Supabase project",
          "takes_arg": true,
          "arg": {
            "name": "project-ref"
          },
          "is_required": true
        }
      ]
    },
    {
      "name": "login",
      "description": "Authenticate using an access token"
    },
    {
      "name": "migration",
      "description": "Manage database migration scripts",
      "subcommands": [
        {
          "name": "list",
          "description": "List local and remote migrations",
          "options": [
            {
              "names": [
                "--password",
                "-p"
              ],
              "description": "Password to your remote Postgres database",
              "takes_arg": true,
              "arg": {
                "name": "password"
              }
            },
            {
              "names": [
                "--local"
              ],
              "description": "Lists migrations applied to the local database"
            },
            {
              "names": [
                "--linked"
              ],
              "description": "Lists migrations applied to the linked project (default true)"
            },
            {
              "names": [
                "--db-url"
              ],
              "description": "Database URL to connect to",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "new",
          "description": "Create an empty migration script",
          "args": [
            {
              "name": "migration name"
            }
          ]
        },
        {
          "name": "repair",
          "description": "Repair the migration history table",
          "options": [
            {
              "names": [
                "--status"
              ],
              "description": "Version status to update",
              "takes_arg": true,
              "arg": {
                "name": "status",
                "suggestions": [
                  "applied",
                  "reverted"
                ]
              }
            },
            {
              "names": [
                "--password",
                "-p"
              ],
              "description": "Password to your remote Postgres database",
              "takes_arg": true,
              "arg": {
                "name": "password"
              }
            },
            {
              "names": [
                "--local"
              ],
              "description": "Repairs the migration history of the local database"
            },
            {
              "names": [
                "--linked"
              ],
              "description": "Repairs the migration history of the linked project (default true)"
            },
            {
              "names": [
                "--db-url"
              ],
              "description": "Database URL to connect to",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ],
          "args": [
            {
              "name": "version"
            }
          ]
        },
        {
          "name": "squash",
          "description": "Squash migrations to a single file",
          "options": [
            {
              "names": [
                "--password",
                "-p"
              ],
              "description": "Password to your remote Postgres database",
              "takes_arg": true,
              "arg": {
                "name": "password"
              }
            },
            {
              "names": [
                "--local"
              ],
              "description": "Squashes the migration history of the local database"
            },
            {
              "names": [
                "--version"
              ],
              "description": "Squash up to the specified version",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            },
            {
              "names": [
                "--linked"
              ],
              "description": "Squashes the migration history of the linked project (default true)"
            },
            {
              "names": [
                "--db-url"
              ],
              "description": "Database URL to connect to",
              "takes_arg": true,
              "arg": {
                "name": "string"
              }
            }
          ]
        },
        {
          "name": "up",
          "description": "Apply pending migrations to local database"
        }
      ]
    },
    {
      "name": "orgs",
      "description": "Manage Supabase organizations",
      "subcommands": [
        {
          "name": "list",
          "description": "List all organizations"
        }
      ]
    },
    {
      "name": "projects",
      "description": "Manage Supabase projects",
      "subcommands": [
        {
          "name": "create",
          "description": "Create a project on Supabase",
          "options": [
            {
              "names": [
                "--db-password"
              ],
              "description": "Database password of the project",
              "takes_arg": true,
              "arg": {
                "name": "db-password"
              }
            },
            {
              "names": [
                "--interactive",
                "-i"
              ],
              "description": "Enables interactive mode"
            },
            {
              "names": [
                "--org-id"
              ],
              "description": "Organization ID to create the project in",
              "takes_arg": true,
              "arg": {
                "name": "org-id"
              }
            },
            {
              "names": [
                "--plan"
              ],
              "description": "Select a plan that suits your needs",
              "takes_arg": true,
              "arg": {
                "name": "plan"
              }
            },
            {
              "names": [
                "--region"
              ],
              "description": "Select a region close to you for the best performance",
              "takes_arg": true,
              "arg": {
                "name": "region"
              }
            }
          ]
        },
        {
          "name": "list",
          "description": "List all Supabase projects"
        }
      ]
    },
    {
      "name": "secrets",
      "description": "Manage Supabase secrets",
      "subcommands": [
        {
          "name": "list",
          "description": "List all secrets on Supabase"
        },
        {
          "name": "set",
          "description": "Set a secret(s) on Supabase",
          "options": [
            {
              "names": [
                "--env-file"
              ],
              "description": "Read secrets from a .env file",
              "takes_arg": true,
              "arg": {
                "name": "env-file",
                "template": "filepaths"
              }
            }
          ]
        },
        {
          "name": "unset",
          "description": "Unset a secret(s) on Supabase"
        }
      ]
    },
    {
      "name": "start",
      "description": "Start containers for Supabase local development"
    },
    {
      "name": "status",
      "description": "Show status of local Supabase containers"
    },
    {
      "name": "stop",
      "description": "Stop all local Supabase containers"
    },
    {
      "name": "help",
      "description": "Help about any command",
      "subcommands": [
        {
          "name": "completion",
          "description": "Generate the autocompletion script for the specified shell",
          "subcommands": [
            {
              "name": "bash",
              "description": "Generate the autocompletion script for bash"
            },
            {
              "name": "fish",
              "description": "Generate the autocompletion script for fish"
            },
            {
              "name": "powershell",
              "description": "Generate the autocompletion script for powershell"
            },
            {
              "name": "zsh",
              "description": "Generate the autocompletion script for zsh"
            }
          ]
        },
        {
          "name": "db",
          "description": "Manage local Postgres databases",
          "subcommands": [
            {
              "name": "branch",
              "description": "Manage local database branches",
              "subcommands": [
                {
                  "name": "create",
                  "description": "Create a branch"
                },
                {
                  "name": "delete",
                  "description": "Delete a branch"
                },
                {
                  "name": "list",
                  "description": "List branches"
                },
                {
                  "name": "switch",
                  "description": "Switch the active branch"
                }
              ]
            },
            {
              "name": "diff",
              "description": "Diffs the local database for schema changes"
            },
            {
              "name": "lint",
              "description": "Checks local database for typing error"
            },
            {
              "name": "push",
              "description": "Push new migrations to the remote database"
            },
            {
              "name": "remote",
              "description": "Manage remote databases",
              "subcommands": [
                {
                  "name": "changes",
                  "description": "Show changes on the remote database"
                },
                {
                  "name": "commit",
                  "description": "Commit remote changes as a new migration"
                }
              ]
            },
            {
              "name": "reset",
              "description": "Resets the local database to current migrations"
            }
          ]
        },
        {
          "name": "functions",
          "description": "Manage Supabase Edge functions",
          "subcommands": [
            {
              "name": "delete",
              "description": "Delete a Function from Supabase"
            },
            {
              "name": "deploy",
              "description": "Deploy a Function to Supabase"
            },
            {
              "name": "new",
              "description": "Create a new Function locally"
            },
            {
              "name": "serve",
              "description": "Serve a Function locally"
            }
          ]
        },
        {
          "name": "gen",
          "description": "Run code generation tools",
          "subcommands": [
            {
              "name": "types",
              "description": "Generate types from Postgres schema",
              "subcommands": [
                {
                  "name": "typescript",
                  "description": "Generate types for TypeScript"
                }
              ]
            }
          ]
        },
        {
          "name": "init",
          "description": "Initialize a local project"
        },
        {
          "name": "link",
          "description": "Link to a Supabase project"
        },
        {
          "name": "login",
          "description": "Authenticate using an access token"
        },
        {
          "name": "migration",
          "description": "Manage database migration scripts",
          "subcommands": [
            {
              "name": "list",
              "description": "List local and remote migrations"
            },
            {
              "name": "new",
              "description": "Create an empty migration script"
            }
          ]
        },
        {
          "name": "orgs",
          "description": "Manage Supabase organizations",
          "subcommands": [
            {
              "name": "list",
              "description": "List all organizations"
            }
          ]
        },
        {
          "name": "projects",
          "description": "Manage Supabase projects",
          "subcommands": [
            {
              "name": "create",
              "description": "Create a project on Supabase"
            },
            {
              "name": "list",
              "description": "List all Supabase projects"
            }
          ]
        },
        {
          "name": "secrets",
          "description": "Manage Supabase secrets",
          "subcommands": [
            {
              "name": "list",
              "description": "List all secrets on Supabase"
            },
            {
              "name": "set",
              "description": "Set a secret(s) on Supabase"
            },
            {
              "name": "unset",
              "description": "Unset a secret(s) on Supabase"
            }
          ]
        },
        {
          "name": "start",
          "description": "Start containers for Supabase local development"
        },
        {
          "name": "status",
          "description": "Show status of local Supabase containers"
        },
        {
          "name": "stop",
          "description": "Stop all local Supabase containers"
        }
      ]
    }
  ],
  "options": [
    {
      "names": [
        "--debug"
      ],
      "description": "Output debug logs to stderr"
    },
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Display help"
    }
  ]
}
