Skip to content

Repository files navigation

DAIRACK

LOCAL INTELLIGENCE

CI Python 3.11+ License: MIT

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.

Dairack terminal interface in a new local intelligence session

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.

Quick Start

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.git

Then run:

dairack setup
dairack doctor
dairack
Install from a cloned checkout
git clone https://github.com/rm199x/dairack.git
cd dairack
./scripts/install.sh
dairack setup
dairack

On Windows PowerShell:

git clone https://github.com/rm199x/dairack.git
Set-Location dairack
.\scripts\install.ps1
dairack setup
dairack

The 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.

Remote Compute

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
dairack

The 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.

Models

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 models

F6 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.

Coordinator

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.

Dairack operating mode and model selector

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.

Context and Continuity

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.

Terminal Workflow

  • Ctrl+P opens the command palette; /help shows the primary command set.
  • F3 opens saved chats or starts a new session. dairack --resume restores the latest chat explicitly.
  • F4 or /image stages 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.

Permissions

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.

Updates

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.

Local State

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.

Development

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 build

Use the documentation index for installation, model, permission, architecture, security, contribution, and release references.

About

A local-first intelligence runtime that coordinates Ollama models across your computer and private servers

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages