Historical: install P.O.W.E.R. 3.5.0 on Windows 11 25H2¶
Not a
v3.6.2procedure. Windows support is deferred indefinitely and has no scheduled release target. The commands below preserve the historicalv3.5.0host-validation procedure and must not be presented as 3.6.2 compatibility or release certification.
This guide installs P.O.W.E.R. v3.5.0 in an isolated virtual environment,
creates a clean vault, verifies the CLI, and configures an MCP client. It uses
PowerShell syntax throughout.
Published release: the signed
v3.5.0tag and immutable wheel are available on the GitHub release page. Physical Windows evidence remains a separate target-host gate; see the platform support matrix.
Support and evidence boundary¶
- P.O.W.E.R. requires Python 3.11 or newer.
- Windows 11 25H2 is an official Windows 11 release (OS build family
26200). - ONNX Runtime supports Windows 11, and its Windows builds require the current Microsoft Visual C++ runtime.
- P.O.W.E.R.
v3.5.0includes an automated cross-platform regression for the Windows rename-overwrite behavior. - Physical Windows 11 25H2 validation was completed on 2026-08-08 for follow-up
revision
4e5b2b9; see the validation report. This validates the follow-up source/build and does not move or reissue the immutablev3.5.0release artifacts.
Official prerequisites:
- Windows 11 release information
- Python for Windows
- Python virtual-environment guidance
- Microsoft Visual C++ Redistributable
- ONNX Runtime installation requirements
1. Confirm Windows and architecture¶
Open Windows Terminal with a PowerShell tab. Administrator privileges are not required for the per-user installation in this guide.
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber, OsArchitecture
[System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture
For Windows 11 25H2, OsBuildNumber should begin with 26200. P.O.W.E.R. uses
CPU ONNX Runtime; no CUDA toolkit is required.
2. Install prerequisites¶
Install a 64-bit CPython release from python.org. During setup, enable the
Python launcher and PATH options offered by the installer. Python 3.13 is a
conservative recommended choice; Python 3.11–3.14 satisfy the current package
contract.
Install the current Microsoft Visual C++ 2015–2022 Redistributable matching the host architecture. Git is optional for the release-wheel path below, but is required for a source or editable installation:
winget install --id Git.Git -e --source winget
Close and reopen Windows Terminal after installing prerequisites, then verify:
py --version
py -m pip --version
git --version
If git is not installed because you will use only the release wheel, the
git --version check may be skipped.
3. Create the isolated runtime¶
Use explicit paths so P.O.W.E.R. works without activating a PowerShell script or changing the execution policy:
$PowerHome = Join-Path $env:LOCALAPPDATA "POWER"
$VenvDir = Join-Path $PowerHome ".venv"
$VenvPython = Join-Path $VenvDir "Scripts\python.exe"
$PowerExe = Join-Path $VenvDir "Scripts\power.exe"
New-Item -ItemType Directory -Force -Path $PowerHome | Out-Null
py -m venv $VenvDir
& $VenvPython -m pip install --upgrade pip
Verify that the virtual environment, not the global interpreter, is selected:
& $VenvPython -c "import sys; print(sys.version); print(sys.executable); print(sys.prefix != sys.base_prefix)"
The last line must be True, and the executable path must end in
POWER\.venv\Scripts\python.exe.
4. Install the immutable release¶
The release wheel avoids Git and pins the P.O.W.E.R. source version. Its Python dependencies are still resolved from the configured Python package index.
$ReleaseWheel = "https://github.com/weby-homelab/power-framework/releases/download/v3.5.0/power_framework-3.5.0-py3-none-any.whl"
& $VenvPython -m pip install $ReleaseWheel
if ($LASTEXITCODE -ne 0) { throw "P.O.W.E.R. installation failed" }
Verify the executable, distribution metadata, and lean FTS import:
& $PowerExe --version
& $VenvPython -c "from importlib.metadata import version; print(version('power-framework'))"
& $VenvPython -c "import power_framework; print('lean FTS import: OK')"
if ($LASTEXITCODE -ne 0) { throw "P.O.W.E.R. import verification failed" }
Both version checks must report 3.5.0, and the import check must print
lean FTS import: OK. Install the explicit [remote] extra before configuring
MCP, and [semantic] only when dense search is intentionally enabled:
$RemoteRequirement = "power-framework[remote] @ $ReleaseWheel"
& $VenvPython -m pip install $RemoteRequirement
Alternative: install from the pinned tag¶
Use this only when Git is installed:
& $VenvPython -m pip install "git+https://github.com/weby-homelab/power-framework.git@v3.5.0"
Do not install unpinned main when reproducibility matters.
5. Create and verify a clean knowledge vault¶
Choose a new or empty directory. power init intentionally refuses a non-empty
directory; use the migration guide for existing knowledge bases.
$Vault = Join-Path $env:USERPROFILE "Documents\POWER-Vault"
& $PowerExe init $Vault
if ($LASTEXITCODE -ne 0) { throw "Vault initialization failed" }
& $PowerExe ingest $Vault --type Resource --title "First note" --description "Clean-install acceptance note"
if ($LASTEXITCODE -ne 0) { throw "First note ingestion failed" }
& $PowerExe index $Vault --strict
if ($LASTEXITCODE -ne 0) { throw "Strict index generation failed" }
& $PowerExe lint $Vault
if ($LASTEXITCODE -ne 0) { throw "Vault lint failed" }
& $PowerExe markdown-check $Vault
if ($LASTEXITCODE -ne 0) { throw "Markdown check failed" }
An orphan warning for the first unlinked note is informational. The acceptance
gate is exit code 0, no invalid OKF metadata, and no broken internal links.
Build the lightweight FTS index and prove retrieval without downloading model assets:
& $PowerExe sync $Vault --fts-only
if ($LASTEXITCODE -ne 0) { throw "FTS synchronization failed" }
& $PowerExe search $Vault "acceptance" --mode fts
if ($LASTEXITCODE -ne 0) { throw "FTS search failed" }
The result must include First note.
6. Optional dense and reranked search¶
Semantic and reranked search require pinned BGE-M3 and reranker model assets. The first full synchronization can take significant time, network bandwidth, disk space, and memory:
& $PowerExe sync $Vault
if ($LASTEXITCODE -ne 0) { throw "Dense synchronization failed" }
& $PowerExe search $Vault "clean installation" --mode semantic
if ($LASTEXITCODE -ne 0) { throw "Semantic search failed" }
Model files are managed by the Hugging Face cache, not by the virtual environment directory. P.O.W.E.R. validates its pinned model contract and fails closed when required assets are absent or corrupt. Do not disable Microsoft Defender or SmartScreen to make a failed download pass; inspect the error, proxy, available disk space, and security event first.
7. Configure an MCP client¶
Always point the client at the virtual environment's exact interpreter. The
global py launcher may select a different interpreter where P.O.W.E.R. is not
installed.
For Claude Desktop, edit
$env:APPDATA\Claude\claude_desktop_config.json. Replace YOUR-NAME with the
actual Windows user directory, or obtain the exact values with the PowerShell
commands below:
$VenvPython
$Vault
Example JSON (backslashes must be doubled):
{
"mcpServers": {
"power": {
"command": "C:\\Users\\YOUR-NAME\\AppData\\Local\\POWER\\.venv\\Scripts\\python.exe",
"args": ["-m", "power_framework.mcp"],
"env": {
"POWER_VAULT_DIR": "C:\\Users\\YOUR-NAME\\Documents\\POWER-Vault"
}
}
}
}
Before restarting the MCP client, validate the configured interpreter and vault:
$env:POWER_VAULT_DIR = $Vault
& $VenvPython -c "import os; from pathlib import Path; import power_framework.mcp; p=Path(os.environ['POWER_VAULT_DIR']); assert p.is_dir(); print('MCP preflight: OK')"
Restart the MCP client after saving its configuration. A long-lived client does not automatically reload an updated Python environment or JSON file.
8. Upgrade, rollback, and uninstall¶
Upgrade to a specific release by replacing the version in the wheel URL and
running the same install command with --upgrade. Verify power --version
afterward.
Rollback to the previous stable release, v3.4.5:
$RollbackWheel = "https://github.com/weby-homelab/power-framework/releases/download/v3.4.5/power_framework-3.4.5-py3-none-any.whl"
& $VenvPython -m pip install --force-reinstall $RollbackWheel
& $PowerExe --version
Uninstall the application without touching the vault:
& $VenvPython -m pip uninstall power-framework
The knowledge vault is ordinary Markdown and remains separate from the Python runtime. Back it up before deleting either directory.
Troubleshooting¶
| Symptom | Resolution |
|---|---|
py is not recognized |
Re-run the python.org installer with the launcher enabled, reopen Terminal, and verify the Windows App Execution Aliases/PATH configuration. |
power is not recognized |
Use the explicit $PowerExe path from this guide; no global PATH edit is required. |
Activate.ps1 is blocked |
Activation is optional. Continue using $VenvPython and $PowerExe. If you choose to change execution policy, review Microsoft's execution-policy guidance and organizational Group Policy first. |
DLL load failed while importing onnxruntime |
Install or repair the current Visual C++ 2015–2022 Redistributable matching the host architecture, then reopen Terminal. |
pip install git+... fails |
Install Git for Windows, or use the release-wheel path, which does not require Git. |
| MCP client reports module not found | Its command points to the wrong Python. Use the full .venv\Scripts\python.exe path and restart the client. |
Explicit POWER_EMBED_DEVICE=cuda fails with requested_onnx_provider_not_bound |
This is the fail-closed GPU contract: the session did not bind CUDA. Keep the error, verify the pip nvidia-* runtime and onnxruntime-gpu, or set POWER_EMBED_DEVICE=auto only when CPU fallback is intended. |
power init refuses the directory |
The target is not empty. Do not bypass the guard; use a new path or follow the migration guide. |
| Dense sync fails | Keep the failure closed. Check disk space, network/proxy access, the exact model error, and retry; FTS remains available through sync --fts-only and search --mode fts. |
Acceptance checklist¶
- Windows reports version 25H2 / build family
26200. - The selected Python is 3.11 or newer and the venv check prints
True. power --versionand distribution metadata both report3.5.0.power_frameworkimports successfully without neural or MCP extras.- If MCP is configured, install the explicit
[remote]extra and run its preflight with the same interpreter. init,ingest,index --strict,lint, andmarkdown-checkexit0.- FTS sync exits
0and search returns the acceptance note. - MCP preflight prints
MCP preflight: OKusing the exact configured Python. - Dense/reranked capability is claimed only if the optional full sync and corresponding search pass on the target Windows host.