Honest-Agent Starter Kit

Free preflight checklist

Back to the kit page

Windows local-agent preflight checklist

One page of checks before you install a local model stack on Windows. No email needed. Nothing to sign up for. Tick a box only after you have looked.

The tested path is Ollama for the model, Open WebUI for the chat page, and n8n for workflows. A failed row means you are outside what was tested, or something else is already using a port the stack needs.

The install guide does not ask you to run these steps as a Windows administrator. The tested install left the user PATH unchanged and did not add a sign-in startup entry. You start each program from a script in the stack folder.

Windows version and admin accounts

GPU, VRAM, and RAM

Open Task Manager, then Performance, then GPU. Read Dedicated GPU memory. Then open Performance, then Memory, and read the total.

Disk space

Plan on about 8 GB for the stack itself. Check free space in File Explorer, then This PC, on the drive where the stack will go. The guide's breakdown is:

Put the stack in one folder: %USERPROFILE%\LocalAIStack. In PowerShell that is $env:USERPROFILE\LocalAIStack.

Tool versions and install method

These are the versions and the methods the install guide records. Newer versions may differ.

uv, from the stack folder, in the same PowerShell window:

$env:UV_UNMANAGED_INSTALL="$env:USERPROFILE\LocalAIStack\uv\bin"; irm https://astral.sh/uv/install.ps1 | iex
$env:UV_PYTHON_INSTALL_DIR = "$env:USERPROFILE\LocalAIStack\uv\python"
$env:UV_CACHE_DIR = "$env:USERPROFILE\LocalAIStack\uv\cache"
uv python install 3.11 --no-bin
uv venv --python 3.11 open-webui\venv
uv pip install --python open-webui\venv\Scripts\python.exe open-webui==0.11.4

n8n, from the stack folder:

cd "$env:USERPROFILE\LocalAIStack\n8n\app"
npm.cmd install n8n@2.41.6 --cache ..\npm-cache --no-fund --no-audit

Open WebUI then listens on 127.0.0.1 port 8080, with OLLAMA_BASE_URL set to http://127.0.0.1:11434. The first start downloads the embedding model sentence-transformers/all-MiniLM-L6-v2. Wait until that window is quiet, then claim the admin account.

Loopback ports

Before you install, these ports should be free. After you install, the listeners should be on 127.0.0.1 only. The tested install had nothing on 0.0.0.0. Do not forward these ports to a LAN or the internet.

In PowerShell, before install:

netstat -ano -p tcp | findstr ":11434 :8080 :5678"

No lines means nothing is listening yet. A line that starts with 127.0.0.1 is loopback. A line that starts with 0.0.0.0 is wider than the tested setup. Do not install a second copy on a port you do not recognize. This page does not ask you to force-stop a process by its id.

Docker and WSL

Before you trust a "done" claim

A sentence that says Created or Updated is a claim about a file. The failure log records 493 lines from 2026-09-26 12:57:11 through 2026-10-03 10:27:35. That span is 6 days, 21 hours, 30 minutes, and 24 seconds. 492 of those lines said a 248-byte script was created again. The file's last-write time never moved after 2026-09-26 12:56:24. The wording changed 229 times, so a check that only looks at the previous sentence would have let the reworded lines through.

The parameters from the scripts readme, with its placeholder paths:

powershell -NoProfile -ExecutionPolicy Bypass -File Add-CycleLog.ps1 -LogPath "%USERPROFILE%\my-agent\cycle.jsonl" -Actor my-agent -ActorKind agent -Message "Created out.txt" -SnapshotPath "%USERPROFILE%\my-agent\snapshot.json" -BaseDir "%USERPROFILE%\my-agent" -RejectLogPath "%USERPROFILE%\my-agent\rejected.jsonl"

GPU idle-unload check

gpu-guard-unload.json runs every 10 minutes and also has a manual trigger. It GETs http://127.0.0.1:11434/api/ps. Shipped config: dryRun true, idleMinutes 15, assumedKeepAliveMinutes 5, unloadPinned false.

Estimated last use is expires_at minus 5 minutes. A model is idle when now minus that estimate is at least 15 minutes. A model whose expiry is more than 24 hours away is pinned and is left loaded unless you set unloadPinned true. While dry-run is true, an idle model is only logged as would unload plus the model name. No unload request is sent.

On 2026-10-03 the tested 12 GB card had qwen3:14b loaded at 12 GB, 15 percent of the work on the CPU and 85 percent on the GPU, context 32,768. Ignore a number painted on a provider name. Read the context on the loaded-model list.

The kit

This page is free. The kit is the tested path, the guardrail scripts, the workflows, and the failure log. The price is $24. One-time payment. Personal-use license. 30-day refund.

Buy the kit for $24

Free preflight checklist. No email needed.

Checkout is handled by Payhip. You get the download link from the store right after paying.

Back to the kit page