Quickstart
Run the assistant from source with uv or the published Docker image, connect a model provider, and see where each data flow goes.
From source
Requirements: Python 3.11+, uv, and one provider key. There is no PyPI package — the assistant installs from source.
git clone https://github.com/open-assistants-lab/assistant
cd assistant
uv sync --extra dev
cp .env.example .env
# add your provider key to .env
# OPENAI_API_KEY=sk-...
# ANTHROPIC_API_KEY=...
# GOOGLE_API_KEY=...
# OLLAMA_API_KEY=... # Ollama Cloud
uv run assistant http
curl -s http://localhost:8080/health # -> {"status":"healthy"}
Optional extras install from source as well:
uv sync --extra memory-vector # + ChromaDB + sentence-transformers
uv sync --extra analytics # + DuckDB analytics mirror
The server is the single source of truth: conversation history, memory, files and other state live server-side in per-user stores, and clients are thin viewers. Do not expose the server beyond loopback without reading the deployment guide — loopback binding, API_KEY/SOLO_BYPASS, and identity are deployment decisions.
Docker
docker pull ghcr.io/open-assistants-lab/assistant:latest
mkdir -p assistant-deploy && cd assistant-deploy
curl -sO https://raw.githubusercontent.com/open-assistants-lab/assistant/main/docker/docker-compose.yaml
curl -sO https://raw.githubusercontent.com/open-assistants-lab/assistant/main/docker/.env.example
cp .env.example .env # add your LLM provider key
# swap the build: block in docker-compose.yaml for the published image, then:
docker compose up -d
curl -s http://localhost:8080/health # -> {"status":"healthy"}
The published image is multi-arch (amd64 + arm64), rebuilt on every release tag. It binds 127.0.0.1:8080 with a built-in healthcheck, and ./data:/app/data persists per-user stores.
For the multi-user trusted recipe — namespaces, per-user keys, onboarding, the trust contract, verification and operations — see Docker deployment.
Where your data goes
Four separate choices, each with its own destination:
- Runtime/storage — your machine or an explicitly operated server.
- Inference — local or cloud model provider; cloud inference sends selected context to that provider.
- Tools/integrations — external services may receive arguments, files or other application data.
- Tracing — configured semantic tracing can contain customer content while operational telemetry has a different payload and destination. Product tracing is opt-in and off by default.
A local runtime does not mean everything stays local. User data defaults to ~/Assistant/; some settings and operational state also live under the configured project data path — inventory and back up both.
Next steps
- Deployment guide — topologies, isolation status, secrets, backups, hardening.
- Builder & deployer guide — packaging conventions and the adoption checklist.
- Configuration and secrets
- Status — what is not ready yet, and how to verify.
Source of truth for this page: Assistant · open-assistants-lab/assistant