Run Strata on your own machine
15 minutes from setup to insights. Free plan, no credit card, everything runs locally.
You need Docker, Ruby 3.4.4 or newer, Git, and read access to a warehouse. A coding agent such as Claude Code or Codex does the modeling for you.
Start the server
Strata Server runs in Docker with its own bundled database, so there is nothing to configure. Need Docker? Get Docker Desktop .
Run this in a terminal and press Enter to accept the default port:
curl -fsSL https://strata.do/server/install.sh | bash
It checks Docker, pulls the image, starts the container, and waits until it is healthy. Then open http://localhost:8080 and create your admin account. Your free trial activates on its own, and a TPC-DS retail sample model is already loaded, so you can explore before connecting anything.
docker run -d -p 8080:80 -v strata_data:/data --name strata ghcr.io/stratasite/server:latest
Give it 30 to 60 seconds on first boot, then open http://localhost:8080 and create your admin account. Your free trial activates on its own, and a TPC-DS retail sample model is already loaded.
Install the CLI
The CLI is where projects, warehouse connections, and deploys happen. One command installs it and verifies it works:
curl -fsSL https://strata.do/cli/install.sh | bash
Prefer not to pipe into bash? gem install strata-cli does the same thing on any OS.
strata version
Create a project
A project is a folder of YAML under git. It ships with an AGENTS.md that tells your coding agent exactly how Strata models work.
strata init my-analytics cd my-analytics
Add your warehouse
The only part that depends on your network and your credentials. A read only user is ideal. Have these ready:
Pick your adapter. The CLI asks for a key (use warehouse , the prompts below assume it), a display name, the connection details, and the credentials. Credentials go into .strata , which is gitignored and never leaves your machine except inside a deploy to your own server.
strata datasource add snowflake # or: clickhouse, databricks, postgres, redshift, mysql, sqlserver, athena, trino, druid, duckdb, sqlite
Then test it. Do not skip this. It reports exactly what is wrong when something is.
strata datasource test warehouse
Once it passes, confirm you can see the tables you expect:
strata datasource tables warehouse
Build the model with your agent
Open Claude Code, Codex, or Cursor from the project root, the folder holding project.yml and AGENTS.md . The agent reads that file automatically. It is the whole contract: Strata's YAML schema, naming rules, join constraints, and the read only discovery commands to use instead of guessing at your schema. No custom prompt needed.
Build the semantic model for the tables in my warehouse datasource. Follow AGENTS.md. Show me your proposal before writing any files.
The agent inspects your tables, proposes fact and dimension tables, fields, and joins, and waits for your approval before writing anything. Read the proposal. The things worth a second look:
Which tables it treats as facts and which as dimensions.
Shared dimension names are intentional. In Strata, the same name on two tables means the same concept and makes them blendable. Measure names must stay distinct per fact.
One join per table pair. A second key to the same dimension needs a role playing table.
Names, because they are what your users will see and query.
Say yes and it writes models/**/*.yml , running strata audit after every change. For a few dozen tables this is a few minutes.
The CLI walks you through one table at a time: it lists tables in your datasource, pulls the column metadata, and prompts you to name each field and mark it a dimension or a measure.
strata create table sales/orders strata create table common/customers
strata create relation sales/orders_customers
Both paths write the same YAML, so mix them freely: let the agent draft the whole schema, then refine a table or two here.
Already on dbt MetricFlow, Cube, or LookML? Point the same agent at those files. Both sides are YAML, so it transpiles your existing definitions into a Strata model in minutes.
Deploy and explore
Validate the whole model, then push it to your server:
strata audit all strata deploy
The first deploy asks for your server URL ( http://localhost:8080 ) and offers to sign you in through the browser. It saves an API key for you, so there is no key to copy around.
Refresh http://localhost:8080 and your model is live. Some good first moves:
Type a question in plain language and let Strata resolve it to the right fields.
Drag a measure from one fact next to a dimension from another and watch it blend, or refuse with a reason.
Build a report from a few views and let the layout engine arrange it.
Add a segment to one measure and see a cohort beside the baseline in a single view.
Every change to the model is the same loop: edit YAML (or ask the agent), strata audit all , strata deploy .
If something goes wrong
First boot sets up the bundled database and can take 30 to 60 seconds. Watch it with docker logs -f strata and refresh once you see "Databases ready".
Docker is installed but the installer cannot talk to it. On macOS or Windows, start Docker Desktop and wait for it to say it is running. On Linux, start it with sudo systemctl start docker . If you see permission denied, run the installer with sudo: curl -fsSL https://strata.do/server/install.sh | sudo bash . Use sudo for the docker commands afterwards too.
Check the logs. The usual cause is port 8080 already in use. Remove the container with docker rm -f strata , then re-run the installer and enter a different port, or with plain docker change the left side of -p , for example -p 9090:80 .
It is one container named strata . docker stop strata and docker start strata pause and resume it, re-running the installer upgrades it in place, and docker rm -f strata removes it. Your data lives in the strata_data volume and survives all of that until you run docker volume rm strata_data . To remove the CLI as well: gem uninstall strata-cli , then delete the project folder, which is where its .strata credentials file lives.
Open a new terminal so your PATH picks up the gem. If it persists, run gem environment and make sure the gem bin directory is on your PATH.
The CLI connects from your laptop, so your laptop needs a route to the warehouse first: VPN on, IP allowlisted, firewall open. Then check host, port, database, schema, and credentials, and re-enter credentials with strata datasource auth warehouse . Your server in Docker uses the same route when it runs queries.
Inside Docker, localhost is the container itself. Use host.docker.internal as the host so the server can reach a local PostgreSQL, or mount a DuckDB or SQLite file into the container.
Run strata datasource check . It lists the adapter gems you have and the ones you need, for example gem install pg for PostgreSQL.
You can say no. That prompt covers AI assisted table generation inside the CLI. Your coding agent does the modeling from AGENTS.md instead.
Start the agent from the project root so it reads AGENTS.md, and point it at the file explicitly. It never needs credentials. Those live in .strata , which is gitignored. Agents only write model YAML: deploys and datasources stay with you.
The CLI is a Ruby gem and needs Ruby 3.4.4 or newer plus Git. Install them, open a new terminal, and run the CLI installer again.
brew install ruby git
Homebrew installs a current Ruby next to the system one. rbenv or asdf work too.
# Debian / Ubuntu sudo apt update && sudo apt install ruby-full git # Fedora / RHEL sudo dnf install ruby git
If your distribution ships an older Ruby, use rbenv or asdf to get 3.4.4 or newer.
Install Ruby 3.4.x with RubyInstaller (include the MSYS2 toolchain when prompted) and Git with Git for Windows . Then, in a new terminal, this replaces the shell installer:
gem install strata-cli
Still stuck? Email [email protected] with the output of the failing command, or book a setup call and we will do it with you.
What next
Tutorial The full TPC-DS walkthrough, from a raw schema to a blended report.
Core concepts Fields, grain, conformed dimensions, and why naming is the model.
Measure types Standard, complex, snapshot, LOD, and the transforms on top.
AI agents and Strata Point your own agents at the API and get grain safe answers.
Rather do this together?
Book 30 minutes and we will connect your warehouse, model it, and answer your hardest cross domain question live.
The free plan includes one developer, 25 users, and two data sources per project.