Setting Up SBT
Install SBT step by step on any OS and verify it works. One-time setup per computer.
SBT is a Python package stored in the GitLab Package Registry. Installing it takes about 15 minutes. You'll need:
Access to the Seek GitLab SBT repository (at least Guest access). Ask in #ic-help if you're not sure you have it.
A GitLab Personal Access Token (created in step 2)
Python 3.10 or 3.11 (installed in step 3)
Step 1: Open a terminal
Mac: press
Cmd + Space, type terminal, hit Enter.Windows: press the Windows key, type powershell, hit Enter.
Linux: press
Ctrl + Alt + Ton most distributions.
All commands below get typed into this window.
Terminal survival basics
You'll be pasting long commands and fixing tokens in the middle of them. These shortcuts save a lot of backspacing:
Optional but recommended: VS Code
VS Code is the free editor Seek engineering uses, and it works on Mac, Windows, and Linux. It gives you a file explorer, colored syntax for the YAML/SQL/TOML files SBT apps are made of, and a built-in terminal: press Ctrl + ` (backtick) to open one right under your files. Every terminal command in this guide works the same there. If you'll be editing app files regularly, install it now and do the rest of this guide from its terminal.
Step 2: Create a GitLab Personal Access Token (PAT)
Follow GitLab's guide and select the read_api and read_registry scopes (the permissions the token grants). If GitLab offers a choice of token types, create the classic (legacy) personal access token, not the newer fine-grained kind; fine-grained tokens don't work with the package registry. Copy the token somewhere safe. You'll use it in step 4.
Treat your PAT like a password. Don't share it in screenshots, Slack messages, or tickets. If it's ever exposed, revoke it in GitLab immediately and create a new one.
PATs expire. GitLab tokens have an expiration date. If installs that used to work start failing with
401 Error, Credentials not correct, your token has probably expired. Create a new one and rerun the command.
Step 3: Install Python 3.11
SBT requires Python 3.10 or 3.11. Python 3.12 and newer are not supported and will fail with "No matching distribution found" errors.
Go to the Python 3.11.9 download page.
Scroll to the Files table. Ignore the "tarball" links; those are source code.
Mac: click macOS 64-bit universal2 installer (ends in
.pkg).Windows: click Windows installer (64-bit) (ends in
.exe). On the first installer screen, check the box "Add python.exe to PATH" before clicking Install.
Open the downloaded file and follow the installer.
Confirm it worked:
Mac/Linux:
python3.11 --versionWindows:
py -3.11 --version
You should see Python 3.11.9.
Step 4: Install SBT
Current recommended version: 1.0.10 (as of August 2026). Check release announcements before installing; if a newer version is recommended, use that number in the command below.
Run the command for your OS, replacing <your_personal_token> with the PAT from step 2.
Mac/Linux:
python3.11 -m pip install sbt==1.0.10 --index-url https://__token__:<your_personal_token>@gitlab.com/api/v4/projects/54902832/packages/pypi/simple Windows:
py -3.11 -m pip install sbt==1.0.10 --index-url https://__token__:<your_personal_token>@gitlab.com/api/v4/projects/54902832/packages/pypi/simple Two things worth knowing about this command: -m pip tells Python to use its own built-in installer, so the package lands in the right Python version (plain pip often points at the wrong Python, or doesn't exist). And ==1.0.10 "pins" one exact version; see Pin a specific version below.
Step 5: Verify the install
sbt --help If you see a list of SBT commands, you're done installing.
Got command not found: sbt (Mac/Linux) or 'sbt' is not recognized (Windows)? The install worked, but your system doesn't know where to look.
Mac: run these two commands, then try again:
echo 'export PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:$PATH"' >> ~/.zshrc source ~/.zshrc Windows: rerun the Python installer, choose Modify, and enable "Add python to environment variables." Then close and reopen PowerShell.
Common install errors
Checking which version you have: run python3.11 -m pip show sbt (Mac/Linux) or py -3.11 -m pip show sbt (Windows) and look for the Version: line. (sbt --version is not a command.)
Known issue (August 2026, remove this note once fixed): fresh installs currently fail on
sbt run-appwith a422 Unprocessable Entityerror due to a dependency conflict. If you hit it, runpython3.11 -m pip install -U prefectand rerun. Details in Troubleshooting App Installs & Runs.
Why the command says ==1.0.10
Look closely at the install command: right after sbt comes ==1.0.10, with no spaces. That tells pip: install exactly this version, no other. This is called "pinning."
Why it matters: SBT never updates itself. You stay on the version you installed until you deliberately rerun the install command with a newer number. That's a feature, since your tools never change out from under you mid-project. The flip side: when a release is announced, upgrading is on you. Rerun step 4 with the new version number; pip swaps old for new in one step.
Some features require minimum versions (for example, model visibility needs 1.0.10+). Release announcements state the recommended version.
What else gets installed
Installing SBT also installs the other software SBT needs to run; you saw this as a long list scrolling by during the install. That list includes Amazon (AWS) tools SBT uses to upload your app files during builds. This is normal, and none of it needs any setup from you.
What's next
Your machine is ready. Everything from here happens inside a project: head to the Quickstart to create your first project and configure it.