Platform maintainers
The shared engine, extension and API interfaces, tested examples, documentation — and the platform gaps that adoption surfaces.
Assistant is a self-hostable engine for assistants that work with your files and tools — not just your questions. Bring profiles, custom tools, skills, and your own domain rules; reuse agent execution, persistence, APIs, and model-provider integrations. Operate the runtime yourself.
The shared engine, extension and API interfaces, tested examples, documentation — and the platform gaps that adoption surfaces.
Profiles, custom tools, skills, authored ontology and metrics, source mappings, deterministic domain safeguards, and representative tests.
Installation, runtime placement, identity and accounts, credentials, permissions, data paths, networking, budgets, observability, backups and recovery.
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 # base install; add extras only if needed
cp .env.example .env # add your provider key
echo 'OPENAI_API_KEY=sk-...' >> .env # or ANTHROPIC_API_KEY, or a local Ollama
uv run assistant http # server on 127.0.0.1:8080
curl -s http://localhost:8080/health # -> {"status":"healthy"}User data defaults to ~/Assistant/; the configured data path holds other state — inventory and back up both. Runtime, inference, tools, and tracing are four separate data flows: a local runtime does not mean everything stays local.
The assistant ships as a published Docker image — multi-arch (amd64 + arm64), rebuilt on every release. No clone, no build: pull, compose up, and the server answers on 127.0.0.1:8080.
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 for the published image, then:
docker compose up -d
curl -s http://localhost:8080/health # -> {"status":"healthy"}ghcr.io/open-assistants-lab/assistant:latest — multi-arch, rebuilt on every release tag and main push. Full feature set: semantic memory, analytics, tool index.
Binds 127.0.0.1:8080 with a built-in healthcheck — the server never exposes itself to the network.
./data:/app/data persists per-user stores; config.yaml is mounted so admin edits apply with a restart — no rebuild.
Container-per-tenant-user deployment with per-user API keys — generated by scripts/generate_enterprise_compose.sh.