{
  "tool": "supabase",
  "name": "Supabase CLI",
  "long_name": "Supabase CLI (supabase)",
  "aliases": [
    "supabase-cli",
    "supabasecli",
    "supabase-command-line",
    "cli-supabase",
    "supabase-go-cli"
  ],
  "homepage": "https://github.com/supabase/cli",
  "url": "https://insidetheloop.dev/tools/supabase",
  "markdown_url": "https://insidetheloop.dev/tools/supabase.md",
  "date_modified": "2026-10-07T14:43:26Z",
  "title": "Supabase CLI 2.120.0: latest version, breaking changes and gotchas",
  "description": "Supabase CLI 2.120.0 (2026-10-06 UTC): upgrade commands, our --help diff, flag-order and agent-JSON gotchas with exact errors, breaking changes.",
  "answer": "The latest Supabase CLI (`supabase`, npm `supabase`) is 2.120.0, released 2026-10-06 16:40 UTC. Upgrade with `npm i -D supabase@latest` (or `npm i -g supabase@latest`, `brew upgrade supabase/tap/supabase`). Its 168 default help pages are identical to 2.119.0 in our sandbox diff; the changes sit in the experimental `supabase stack` commands (`stack logs --follow`, `--tail`, `--since`). What breaks agent scripts: command flags must follow the subcommand since 2.100.0, detected coding agents get JSON output and JSON errors since 2.106.0, and unattended `config push` skips changes without `--yes` since 2.118.0.",
  "latest": {
    "version": "2.120.0",
    "released_at": "2026-10-06T16:40:05Z",
    "url": "https://github.com/supabase/cli/releases/tag/v2.120.0"
  },
  "upgrade": [
    {
      "label": "npm, as a project dev dependency (the README's npm method)",
      "command": "npm i -D supabase@latest\nnpx supabase --version   # 2.120.0"
    },
    {
      "label": "npm, global (works from 2.99.0; 2.98.2 and older refuse)",
      "command": "npm i -g supabase@latest"
    },
    {
      "label": "Homebrew (the supabase/tap formula is the one the README calls always up to date)",
      "command": "brew upgrade supabase/tap/supabase"
    },
    {
      "label": "Scoop (Windows)",
      "command": "scoop update supabase"
    },
    {
      "label": "Install script (macOS, Linux)",
      "command": "curl -fsSL https://raw.githubusercontent.com/supabase/cli/main/install | bash"
    },
    {
      "label": "Beta channel (2.121.0-beta.7 on 2026-10-07)",
      "command": "npm i -D supabase@beta"
    },
    {
      "label": "Pin the last Go CLI (accepts command flags before the subcommand)",
      "command": "npm i -D supabase@2.98.2"
    }
  ],
  "verified": {
    "date": "2026-10-07",
    "version": "2.120.0",
    "method": "Installed supabase 2.98.2, 2.99.0, 2.117.0, 2.118.0, 2.119.0 and 2.120.0 from npm in throwaway Linux sandboxes (Debian, Node 24, no Docker, no credentials), captured `--help` for every subcommand (168 pages for 2.120.0), captured the gated `supabase stack` help separately and reproduced the errors below."
  },
  "updated_at": "2026-10-07T14:43:26Z",
  "key_facts": [
    "Latest release: 2.120.0 on 2026-10-06 16:40 UTC (GitHub tag `v2.120.0`; npm publish 16:40 UTC). Previous release: 2.119.0 on 2026-09-30 21:35 UTC.",
    "2.119.0 and 2.120.0 have the same 168 default help pages, byte for byte, in our sandbox capture. The 2.120.0 command-line changes are in `supabase stack`, which only appears in a project with `[experimental] stack = true`.",
    "Beta channel: `supabase@beta` was 2.121.0-beta.7 (2026-10-07 13:35 UTC). GitHub lists 156 beta releases and 4 stable releases (2.117.0 to 2.120.0) in the 30 days to 2026-10-07.",
    "Since 2.99.0 (2026-05-18) the npm package is a TypeScript shell (`dist/supabase.js`) with per-platform optional dependencies such as `@supabase/cli-linux-x64`; commands not yet ported run through a bundled Go binary. There is no postinstall download any more, and global npm installs work.",
    "Command flags must come after the subcommand since 2.100.0; global flags such as `--experimental`, `--debug`, `--yes`, `--workdir` may go anywhere.",
    "When it detects a coding agent (for example `CLAUDECODE=1`), the CLI defaults to JSON output since 2.106.0, and errors become `{\"_tag\":\"Error\",...}` on stdout with exit 1. `--agent no` restores text.",
    "6,247,394 npm downloads in the week 2026-09-28 to 2026-10-04; 2,431 GitHub stars on 2026-10-07; MIT licence (npm metadata)."
  ],
  "releases": [
    {
      "version": "2.120.0",
      "released_at": "2026-10-06T16:40:05Z",
      "url": "https://github.com/supabase/cli/releases/tag/v2.120.0",
      "changes": [
        {
          "text": "Service logs persist under `<stateRoot>/<stackId>/logs/`; `supabase stack logs` prints retained history and gains `-f/--follow`, `--tail` and `--since`.",
          "url": "https://github.com/supabase/cli/pull/6893"
        },
        {
          "text": "Opt-in tracing: `SUPABASE_TRACE_FILE` writes a JSON trace of one run, `SUPABASE_OTLP_ENDPOINT` streams to an OTLP collector.",
          "url": "https://github.com/supabase/cli/pull/6935"
        },
        {
          "text": "Every `--stack-id` flag accepts the 8-character ID from `stack list` or any unique prefix of 4+ characters.",
          "url": "https://github.com/supabase/cli/pull/6967"
        },
        {
          "text": "The upgrade check is cached in `~/.supabase/cli-latest` for 10 hours outside projects and for `--version`.",
          "url": "https://github.com/supabase/cli/pull/6939"
        },
        {
          "text": "`supabase start` prints `API_URL`, `FUNCTIONS_URL` and `MCP_URL` even when `[api] enabled = false`.",
          "url": "https://github.com/supabase/cli/pull/6986"
        }
      ]
    },
    {
      "version": "2.119.0",
      "released_at": "2026-09-30T21:35:22Z",
      "url": "https://github.com/supabase/cli/releases/tag/v2.119.0",
      "changes": [
        {
          "text": "OrioleDB configuration graduates: `experimental_oriole` becomes `oriole`.",
          "url": "https://github.com/supabase/cli/pull/6828"
        },
        {
          "text": "Studio's MCP server is served at `<API_URL>/mcp` on the stack's API listener.",
          "url": "https://github.com/supabase/cli/pull/6898"
        },
        {
          "text": "Resumable uploads and S3 endpoints work through the gateway on Docker Desktop for macOS.",
          "url": "https://github.com/supabase/cli/pull/6921"
        },
        {
          "text": "Stack connection details (database URL, MCP endpoint) print on start and status.",
          "url": "https://github.com/supabase/cli/pull/6894"
        }
      ]
    },
    {
      "version": "2.118.0",
      "released_at": "2026-09-25T13:23:43Z",
      "url": "https://github.com/supabase/cli/releases/tag/v2.118.0",
      "changes": [
        {
          "text": "New `supabase pull`: config, migration history, schema and Edge Function sources from a linked project in one step.",
          "url": "https://github.com/supabase/cli/pull/6526"
        },
        {
          "text": "Experimental `supabase stack start|stop|status|list|logs|prepare|restart|destroy`.",
          "url": "https://github.com/supabase/cli/pull/6506"
        },
        {
          "text": "Breaking for CI: unattended `config push` skips changes without an affirmative answer or `--yes`/`SUPABASE_YES`.",
          "url": "https://github.com/supabase/cli/pull/6670"
        },
        {
          "text": "An explicit `--workdir` is used as given and no longer climbs to a parent project.",
          "url": "https://github.com/supabase/cli/pull/6497"
        },
        {
          "text": "`storage rm` fails without explicit confirmation.",
          "url": "https://github.com/supabase/cli/pull/6683"
        }
      ]
    },
    {
      "version": "2.117.0",
      "released_at": "2026-09-07T16:47:15Z",
      "url": "https://github.com/supabase/cli/releases/tag/v2.117.0",
      "changes": [
        {
          "text": "New `supabase config diff` (and `config pull`) to preview and fetch remote project config.",
          "url": "https://github.com/supabase/cli/pull/6295"
        },
        {
          "text": "`@supabase/config` published to npm for programmatic config validation and diffing.",
          "url": "https://github.com/supabase/cli/pull/6423"
        },
        {
          "text": "Experimental Workers commands (`new`, `list`, `status`, `delete`, `push`, `logs`).",
          "url": "https://github.com/supabase/cli/pull/6261"
        },
        {
          "text": "Shadow-database baseline cache is on by default; `--no-cache-baseline` turns it off.",
          "url": "https://github.com/supabase/cli/pull/6403"
        }
      ]
    },
    {
      "version": "2.116.0",
      "released_at": "2026-08-26T19:51:24Z",
      "url": "https://github.com/supabase/cli/releases/tag/v2.116.0",
      "changes": [
        {
          "text": "`[api].auto_expose_new_tables` defaults to `true` again when unset, reverting 2.106.0; the planned 2026-10-30 removal was dropped.",
          "url": "https://github.com/supabase/cli/pull/6337"
        },
        {
          "text": "`supabase start` and `stop` are about 10 seconds faster.",
          "url": "https://github.com/supabase/cli/pull/6203"
        },
        {
          "text": "Shadow database baseline cached as a PGDATA snapshot for faster repeated diffs.",
          "url": "https://github.com/supabase/cli/pull/6184"
        },
        {
          "text": "New `[workers]` section in `supabase/config.toml`.",
          "url": "https://github.com/supabase/cli/pull/6260"
        }
      ]
    }
  ],
  "surface": [
    {
      "from": "2.119.0",
      "to": "2.120.0",
      "method": "`bin/tool-snapshot` ran `--help` for every supabase subcommand of both versions in a throwaway Linux sandbox (168 and 168 help pages), then `bin/tool-diff` compared them. `supabase stack` is hidden unless the project config enables it, so we also ran `supabase stack <sub> --help` for both versions in a project created with `SUPABASE_EXPERIMENTAL_STACK=1 supabase init` and diffed that (tools/supabase/diffs/2.119.0..2.120.0-stack.diff). Hidden flags do not appear in `--help`.",
      "summary": "Default surface: 0 commands added, 0 removed, 0 help pages changed. Gated `supabase stack` surface: 1 command with flags added, 7 help pages changed.",
      "commands_added": [],
      "commands_removed": [],
      "flags": [
        {
          "command": "supabase stack logs",
          "added": [
            "--follow",
            "--since",
            "--tail"
          ],
          "removed": []
        }
      ],
      "notes": [
        "`supabase stack logs` changed meaning: 2.119.0 \"Stream live logs until interrupted; retained history is unavailable.\"; 2.120.0 \"Print retained service logs and exit; with --follow, keep streaming new lines.\" A script that relied on it blocking now gets history and exits.",
        "Every `--stack-id` help line changes from \"by id\" to \"by id or unique id prefix\".",
        "Our default capture sets `SUPABASE_NO_UPDATE_NOTIFIER=1`. Without it, an older version appends \"A new version of Supabase CLI is available\" after every help page, which makes every page differ."
      ]
    },
    {
      "from": "2.117.0",
      "to": "2.118.0",
      "method": "`bin/tool-snapshot` ran `--help` for every supabase subcommand of both versions in a throwaway Linux sandbox (160 and 168 help pages), then `bin/tool-diff` compared them. Hidden flags do not appear in `--help`.",
      "summary": "8 commands added, 0 removed, 0 commands with flags added or removed; 160 help pages changed in any way.",
      "commands_added": [
        "supabase feedback",
        "supabase feedback add",
        "supabase feedback delete",
        "supabase notebooks",
        "supabase notebooks pull",
        "supabase notebooks push",
        "supabase pull",
        "supabase whoami"
      ],
      "commands_removed": [],
      "flags": [],
      "notes": [
        "All 160 pages changed because the global `--workdir` text changed to \"used exactly as given, with no ancestor directory search\".",
        "`supabase config push --help` 2.117.0: \"a non-interactive run (no TTY, --yes, or piped stdin with no answer) defaults to proceeding\"; 2.118.0: \"Non-interactive runs honor piped y/n answers and skip changes without an affirmative answer or --yes/SUPABASE_YES.\""
      ]
    }
  ],
  "breaking": [
    {
      "version": "2.118.0",
      "change": "Unattended `supabase config push` (no TTY, JSON output or piped stdin) skips each change unless it gets an affirmative answer or `--yes`/`SUPABASE_YES`; before, it proceeded by default.",
      "migrate": "Add `--yes` (or `SUPABASE_YES=1`) to CI steps that must apply config, and run `supabase config diff` first to review.",
      "url": "https://github.com/supabase/cli/pull/6670"
    },
    {
      "version": "2.118.0",
      "change": "An explicit `--workdir` is used exactly as given and no longer searches parent directories for `supabase/`.",
      "migrate": "Point `--workdir` at the directory that contains `supabase/`.",
      "url": "https://github.com/supabase/cli/pull/6497"
    },
    {
      "version": "2.116.0",
      "change": "`[api].auto_expose_new_tables` unset means `true` again (auto-expose new `public` tables), reverting 2.106.0; the deprecation and 2026-10-30 removal were withdrawn.",
      "migrate": "Nothing to do for new setups. Local volumes created under 2.106.0 to 2.115.0 keep their revoked grants until `supabase db reset`. Set `false` explicitly to keep the revoke behaviour.",
      "url": "https://github.com/supabase/cli/pull/6337"
    },
    {
      "version": "2.115.0",
      "change": "`db diff`, `db pull` and declarative schema commands use the bundled pg-delta engine; output can differ. `supabase test db` exits non-zero with `no pgTAP tests found in <paths>` when no tests run. `--password` beats `SUPABASE_DB_PASSWORD` on `db remote`.",
      "migrate": "Review generated SQL; move declarative files to `supabase/schemas` or set `declarative_schema_path`; `SUPABASE_USE_PG_DELTA_NEXT=false` was announced as a temporary opt-out. Drop `test db` steps that run zero tests.",
      "url": "https://github.com/supabase/cli/releases/tag/v2.115.0"
    },
    {
      "version": "2.112.0",
      "change": "`functions deploy` no longer forwards `NPM_AUTH_TOKEN` into Docker bundling. `db diff --use-pg-schema` and `db pull --experimental` are deprecated.",
      "migrate": "Inline the token in `.npmrc` or deploy with `--use-api`; use `db pull --declarative`.",
      "url": "https://github.com/supabase/cli/releases/tag/v2.112.0"
    },
    {
      "version": "2.106.0",
      "change": "A detected coding agent (or `--agent yes`) gets JSON output by default; errors become a JSON envelope on stdout with a non-zero exit.",
      "migrate": "Parse stdout as JSON in agent runs, or pass `--agent no` / `--output-format text` to keep text.",
      "url": "https://github.com/supabase/cli/pull/5532"
    },
    {
      "version": "2.100.0",
      "change": "The TypeScript CLI's parser rejects command flags placed before the subcommand (`Unrecognized flag` or `Unknown subcommand`).",
      "migrate": "`supabase network-restrictions --project-ref X get` → `supabase network-restrictions get --project-ref X`. Global flags can stay anywhere.",
      "url": "https://github.com/supabase/cli/releases/tag/v2.100.0"
    }
  ],
  "gotchas": [
    {
      "title": "A command flag before the subcommand fails with `Unrecognized flag`",
      "version": "2.120.0",
      "command": "supabase network-restrictions --project-ref abcdefghijklmnopqrst get",
      "output": "[… stderr starts with the `supabase network-restrictions` help page; trimmed 27 lines …]\nUnrecognized flag: --project-ref in command supabase network-restrictions\n\n  Hint: --project-ref is available on `supabase network-restrictions get` and `supabase network-restrictions update`. Pass it after the subcommand, for example:\n    supabase network-restrictions get --project-ref <value>\nTry rerunning the command with --debug to troubleshoot the error.\n# exit 1. 2.98.2 (Go CLI) accepted the same order and went on to: must set the --experimental flag to run this command",
      "fix": "Put command flags after the subcommand: `supabase network-restrictions get --project-ref <ref>`. Global flags (`--experimental`, `--debug`, `--yes`, `--workdir`, `--profile`, `--output-format`) may stay anywhere.",
      "url": "https://github.com/supabase/cli/releases/tag/v2.100.0"
    },
    {
      "title": "Under a coding agent, errors are JSON on stdout",
      "version": "2.120.0",
      "command": "CLAUDECODE=1 supabase network-restrictions get --project-ref abcdefghijklmnopqrst",
      "output": "{\"_tag\":\"Error\",\"error\":{\"code\":\"ExperimentalRequiredError\",\"message\":\"must set the --experimental flag to run this command\"}}\n# exit 1. Without CLAUDECODE=1, or with --agent no, the same run prints on stderr:\nmust set the --experimental flag to run this command\nTry rerunning the command with --debug to troubleshoot the error.",
      "fix": "Read stdout as JSON and check `error.code`, or pass `--agent no` (or `--output-format text`) for text. `--help` and `--version` stay text either way. Note that `network-restrictions` also needs `--experimental`.",
      "url": "https://github.com/supabase/cli/pull/5532"
    },
    {
      "title": "`supabase stack` is \"Unknown subcommand\" until the project enables it",
      "version": "2.120.0",
      "command": "supabase stack list",
      "output": "[… stderr starts with the root help page; trimmed 65 lines …]\nUnknown subcommand \"stack\" for \"supabase\"\n\n  Did you mean this?\n    start\nTry rerunning the command with --debug to troubleshoot the error.\n# exit 1. `supabase stack --help` and `supabase --experimental stack --help` print the root help and exit 0.",
      "fix": "Create the project with `SUPABASE_EXPERIMENTAL_STACK=1 supabase init`, or add `[experimental]` `stack = true` to `supabase/config.toml`. Then `supabase stack list` printed `No managed stacks found.` (exit 0). The global `--experimental` flag does not unlock it.",
      "url": "https://github.com/supabase/cli/blob/v2.120.0/apps/cli/docs/stack-commands.md"
    },
    {
      "title": "`supabase start` without Docker or Podman",
      "version": "2.120.0",
      "command": "supabase init --yes && supabase start",
      "output": "failed to inspect container health: docker: command not found (podman also not found) — install Docker Desktop or Podman and ensure it is on PATH\nTry rerunning the command with --debug to troubleshoot the error.\n# exit 1. With CLAUDECODE=1 the same error is on stdout:\n{\"_tag\":\"Error\",\"error\":{\"code\":\"DockerLifecycleInspectError\",\"message\":\"failed to inspect container health: docker: command not found (podman also not found) — install Docker Desktop or Podman and ensure it is on PATH\"}}",
      "fix": "Install and start Docker or Podman. The experimental stack can run natively on Linux x64/arm64 and macOS arm64 (`supabase stack start --runtime native`), but see the next gotcha.",
      "url": "https://github.com/supabase/cli/blob/v2.120.0/apps/cli/docs/stack-commands.md"
    },
    {
      "title": "The native stack refuses to run PostgreSQL as root",
      "version": "2.120.0",
      "command": "SUPABASE_EXPERIMENTAL_STACK=1 supabase init --yes && supabase stack start   # as root, no Docker",
      "output": "PostgreSQL cannot be run as root\nSet SUPABASE_NATIVE_POSTGRES_USER=<user> to run PostgreSQL as a non-root user, creating one if needed (on Linux, for example `useradd --system --user-group supabase-postgres`).\n# exit 1. With useradd + SUPABASE_NATIVE_POSTGRES_USER=supabase-postgres, our container stopped 79 s later at:\n/ must be owned and writable only by root to run PostgreSQL as 'supabase-postgres'",
      "fix": "Run as a normal user, or create a system user and set `SUPABASE_NATIVE_POSTGRES_USER`. Containers whose `/` is not root-owned and writable only by root fail the second check; we did not get past it in our sandbox, so use Docker there.",
      "url": "https://github.com/supabase/cli/blob/v2.120.0/apps/cli/docs/stack-commands.md"
    },
    {
      "title": "`npm i -g supabase` fails on 2.98.2 and older",
      "version": "2.98.2",
      "command": "npm i -g supabase@2.98.2",
      "output": "npm error Installing Supabase CLI as a global module is not supported.\nnpm error Please use one of the supported package managers: https://github.com/supabase/cli#install-the-cli\n# exit 1",
      "fix": "Upgrade: `npm i -g supabase@2.99.0` and later installed and ran in our sandbox. For a pinned old version, install it per project (`npm i -D supabase@2.98.2`, then `npx supabase`).",
      "url": "https://www.npmjs.com/package/supabase"
    },
    {
      "title": "`db pull --experimental` is deprecated",
      "version": "2.120.0",
      "command": "supabase db pull --experimental",
      "output": "The --experimental structured-dump mode for `db pull` is deprecated and will be removed in a future release. Use --declarative instead to pull the remote schema as per-object files.\nCannot find project ref. Have you run supabase link?\nTry rerunning the command with --debug to troubleshoot the error.\n# exit 1 (unlinked project; we did not log in)",
      "fix": "Use `supabase db pull --declarative`.",
      "url": "https://github.com/supabase/cli/pull/6028"
    },
    {
      "title": "`supabase test db` with no local database running",
      "version": "2.120.0",
      "command": "supabase test db",
      "output": "Connecting to local database...\nfailed to connect to postgres: failed to connect to `host=127.0.0.1 user=postgres database=postgres`: dial error (connect ECONNREFUSED 127.0.0.1:54322)\nMake sure Docker is running, then run: supabase start\n# exit 1",
      "fix": "Run `supabase start` first. Since 2.115.0 a run that finds zero pgTAP tests also exits non-zero (`no pgTAP tests found in <paths>`).",
      "url": "https://github.com/supabase/cli/releases/tag/v2.115.0"
    }
  ],
  "monthly": [
    {
      "month": "2026-10",
      "versions": "2.120.0 (1 stable release to 2026-10-07; 2.121.0 in beta)",
      "highlights": [
        {
          "text": "2.120.0: persisted stack logs with `--follow/--tail/--since`, OTLP tracing, short stack IDs.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.120.0"
        }
      ]
    },
    {
      "month": "2026-09",
      "versions": "2.117.0 to 2.119.0 (3 releases)",
      "highlights": [
        {
          "text": "2.117.0 added `config diff` and `config pull` and published `@supabase/config`.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.117.0"
        },
        {
          "text": "2.118.0 added `pull`, `whoami`, `notebooks` and the experimental `stack` commands; unattended `config push` now needs `--yes`.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.118.0"
        },
        {
          "text": "2.119.0 made OrioleDB config stable and served Studio's MCP server at `/mcp`.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.119.0"
        }
      ]
    },
    {
      "month": "2026-08",
      "versions": "2.112.0 to 2.116.0 (5 releases)",
      "highlights": [
        {
          "text": "2.112.0 stopped forwarding `NPM_AUTH_TOKEN` to Docker bundling and deprecated `db pull --experimental`.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.112.0"
        },
        {
          "text": "2.115.0 made pg-delta the default diff engine and made `test db` fail on zero tests.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.115.0"
        },
        {
          "text": "2.116.0 restored `auto_expose_new_tables = true` as the default.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.116.0"
        }
      ]
    },
    {
      "month": "2026-07",
      "versions": "2.109.1 to 2.111.0 (3 releases)",
      "highlights": [
        {
          "text": "2.109.1 fixed `db pull` hanging in non-interactive mode.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.109.1"
        },
        {
          "text": "2.110.0: `supabase start` recovers a stopped database; API keys redacted from errors.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.110.0"
        }
      ]
    },
    {
      "month": "2026-06",
      "versions": "2.103.0 to 2.109.0 (7 releases)",
      "highlights": [
        {
          "text": "2.106.0 defaulted detected coding agents to JSON output and (until 2.116.0) stopped auto-exposing new tables.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.106.0"
        },
        {
          "text": "2.107.0 enabled pg-delta by default for new projects.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.107.0"
        }
      ]
    },
    {
      "month": "2026-05",
      "versions": "2.98.1 to 2.102.0 (7 releases)",
      "highlights": [
        {
          "text": "2.99.0 (2026-05-18) shipped the TypeScript CLI shell with per-platform npm packages.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.99.0"
        },
        {
          "text": "2.100.0 made command flags before the subcommand an error.",
          "url": "https://github.com/supabase/cli/releases/tag/v2.100.0"
        }
      ]
    }
  ],
  "sources": [
    {
      "title": "supabase/cli releases (GitHub API)",
      "url": "https://api.github.com/repos/supabase/cli/releases",
      "read": "2026-10-07"
    },
    {
      "title": "supabase on the npm registry (dist-tags, publish times, package metadata)",
      "url": "https://registry.npmjs.org/supabase",
      "read": "2026-10-07"
    },
    {
      "title": "npm downloads for supabase, 2026-09-28 to 2026-10-04",
      "url": "https://api.npmjs.org/downloads/point/2026-09-28:2026-10-04/supabase",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.120.0 release notes",
      "url": "https://github.com/supabase/cli/releases/tag/v2.120.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.119.0 release notes",
      "url": "https://github.com/supabase/cli/releases/tag/v2.119.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.118.0 release notes",
      "url": "https://github.com/supabase/cli/releases/tag/v2.118.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.117.0 release notes",
      "url": "https://github.com/supabase/cli/releases/tag/v2.117.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.116.0 release notes",
      "url": "https://github.com/supabase/cli/releases/tag/v2.116.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.115.0 release notes (breaking changes)",
      "url": "https://github.com/supabase/cli/releases/tag/v2.115.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.112.0 release notes (breaking change, deprecations)",
      "url": "https://github.com/supabase/cli/releases/tag/v2.112.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.106.0 release notes",
      "url": "https://github.com/supabase/cli/releases/tag/v2.106.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.100.0 release notes (stricter flag ordering)",
      "url": "https://github.com/supabase/cli/releases/tag/v2.100.0",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI 2.99.0 release notes (TypeScript shell)",
      "url": "https://github.com/supabase/cli/releases/tag/v2.99.0",
      "read": "2026-10-07"
    },
    {
      "title": "PR #6670: honour config push consent",
      "url": "https://github.com/supabase/cli/pull/6670",
      "read": "2026-10-07"
    },
    {
      "title": "PR #6337: default auto_expose_new_tables to true to match platform",
      "url": "https://github.com/supabase/cli/pull/6337",
      "read": "2026-10-07"
    },
    {
      "title": "PR #5532: default output to JSON for coding agents",
      "url": "https://github.com/supabase/cli/pull/5532",
      "read": "2026-10-07"
    },
    {
      "title": "Local stack commands (apps/cli/docs/stack-commands.md at v2.120.0)",
      "url": "https://github.com/supabase/cli/blob/v2.120.0/apps/cli/docs/stack-commands.md",
      "read": "2026-10-07"
    },
    {
      "title": "Supabase CLI README at v2.120.0 (install methods)",
      "url": "https://github.com/supabase/cli/blob/v2.120.0/README.md",
      "read": "2026-10-07"
    },
    {
      "title": "supabase/cli repository (stars)",
      "url": "https://github.com/supabase/cli",
      "read": "2026-10-07"
    }
  ],
  "fixes": []
}
