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.
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 explicit separately installed external-information acquisition. |
| 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. 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.
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.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| home_ai_cluster-0.7.0.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| home_ai_cluster-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.3 MB
Release files / home_ai_cluster-0.7.0.tar.gz
| Download URL | home_ai_cluster-0.7.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d4a4d80e3c6d483e2f4b8d3ebfbe9d04202cbdd88c7a94796536ebb0ee8454a
|
|
BLAKE2b-256 checksum How to use checksums |
7e716ef7b954f60a23caecebf203a0bdbed1c87368c6df5f3cf0a4dce020327c
|
| 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 30, 2026.
Transparency logRelease files / home_ai_cluster-0.7.0-py3-none-any.whl
| Download URL | home_ai_cluster-0.7.0-py3-none-any.whl |
|---|---|
| Size | 608.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f6a01e2fffbc712db8de92a7d59e901c6ffb2656d6d4c488335887ffb5330fb
|
|
BLAKE2b-256 checksum How to use checksums |
eb4415d6a221fbe94ce523f3594a092f06135152d3882ae6e5faf9801fc8eb2e
|
| 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 30, 2026.
Transparency log