Supabase CLI
Supabase is an open source Firebase alternative. We're building the features of Firebase using enterprise-grade open source tools.
This repository contains all the functionality for Supabase CLI.
- [x] Running Supabase locally
- [x] Managing database migrations
- [x] Creating and deploying Supabase Functions
- [x] Generating types directly from your database schema
- [x] Making authenticated HTTP requests to Management API
Getting started
Install the CLI
Available via NPM as dev dependency. To install:
npm i supabase --save-dev
To install the beta release channel:
npm i supabase@beta --save-dev
When installing with yarn 4, you need to disable experimental fetch with the following nodejs config.
NODE_OPTIONS=--no-experimental-fetch yarn add supabase
Note For Bun versions below v1.0.17, you must add
supabase
as a trusted dependency before runningbun add -D supabase
.
sh
brew install supabase/tap/supabase
To install the beta release channel:
sh
brew install supabase/tap/supabase-beta
brew link --overwrite supabase-beta
To upgrade:
sh
brew upgrade supabase
powershell
scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase
To upgrade:
powershell
scoop update supabase
sh
brew install supabase/tap/supabase
To upgrade:
sh
brew upgrade supabase
#### via Linux packages
Linux packages are provided in Releases. To install, download the .apk
/.deb
/.rpm
/.pkg.tar.zst
file depending on your package manager and run the respective commands.
sh
sudo apk add --allow-untrusted <...>.apk
sh
sudo dpkg -i <...>.deb
sh
sudo rpm -i <...>.rpm
sh
sudo pacman -U <...>.pkg.tar.zst
sh
go install github.com/supabase/cli@latest
Add a symlink to the binary in $PATH
for easier access:
sh
ln -s "$(go env GOPATH)/bin/cli" /usr/bin/supabase
This works on other non-standard Linux distros.
bash
pkgx install supabase
Available via Nixpkgs. Package script here.
Run the CLI
supabase bootstrap
Or using npx:
npx supabase bootstrap
The bootstrap command will guide you through the process of setting up a Supabase project using one of the starter templates.
Docs
Command & config reference can be found here.
Breaking changes
We follow semantic versioning for changes that directly impact CLI commands, flags, and configurations.
However, due to dependencies on other service images, we cannot guarantee that schema migrations, seed.sql, and generated types will always work for the same CLI major version. If you need such guarantees, we encourage you to pin a specific version of CLI in package.json.
Developing
To run from source:
# Go >= 1.22
go run . help