Skip to main content

Home AI Cluster

Local-first orchestration for personal AI runtimes.

Project maturity: early prototype.

User documentation: frian.github.io/home-ai-cluster

Home AI Cluster is an orchestration layer, not an LLM or inference engine. It presents multiple personal machines and replaceable AI runtimes as one capability-centered local system:

Many machines. One AI.

Architecture at a glance

A request names the capability it needs. Home AI Cluster routes it among the eligible declared nodes without making the caller choose a machine or runtime.

                         Home AI Cluster
                    "Many machines. One AI."


                           User / Tool
                               │
                               ▼
                     ┌───────────────────┐
                     │   HAC endpoint    │
                     │     /v1/chat      │
                     │                   │
                     │ capability: code  │
                     └─────────┬─────────┘
                               │
                               ▼
                     ┌───────────────────┐
                     │   Orchestrator    │
                     │                   │
                     │ capability-based  │
                     │      routing      │
                     └─────────┬─────────┘
                               │
             ┌─────────────────┼─────────────────┐
             │                 │                 │
             ▼                 ▼                 ▼
    ┌────────────────┐  ┌────────────────┐  ┌────────────────┐
    │   Local node   │  │ Remote node A  │  │ Remote node B  │
    │                │  │                │  │                │
    │ capabilities   │  │ capabilities   │  │ capabilities   │
    │ • chat         │  │ • summarize    │  │ • chat         │
    │ • code         │  │ • classify     │  │ • code         │
    │                │  │                │  │                │
    │    adapter     │  │    HAC app     │  │    HAC app     │
    │       │        │  │       │        │  │       │        │
    │       ▼        │  │       ▼        │  │       ▼        │
    │    runtime     │  │    adapter     │  │    adapter     │
    │                │  │       │        │  │       │        │
    │                │  │       ▼        │  │       ▼        │
    │                │  │    runtime     │  │    runtime     │
    └────────────────┘  └────────────────┘  └────────────────┘

The capability labels are illustrative examples from the currently supported explicit capability vocabulary; they are declaration-owned routing eligibility, not runtime discovery or dynamic status.

The user addresses the cluster rather than selecting a machine or runtime brand for an ordinary request. Ordinary operation remains intentionally small, local-first, and explicit.

What works today

Area Current support
Local runtime Run one operator-managed local Ollama or llama-server composition.
Static cluster Run one explicit local-plus-remote cluster from operator-declared, ordered remote nodes. Routing is capability-centered and local-first; declared remote order is the only remote priority.
Native capabilities Chat, Summarize, Classify, and Code. A narrow fallback applies only when an eligible candidate is unavailable before request transmission; results carry cluster-owned node attribution.
Ordinary interfaces Use the hac command, cluster-native HTTP endpoints, or the fixed loopback browser for Chat, Summarize, Classify, and Code. hac chat and hac code also support bounded foreground interactive terminal conversations whose successful context exists only in the client process. The browser is not a dashboard, LAN interface, persistent server-side conversation store, filesystem authority, or execution environment.
Optional bounded integrations Use the narrow loopback OpenAI-compatible Chat process, bounded Aider and code caller edges, or separately installed external-information acquisition: explicitly, or through separately authorized one-shot Chat.
Historical evidence Retained investigations, runbooks, proofs, and closeouts are indexed separately; they are not required for ordinary operation.

Topology declarations and runtime lifecycle remain operator-owned.

Deliberate boundaries

Home AI Cluster remains local-first, privacy-first, engine-independent, capability-centered, and architecture-before-implementation. Topology is explicit and static; operators own runtimes, models, remote processes, and declarations.

The project does not provide automatic discovery, scheduling or ranking, dynamic topology mutation, process supervision, a dashboard architecture, Kubernetes deployment, a model catalogue, broad OpenAI API emulation, bundled Web acquisition, a generic plugin system, or a general production security model. See the vision, foundations, principles, and non-goals for the project rationale.

Install and first use

For a complete first-use walkthrough, including uv, Python, Ollama, the default model, browser use, and first commands, see the Getting Started guide.

Installed package

The supported installed-package path uses the current published package release:

uv tool install home-ai-cluster

A repository checkout may contain unreleased development work. See the PyPI project for published package information.

The default path requires Python 3.13 or 3.14, uv, and an operator-managed local Ollama runtime with the default llama3.2 model available. Home AI Cluster does not install, download, start, stop, or manage the runtime or model.

Start the ordinary local process in the foreground:

hac local

From another terminal on the same machine, send one request:

hac chat "Hello"

The same fixed loopback process serves the browser at http://127.0.0.1:25042/.

Repository checkout

For development from a checkout, prepare the locked environment:

uv sync --locked
uv run home-ai-cluster-local

Then, from another terminal, send one request:

uv run home-ai-cluster-chat "Hello"

See Contributing for development and validation guidance.

Optional bounded integrations

The separate hac compatibility process offers deliberately incomplete, loopback-only OpenAI-compatible Chat access. hac aider is a bounded caller edge and does not imply support for every Aider version or mode. hac code returns textual code assistance, while hac code-file performs one bounded whole-file replacement; generated code is never automatically executed and these commands grant no general repository, shell, Git, testing, agent, or execution authority.

hac external-information explicitly uses one separately installed compatible acquisition plugin for one source-grounded Chat request. An operator may also authorize eligible one-shot hac chat to use that same bounded caller-owned plugin boundary. No provider is bundled, and the ordinary HAC server does not acquire external information by itself. Two published examples prove the same acquisition boundary with materially different provider ownership: the operator-managed local-service SearXNG plugin and the credentialed external-service Tavily plugin.

Use the command reference for exact syntax and boundaries, and the documentation index for retained integration evidence and proofs.

Operators can retain local runtime choices and static remote declarations with hac config; explicit invocation values remain temporary.

Documentation

For a first installation and local run, use the Getting Started guide.

For operating Home AI Cluster, use the canonical operator workflow, command reference, and configuration examples.

For architecture and project history, use the documentation and historical evidence index, RFC index, and completed roadmap.

For project direction and participation, see the vision, foundations, principles, non-goals, and contribution guide.

Founding milestone, contributing, and license

One endpoint. Two machines. One routed request.

This founding milestone established the core abstraction: multiple personal machines can participate in one capability-centered local system without becoming an infrastructure platform. Retained evidence is available through the documentation index.

Contributions follow the contribution guide. Home AI Cluster is licensed under AGPL-3.0-or-later; see the notice for associated notices.

Release files for home-ai-cluster 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for home-ai-cluster 0.8.0
File Size Uploaded
home_ai_cluster-0.8.0.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for home-ai-cluster 0.8.0
File Interpreter ABI Platform
home_ai_cluster-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / home_ai_cluster-0.8.0.tar.gz

Download URL home_ai_cluster-0.8.0.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
2eb87e8420ce98f877c3483aee20ffea7db0d64b2e80318e2e3ae4013c98c403
BLAKE2b-256 checksum
How to use checksums
a4c2ef67046cf8958650c28367dfb771b998ed1f2c7f01941c4d0eb07375aa0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / home_ai_cluster-0.8.0-py3-none-any.whl

Download URL home_ai_cluster-0.8.0-py3-none-any.whl
Size 620.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf2fe02229d423977c75cb77b9425c1572fc5ae2cb2a7f3895baafbcb6c4285b
BLAKE2b-256 checksum
How to use checksums
e6f8057bd777d53ce31d6e47ea3e42921425b364e1397c0107fa2c38d5e85905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.0

2 release files

1.0.0

2 release files

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page