LOCAL INTELLIGENCE
Quick Start · Remote Compute · Coordinator · Context · Permissions
Dairack is a local-first intelligence runtime with a first-class terminal client. It coordinates Ollama models across your computer and private servers while files, shell access, approvals, chats, project indexes, and checkpoints remain on the client.
Coordinator turns available models into one adaptive system. It selects execution paths by capability, context, latency, hardware fit, and model residency, then adds tools, vision, planning, or review when they materially improve the task.
- Run inference locally or through a private authenticated Dairack compute server.
- Keep client files, commands, Git state, approvals, memory, and recovery under local control.
- Coordinate general, coding, reasoning, research, and vision models without manual switching.
- Use files, web research, images, project context, patches, tests, and persistent chats in one workflow.
Status: Alpha. Dairack is functional and locally verified on Linux. CI covers Linux, Windows, and macOS. Public configuration and extension APIs may change before 1.0.
Dairack requires Python 3.11 or newer, Ollama locally or on a Dairack compute server, and at least
one chat model. Git or patch is needed for agent-applied edits; rg is optional but makes project search faster.
Install from GitHub with an isolated Python tool manager:
uv tool install git+https://github.com/rm199x/dairack.git
# or
pipx install git+https://github.com/rm199x/dairack.gitThen run:
dairack setup
dairack doctor
dairackInstall from a cloned checkout
git clone https://github.com/rm199x/dairack.git
cd dairack
./scripts/install.sh
dairack setup
dairackOn Windows PowerShell:
git clone https://github.com/rm199x/dairack.git
Set-Location dairack
.\scripts\install.ps1
dairack setup
dairackThe installers choose uv, pipx, or a private user environment. They do not install packages into the system Python.
Setup supports NVIDIA, Apple Silicon/Metal, ROCm, Windows hardware probes, and CPU-only systems. See Installation for platform notes and non-interactive setup.
The same Dairack package runs on the client and the model server. The server supplies model inference; the client retains authority over its own environment. On Linux, install the authenticated bridge as a restartable user service on the machine with Ollama:
On the model server
dairack serve --install-service --tailscale --name "Home Server"The first Tailscale Serve setup may print a one-time tailnet approval URL. Open it while the command waits; Dairack continues as soon as Serve is enabled.
Inspect it with dairack serve --service-status. Foreground mode remains available by omitting --install-service;
that process stops when its terminal closes.
Then connect from the computer where you want to work:
On the client
dairack connect https://server-name.tailnet-name.ts.net
dairackThe server prints a pairing token, which the client stores separately with private permissions. The interface, project
files, shell, approvals, chats, indexes, and checkpoints remain on the client. Prompts, selected context, approved tool
results, and attached images are sent to the inference endpoint because the model needs them to answer. When semantic
retrieval is enabled, /index also sends bounded file excerpts to the configured endpoint to create embeddings; set
"retrieval_embeddings": false in the configuration to keep project indexing lexical-only.
The bridge accepts only the model operations Dairack needs plus read-only hardware information. Return to local Ollama
with dairack connect local, or restore the saved server with dairack connect remote. Do not expose an unauthenticated
Ollama endpoint to the public internet.
Any Ollama chat model can be selected directly. Setup inspects the active compute machine, discovers installed models, and chooses practical runtime defaults. Embedding-only utility models remain available to project retrieval but are excluded from direct selection, defaults, and Coordinator ranking. Adding a model does not require a Dairack source change.
dairack models recommend
dairack models pull <model>
dairack models update <model>
dairack models remove <model>
dairack modelsF6 or /library opens the same searchable model lifecycle in the terminal interface, including transfer
progress, cancellation, profile inspection, and confirmed removal. See
Models and Coordinator for profile tuning and advanced routing controls.
| Mode | Behavior |
|---|---|
| Adaptive | Balances response quality, latency, and model-loading cost for each request. |
| Quality | Allows more planning, review, and specialist work when it can improve the result. |
| Efficient | Favors quick, resident models and simpler execution. |
| Direct model | Sends every request to the model you select. |
One model is enough. With several installed, Coordinator selects an execution path rather than merely a model: direct
response, specialist execution, vision analysis, planning, tool use, independent review, or revision. Decisions account
for task fit, model capability, context limits, latency, hardware fit, and model-loading cost. The active model and any
planning or review stage remain visible while work is running. Use /coordinator to inspect or change the policy.
Requests such as "use a deeper model" or "keep this lightweight" apply only to that turn. They do not silently change your saved configuration.
Dairack treats context as a managed resource. It keeps the active task, current evidence, file windows, tool state, and next executable step available while compacting older covered material before the model's request window becomes unsafe.
Context handling follows the active model's generated or overridden runtime profile. Dairack reserves answer and
protocol headroom, compacts covered history into grounded memory, and retains a small evidence ledger when an active
tool workflow outgrows its raw transcript. Large files are read through bounded, continuable line windows; each
completed result is fitted again before the model continues, so smaller contexts retain the active task and a precise
next range instead of stalling after compaction. /context shows the current macro memory, live working set, tool
interface, reserves, and estimated next request.
- Ctrl+P opens the command palette;
/helpshows the primary command set. - F3 opens saved chats or starts a new session.
dairack --resumerestores the latest chat explicitly. - F4 or
/imagestages up to four supported images for a vision-capable model. - Agent actions show their target, permission, result, exit status, and elapsed time.
- Code edits show additions and removals, run a dry check, and create a checkpoint before application.
- Esc closes dialogs. Esc or Ctrl+C interrupts work when the active operation supports cancellation. Prompts typed while a response is running queue and send when it completes; an approval holds that queue until the action is allowed or denied.
The interface adapts to compact terminals and uses short event-driven transitions, with no animation timer retained
while idle. Set DAIRACK_REDUCED_MOTION=1 when all non-essential movement should remain disabled.
Agent mode lets a model request tools; it does not grant permission by itself.
| Mode | Behavior |
|---|---|
ask |
Show every model-requested action for approval. This is the default. |
read-auto |
Allow project reads and safe status checks; ask for writes, shell, external paths, and network access. |
deny |
Block model-requested tools while keeping direct user commands available. |
Shell commands run with your operating-system privileges after approval. Web searches and page reads leave the machine and therefore require approval when requested by a model. Dairack's permission layer is an approval boundary, not an operating-system sandbox. Read Permissions and Security before unattended use.
Source installs do not assume a release channel. Once one is configured, /update shows the available version, release
notes, and exact local install command before anything runs. See Release Channel.
Dairack follows standard platform directories:
| Purpose | Linux/macOS default |
|---|---|
| Configuration and model registry | ~/.config/dairack/ |
| Chats, checkpoints, and project index | ~/.local/share/dairack/ |
| Cache | ~/.cache/dairack/ |
| Runtime state | ~/.local/state/dairack/ |
Windows uses %APPDATA%\Dairack for configuration and %LOCALAPPDATA%\Dairack for data, cache, and state. Set
DAIRACK_HOME=/path for a fully isolated state tree. Compute credentials are stored separately from configuration and
chat history.
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m ruff check src tests tools
python -m pytest
python -m buildUse the documentation index for installation, model, permission, architecture, security, contribution, and release references.

