Installation
Quick Install
The install script auto-detects uv, pipx, or pip (and installs uv if none are found):
curl -fsSL https://initrunner.ai/install.sh | shThis installs initrunner[recommended] (search + ingest + dashboard) by default.
Install with specific extras
curl -fsSL https://initrunner.ai/install.sh | sh -s -- --extras ingestPin a specific version
curl -fsSL https://initrunner.ai/install.sh | sh -s -- --version 1.0.0Package Managers
uv tool install initrunner
pipx install initrunner
pip install initrunnerNote: On modern Linux (Python 3.11+), bare
pip installoutside a virtual environment will fail due to PEP 668. Useuv,pipx, or create a venv first.
Docker
Note: The Docker image ships with all extras pre-installed — no need to specify extras when using Docker.
Pull and run in one command:
docker run --rm -e OPENAI_API_KEY vladkesler/initrunner:latest --versionOr use Docker Compose for the full dashboard:
curl -O https://raw.githubusercontent.com/vladkesler/initrunner/main/docker-compose.yml
docker compose up -dBuild locally with custom extras:
docker build -t initrunner .
docker build --build-arg EXTRAS="dashboard,anthropic" -t initrunner-custom .If using Ollama on the host from inside a container, set base_url: http://host.docker.internal:11434/v1 in your role YAML.
See Docker for full Docker documentation.
Cloud Deploy
Deploy the dashboard to a cloud platform with one click — no local Docker required:
- Railway — Deploy button, auto-builds from
railway.json - Render — Deploy button, Blueprint provisions a 1 GB persistent disk
- Fly.io — CLI-based deploy with
fly launchandfly deploy
All platforms seed example roles on first boot and expose the dashboard. See Cloud Deploy for full instructions.
Extras
Tip: Not sure which extras you need? Install
[recommended]— it includes search, ingestion, and the dashboard so the most common workflows just work out of the box. Use[all]if you want every provider and feature.
Install recommended extras (default)
# pip
pip install "initrunner[recommended]"
# uv
uv tool install "initrunner[recommended]"
# or in a venv:
uv pip install "initrunner[recommended]"
# pipx
pipx install "initrunner[recommended]"
# shell installer (defaults to [recommended])
curl -fsSL https://initrunner.ai/install.sh | shInstall all extras
pip install "initrunner[all]"
uv tool install "initrunner[all]"
curl -fsSL https://initrunner.ai/install.sh | sh -s -- --extras allPick and choose
You can combine specific extras with commas:
# pip
pip install "initrunner[ingest,search,dashboard]"
# uv
uv tool install "initrunner[ingest,search,dashboard]"
# pipx
pipx install "initrunner[ingest,search,dashboard]"
# shell installer (comma-separated)
curl -fsSL https://initrunner.ai/install.sh | sh -s -- --extras ingest,search,dashboardAvailable extras
Bundles
| Extra | What it adds |
|---|---|
recommended | Search + ingest + dashboard (the default when using the install script) |
all | Every provider, feature, and interface (except desktop) |
all-models | All LLM providers (Anthropic, Google, Groq, Mistral, Cohere, Bedrock, xAI) |
LLM Providers
| Extra | What it adds |
|---|---|
anthropic | Anthropic provider (Claude) |
google | Google provider (Gemini) |
groq | Groq provider |
mistral | Mistral provider |
cohere | Cohere provider (Command R) |
bedrock | AWS Bedrock provider |
xai | xAI provider (Grok) — uses OpenAI SDK |
Features
| Extra | What it adds |
|---|---|
ingest | PDF, DOCX, XLSX ingestion (base text ingestion is built-in) |
search | Web search via DuckDuckGo (free, no API key) |
audio | YouTube transcript extraction |
safety | Profanity filter for content policy |
observability | OpenTelemetry tracing and metrics export |
vault | Encrypted credential vault (initrunner vault ...) |
vault-keyring | Vault plus OS keyring passphrase caching |
a2a | A2A server (initrunner a2a serve) |
Messaging Triggers
| Extra | What it adds |
|---|---|
telegram | Telegram bot trigger |
discord | Discord bot trigger |
slack | Slack trigger (Socket Mode) |
channels | Telegram, Discord, and Slack |
Interfaces
| Extra | What it adds |
|---|---|
dashboard | Web dashboard API backend (FastAPI + uvicorn) |
desktop | Native desktop app (FastAPI + uvicorn + pywebview) |
Note:
local-embeddings(fastembed) is defined but not yet implemented. Use theollamaprovider instead for local embeddings — see Providers.
Development Setup
git clone https://github.com/vladkesler/initrunner.git
cd initrunner
uv sync
uv run pytest tests/ -v
uv run ruff check .
uv run initrunner --versionEnvironment Variables
By default, InitRunner stores data in ~/.initrunner/. Override with INITRUNNER_HOME:
export INITRUNNER_HOME=/data/initrunner
initrunner run role.yaml -p "hello"Or, to persist across sessions, add it to ~/.initrunner/.env:
INITRUNNER_HOME=/data/initrunnerResolution order: INITRUNNER_HOME > XDG_DATA_HOME/initrunner > ~/.initrunner.
Platform Notes
- Python 3.11+ is required (3.11, 3.12, and 3.13 are tested).
- Linux / macOS / WSL are fully supported.
- Windows works but systemd-related flow features (
flow install/start/stop) are unavailable. - Docker: if using Ollama on the host from inside a container, set
base_url: http://host.docker.internal:11434/v1in your role YAML.