Skip to main content

Local Setup

Stand up a local development instance with no provider keys: one setup recipe, a Vertex stub for inference, and the dev stack.

TL;DR: just setup-local, then just start. No provider keys and no cloud login. Inference goes to a local Vertex stub, so nothing here has run on a real model.

Set up

just setup-local                 # http 8080, postgres 5432
just setup-local 8090 5460       # pick free ports when other clones run here

The recipe builds a debug binary, starts a per-clone Postgres (pgvector), writes the local profile under .systemprompt/profiles/local/, runs migrations, bootstraps an admin user, applies config and publishes assets. A re-run is safe. Core's admin setup still needs a key flag, so the recipe passes a placeholder that is never used.

The Vertex stub

The only provider is vertex. Locally, the token host and model host are a Python stub on 127.0.0.1 (deploy/dev/vertex-stub/). It speaks the same wire shapes, so the gateway, governance and audit paths run in full, but the answers are canned. scripts/dev-stub.sh wires the profile to it.

Run

just server-status     # is a server already running, is its binary stale
just start             # refreshes the stub overlay, starts the stub and the server
just dev-sync-apply    # applies the workflows and groups planes (needed for workflow definitions)
just dev-login <user>  # single-use /admin login link (development profile only)
just stop

just dev-stack controls the compose stack in deploy/dev/compose.yaml (stub and ClickHouse by default). The local profile also turns the brain on.

Runbooks

  • docs/runbooks/local-setup.md: prerequisites, file locations, start/stop.
  • docs/runbooks/dev-stack.md: the stub, the overlay and the compose stack.