# Many repos

Most teams keep dashboards in more than one repo. The payments service has its own, the
growth team has theirs, and there may be a central analytics repo too. sqldash can serve
all of them together, grouped by repo, so you open one browser tab instead of three.

The list of repos sqldash serves together is called your **workspace**. It is a
personal list on your machine, not a shared server and not something you commit. You
add repos to it with `sqldash repo add`, and `sqldash serve --all` or `sqldash mcp --all`
serves everything on it.

## Where dashboards can live

`sqldash init` creates a `.sqldash/` folder inside any repo. Commit it next to the
service or pipeline it measures, and its dashboards ride along with the code. One
central analytics repo with many dashboards works too, and a single file served with
`sqldash serve revenue.yaml` is a complete deployment on its own.

## Build your workspace

```bash
sqldash repo add git@github.com:acme/dashboards.git
sqldash repo add ~/work/data-platform        # local checkouts work too
sqldash repo list
sqldash repo remove data-platform
sqldash serve --all                          # every registered repo
sqldash serve ~/work/data-platform           # or still just one
```

`sqldash serve` with no target serves the current directory, or every registered repo
when the current directory has no dashboards. `repo add` takes `--name` to pick the
registry name and `-b` to serve a branch.

The registry is per-user and never committed, and lives next to your credential
profiles. In a workspace, dashboards are namespaced `repo/dashboard`, so the same name
can exist in two repos. Metric names stay scoped to their own project, and agents over
MCP see them as `repo/metric`. See [MCP](/docs/mcp/).

## Serve straight from a git URL

```bash
# clone it yourself and serve the checkout
git clone git@github.com:acme/payments-service.git && cd payments-service && sqldash serve

# or let sqldash manage the clone
sqldash serve git@github.com:acme/payments-service.git
```

The second form clones into a local cache (the path is printed on startup) and
fast-forward pulls on every start. Edits made in the UI land in that clone. Commit
and push from there to share them. Everyone connects with their own credentials, and
the repo never contains secrets.

## Sharing without credentials

For stakeholders and wallboards with no warehouse access, render dashboards to static
files with [Snapshots](/docs/snapshots/).
