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:

  1. Runtime/storage — your machine or an explicitly operated server.
  2. Inference — local or cloud model provider; cloud inference sends selected context to that provider.
  3. Tools/integrations — external services may receive arguments, files or other application data.
  4. 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

Source of truth for this page: Assistant · open-assistants-lab/assistant