Status: Current
This guide is the shortest path for a new user who wants to install Home AI Cluster, run it locally, and try its ordinary capabilities.
Home AI Cluster is an orchestration layer. It does not install, download, start,
stop, or supervise AI runtimes or models. The default first-use path below uses
an operator-managed local Ollama runtime with the llama3.2 model.
For exact command contracts and advanced options, use the command reference. For the canonical operational sequence and static multi-node operation, use the operator workflow.
Windows 11 x86_64
The supported native Windows installation path uses PowerShell with WinGet available. In PowerShell, run:
winget install --id astral-sh.uv -e --source winget
uv tool install home-ai-cluster
uv tool update-shell
WinGet installs upstream Astral uv; uv installs and isolates the ordinary
HAC PyPI tool, so you do not need to install Python manually. Close PowerShell
and open a new PowerShell session, then verify that HAC is available:
hac --version
This supported path is limited to native Windows 11 x86_64, PowerShell, and WinGet. HAC does not install or manage runtimes, models, plugins, or Windows system configuration. Continue with step 3 to prepare an operator-managed runtime.
1. Install uv (Linux and macOS)
Home AI Cluster uses uv for Python and package installation.
Install uv using the official procedure for your operating system:
On Linux and macOS, the official standalone installer can be run with:
curl -LsSf https://astral.sh/uv/install.sh | sh
Open a new terminal if necessary, then verify the installation:
uv --version
2. Install a supported Python (Linux and macOS)
Home AI Cluster currently supports Python 3.13 and 3.14.
The simplest uv-managed path is:
uv python install 3.13
Verify that uv can see it:
uv python list
Using uv for Python is convenient but not an architectural requirement. An
already installed compatible Python can also be used.
3. Install Ollama and the default model
The default Home AI Cluster runtime composition uses Ollama with llama3.2.
Install Ollama using its supported procedure for your operating system:
Ensure Ollama is running, then make the default model available locally:
ollama pull llama3.2
You can confirm that Ollama sees the model with:
ollama list
Home AI Cluster does not manage Ollama or model downloads. If Ollama is stopped later, start it using Ollama's normal operating-system procedure before using Home AI Cluster.
4. Install Home AI Cluster (Linux and macOS)
Install the current published package as an isolated uv tool:
uv tool install home-ai-cluster
uv tool install is the recommended first-use path because it keeps the HAC CLI
in an isolated Python environment without requiring you to manage that virtual
environment directly.
If you prefer pip, install HAC inside an explicitly managed virtual environment
rather than into the system Python. For example:
python3.13 -m venv ~/.venvs/home-ai-cluster
source ~/.venvs/home-ai-cluster/bin/activate
python -m pip install home-ai-cluster
This guide uses the uv tool path for the remaining steps.
Verify the installed command:
hac --help
hac is the short ordinary command. home-ai-cluster is the equivalent long
root command.
To update an already installed published HAC tool, use:
uv tool upgrade home-ai-cluster
This is the normal published-package upgrade path; it does not validate or install unreleased checkout work.
Optional: retain stable choices
The default first-use path needs no retained configuration. To keep a stable local runtime choice for later ordinary starts, use:
hac config local --runtime ollama --ollama-model qwen3:8b
hac config show
hac local
Later compatible runtime CLI values are temporary one-invocation overrides and do not rewrite retained configuration.
To use the optional local Image Generation companion with the same ordinary
process, start and manage sd-server yourself, then retain only its loopback
endpoint:
hac config image-generation --base-url http://127.0.0.1:<SD_SERVER_PORT>
hac config show
hac local
HAC does not configure an image model or manage sd-server. The companion is
ignored when hac local --runtime-config <PATH> is explicitly selected; add an
Image Generation binding to that complete file when it is needed there.
5. Start Home AI Cluster
Start the ordinary local process:
hac local
Keep this terminal open. The process runs in the foreground.
With the default host and port, Home AI Cluster is now available only on the local machine at:
http://127.0.0.1:25042/
This same process serves both the native local API and the fixed loopback browser interface.
6. Try the browser
Open this address in a browser on the same machine:
http://127.0.0.1:25042/
The current browser navigation is:
- Chat;
- Code;
- Image;
- Summarize;
- Classify;
- Configuration.
Chat includes an optional, page-local automatic External Information authorization and a separate explicit External Information operation. The explicit operation accepts an optional plugin override plus distinct QUERY and QUESTION fields; ordinary Chat Send does not submit those fields.
The browser is intentionally local and small. It is not a dashboard, LAN control surface, runtime manager, or persistent server-side conversation store.
For a first test, open Chat, enter a short message, and submit it.
Optional: trusted-LAN capability browser
Loopback remains the default. To expose the separate, capability-only browser to trusted peers, start HAC with one explicit concrete non-loopback LAN IP:
hac local --lan-browser-host <LAN_IP>
The loopback browser remains available. The trusted-LAN browser shows Chat, Code, Image, Summarize, and Classify, but does not expose Configuration, Workspace, or External Information authority. It is plain HTTP with no TLS or client authentication, so use it only where reachable peers and the network path are trusted. It is a separate listener from any receiver authority.
7. Try the command line
Leave hac local running and open a second terminal.
Chat
Send one request:
hac chat "Explain local-first AI in one sentence."
Or start an interactive terminal conversation:
hac chat
Use Ctrl-D or Ctrl-C to end the interactive session. Its successful conversation context exists only in that foreground client process and is not persisted.
Summarize
Summarize explicit text:
hac summarize --text "Home AI Cluster routes requests by capability rather than by machine or runtime brand."
Or summarize a UTF-8 text file:
hac summarize --file README.md
Classify
Classify text against an explicit ordered label set:
hac classify \
--text "The invoice is due tomorrow." \
--label invoice \
--label personal
Code
Ask for bounded textual code assistance:
hac code "Write a Python function that returns the larger of two integers."
Or start an interactive Code conversation:
hac code
Use Ctrl-D or Ctrl-C to end the interactive session. As with interactive Chat, successful conversation context exists only in that foreground client process and is not persisted.
hac code returns text only. It does not execute generated code or grant shell,
Git, repository, testing, or general filesystem authority.
Optional: Image Generation
Image Generation requires an explicitly configured and available Image
Generation binding or companion. HAC does not manage sd-server or its model.
hac image-generation \
--output generated.png \
"A small cabin in a snowy forest"
generated.png must not already exist and its parent directory must already
exist. Without --jpeg, HAC writes validated PNG bytes regardless of the file
suffix. See the Command Reference for
the exact output and JPEG-export semantics.
8. Stop Home AI Cluster
Return to the terminal running:
hac local
and stop it with normal process interruption, usually Ctrl-C.
Ollama remains operator-owned. Leave it running or stop it separately according to your own local setup.
9. Optional: use external information
Ordinary Home AI Cluster requests do not acquire Web information by default. External Information uses one separately installed compatible plugin. Installation alone does not select or perform acquisition, and retaining a plugin choice alone does not authorize Chat to disclose a question.
Choose either published plugin. The
SearXNG plugin
keeps acquisition against an operator-managed local SearXNG service. The
Tavily plugin
uses the external Tavily service, requires TAVILY_API_KEY in the caller
environment, and discloses the explicit acquisition query to Tavily.
For an initial isolated HAC installation, choose one of these instead of the plain command in step 4:
uv tool install \
--with home-ai-cluster-plugin-searxng \
home-ai-cluster
uv tool install \
--with home-ai-cluster-plugin-tavily \
home-ai-cluster
If you already followed step 4, rebuild that isolated tool environment explicitly with your chosen plugin included:
uv tool install --force \
--with home-ai-cluster-plugin-searxng \
home-ai-cluster
uv tool install --force \
--with home-ai-cluster-plugin-tavily \
home-ai-cluster
uv tool gives HAC its own isolated environment. Each --with package is an
additional requirement in that environment. uv tool install --force ...
recreates it, so include every HAC plugin or other additional requirement that
should remain installed; an omitted earlier --with dependency can be absent
from the recreated environment. Repeat --with when installing multiple
compatible packages. Installed packages and the one retained
hac config external-information --plugin NAME selection are separate.
Explicit External Information
With SearXNG and hac local already running, retain that choice once, then use
it for an explicit external-information request:
hac config external-information --plugin searxng
hac external-information \
"local AI inference developments" \
"What are the main recent developments?"
This explicitly acquires evidence for one source-grounded request: the first value is the acquisition query and the second is the question sent with the acquired evidence.
An explicit one-off override remains possible and does not change the retained selection:
hac external-information \
--plugin <OTHER_NAME> \
QUERY \
QUESTION
For Tavily, set the caller credential and use the selected plugin:
export TAVILY_API_KEY="<YOUR_TAVILY_API_KEY>"
hac external-information \
--plugin tavily \
"Python 3.14 free-threading changes" \
"What changed for free-threaded Python in 3.14?"
Manage or unset the environment credential according to your normal shell and
security practice. Retaining tavily selects only that plugin for later
explicit external-information operations; it does not retain or manage
TAVILY_API_KEY.
One-shot Chat with retained automatic External Information authorization
A retained External Information plugin choice is also required for this flow. It is separate from, and does not grant, Chat disclosure authority. To retain the one-shot Chat authorization, run:
hac config chat --external-information-fallback
Then use ordinary one-shot Chat, for example:
hac chat "What is the weather in Agnone today?"
For an eligible question, HAC makes its existing bounded ordinary / external
decision. Only the external branch performs acquisition, using the exact user
question as its acquisition query. The authorization remains retained until you
explicitly remove it:
hac config chat --reset
Interactive Chat with session-local External Information authorization
To authorize the same bounded decision path only for one foreground interactive Chat session, use the no-message form:
hac chat --external-information
This is TTY-only interactive Chat and uses the retained External Information
plugin selection. Each eligible new user turn may take the existing bounded
ordinary / external decision path. The authorization lasts only for this
foreground session: it does not persist or enable the retained one-shot
fallback authorization. Ctrl-D or Ctrl-C ends the session.
See the SearXNG plugin README,
Tavily plugin README,
and the
hac external-information command reference
for the exact HAC boundary.
10. Where to go next
If this local first run works, the useful next documents are:
- Command reference — exact syntax, options, and boundaries for every ordinary command.
- Canonical operator workflow — preflight, health, startup, shutdown, recovery, and explicit static multi-node operation.
- Configuration examples — runtime-composition and static-cluster declaration examples.
- Project README — current project scope and deliberate boundaries.
A second machine is optional. Local-only operation remains the shortest and least complex ordinary Home AI Cluster path.