Repository navigation
11 Cross OS Notes
Updated: 2026-08-27
Nokido supports Linux · macOS · Windows. This page lists OS-specific behaviors, gotchas, and the path each subsystem takes per platform.
| Subsystem | Linux | macOS | Windows | Notes |
|---|---|---|---|---|
Hub MCP :8766
|
✅ | ✅ | ✅ | Pure Python, Starlette. No OS-specific code. |
| RAG (FTS5 + FAISS) | ✅ | ✅ | ✅ | SQLite + faiss-cpu cross-platform. |
brain_worker (BGE-M3) |
✅ | ✅ | ✅ | Rust + ONNX. Backend selection per OS (see below). |
| Vault | ✅ | ✅ | ✅ | DPAPI / Keychain / libsecret (see 08). |
forge_semantic_firewall |
✅ | ✅ | ✅ | Pure Python. |
forge_sovereign_membrane |
✅ | ✅ | ✅ | SQLite WAL — cross-platform. |
| MCP clients (Claude/Gemini/Codex/Cline) | ✅ | ✅ | ✅ | Client-side, OS-agnostic. |
| TUI (Textual) | ✅ | ✅ | ✅ | Modern Terminal recommended on Win (Windows Terminal, not cmd.exe). |
| Docker compose | ✅ | ✅ | ✅ | Docker Desktop required on Win/macOS. |
tools/restart_claude.py |
❌ | ❌ | ✅ | Windows-only (NSSM + PowerShell). |
| NSSM services | — | — | ✅ | Windows-only service manager. |
| Sandbox accounts | — | — | ✅ |
LaForgeSbxOnline, LaForgeSbxOffline are Win-specific. |
| netcfg-agent | ✅ | ✅ | ✅ | asyncssh works everywhere. |
bash_guard hook |
✅ | ✅ | ✅ | Hook runs in the Claude Code harness — OS-agnostic. |
Nokido requires Python 3.12+. Recommendations :
-
Linux : distro Python ≥ 3.12 or
pyenv install 3.12.8. Use a venv :python3 -m venv .venv && source .venv/bin/activate. -
macOS : Homebrew
brew install python@3.12. Same venv pattern. -
Windows : we use miniforge3 (Conda-forge ecosystem). Memory
python_toolchaindocuments the split :~/miniforge3/python.exeis the canonical interpreter ; 3.14.3 installed but unused by Nokido.
The install.sh / install.ps1 scripts detect the right Python
automatically. If you have multiple Pythons in PATH, set LAFORGE_PYTHON
env var explicitly.
⚠ Never run python raw in any Nokido-touching script — always
use the venv's absolute path. See CLAUDE.md rule #11.
Nokido code uses :
ROOT = Path(__file__).resolve().parent.parent…and os.environ.get("LAFORGE_ROOT", str(...)) for override. No
hardcoded ~/ paths in tracked code (audit Phase 4 pre-public).
If you find one, open an issue.
- Python : always use forward slashes or
Pathobjects. They work everywhere. - Shell scripts :
install.shuses/.install.ps1uses\(PowerShell native) but is fine with/too.
- Linux/macOS :
~orPath.home(). - Windows :
%USERPROFILE%env var, mapped toPath.home()by Python.
The vault store goes to :
- Linux :
~/.local/share/nokido/machine_vault.dat(XDG) or<repo>/data/machine_vault.dat(current default). - macOS : Keychain (no file).
- Windows :
<repo>/data/machine_vault.dat(DPAPI machine-scope).
⚠️ brain_worker(:5557) has been disabled since 2026-06-03 (BGE-M3 ONNX, bad allocation). The live embedder isNokidoLlamaEmbed(:8099), reached throughforge_embed_router. This section is kept as an archive, should :5557 be repaired.
brain_worker (Rust + ONNX) auto-detects :
| Platform | Default backend | Alternatives |
|---|---|---|
| Windows | DirectML (Radeon 780M, Intel Arc, NVIDIA) | Vulkan, CPU |
| Linux | OpenVINO (Intel), ROCm (AMD), CUDA (NVIDIA) | Vulkan, CPU |
| macOS | CoreML (M1+) | Metal, CPU |
Override : BRAIN_WORKER_BACKEND=cpu|directml|vulkan|openvino|coreml|cuda.
Memory npu_xdna1_limits documents : AMD NPU XDNA1 (in Radeon 780M /
Strix Point) is ops-light only — can't do BGE-M3 batch or LLM
inference. Use the iGPU via DirectML/Vulkan instead.
See 08 — Vault & secrets. Summary :
-
Windows : DPAPI machine-scope (
CRYPTPROTECT_LOCAL_MACHINE). Multi-account readable. Purectypes, zero deps. -
macOS : Keychain via
keyringpackage. Per-user, hardware-attested on Apple Silicon. -
Linux : libsecret / Secret Service via
keyring. Requireslibsecret-1-0+ a running keyring daemon (GNOME Keyring or KWallet). Install hint :- Debian/Ubuntu :
sudo apt install libsecret-1-0 gnome-keyring - Fedora :
sudo dnf install libsecret - Arch :
sudo pacman -S libsecret gnome-keyring
- Debian/Ubuntu :
If no keyring daemon is running on Linux (e.g. headless server), keyring
falls back to the chain : WCM → .env → os.environ. For headless
deployments, use a .env with chmod 600 OR mount a Docker secret.
| OS | Tool | Config |
|---|---|---|
| Windows | NSSM | Services : LaForge-Master, LaForgeMCP, BrainWorker, etc. See tools/forge_nssm_hardening.py. |
| Linux | systemd | Service files in deploy/*.service. Install via sudo cp deploy/*.service /etc/systemd/system/ && sudo systemctl enable --now laforge-master. |
| macOS | launchd | Plist in deploy/com.nokido.master.plist. Install via cp deploy/com.nokido.master.plist ~/Library/LaunchAgents/ && launchctl load -w ~/Library/LaunchAgents/com.nokido.master.plist. |
On all OSes, you can also run the hub directly (no service manager) for dev :
laforge-hub
# or
python -m tools.nokido_hubDocker abstracts most OS differences. Two notes :
- Windows : Docker Desktop must use the WSL2 backend (not Hyper-V) for best performance + faiss support.
-
macOS : Docker Desktop on Apple Silicon :
linux/amd64images run via Rosetta 2 (slow). The Dockerfile multi-stage builds arch-native when you build locally on M1+ — no manual cross-compile needed.
-
libsecretneeded for vault (see above). - For
mlextras : CUDA wheels assume NVIDIA + matching driver. ROCm or CPU-only torch via--extra-index-url https://download.pytorch.org/whl/cpu. - systemd unit files in
deploy/— review user/group before enabling.
- M1/M2/M3 : torch CPU wheels work, MPS backend works. CUDA does not
exist on macOS — skip
mlextras if you only need inference (use Ollama with CoreML / Metal). - Brew
python@3.12recommended over the system Python.
- PowerShell 7+ required (not PS 5.1) for some scripts.
- Long paths : enable Win10/11 long path support
(
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled = 1) — fixes FAISS build issues. - Antivirus : exclude the Nokido dir from real-time scan — Windows
Defender on
embeddings.db(380k rows, frequent writes) cripples performance.
CI matrix runs on ubuntu-latest, macos-latest, windows-latest with
Python 3.12. See .github/workflows/ci.yml.
Run locally on all three :
# Linux/macOS
EXTRAS=hub,rag,llm bash install.sh
source .venv/bin/activate
pytest tests/test_forge_scorecard.py
# Windows
.\install.ps1
.\.venv\Scripts\Activate.ps1
pytest tests/test_forge_scorecard.py-
CRLF normalization : Git auto-normalizes line endings on Windows
(
core.autocrlf=true). Don't fight it —.gitattributeshandles most cases. If a Python file fails to import after a checkout, rungit checkout -- <file>to reset. -
SQLite WAL on Windows :
.db-walfiles don't always release on process exit. The hub force-checkpoints on shutdown ; if you seedatabase is locked, kill stale Python processes. -
NTFS reserved characters :
:?|etc. break under WSL mounts. Don't use them in chunk IDs.
- Always set
PYTHONIOENCODING=utf-8andPYTHONUTF8=1in the environment before launching anything Nokido-related. The Dockerfile +install.shdo this automatically. - On Windows, the console is
cp1252by default → emoji and non-ASCII in log lines fail. Theforge_vault_seed_agent_tokens.pyscript uses ASCII-only output for this reason. - French / English source comments coexist. Public-facing docs (this wiki, MANIFESTO, README) are bilingual or English ; code comments may be either.
Nokido-labs/nokido · AGPL-3.0 (licence commerciale disponible) · wiki genere depuis docs/wiki de v0.20.12 (5fbcdc8) — corrections : ouvrir une issue ou une PR sur le depot.
Nokido
English
- 01 — Installation
- 02 — Quick Start
- 03 — Architecture overview
- 04 — MCP clients setup
- 05 — LLM providers
- 06 — Hub API reference
- 07 — Security model
- 08 — Vault & secrets
- 09 — TUI reference
- 10 — Docker profiles
- 11 — Cross-OS notes
- 12 — AMI cognitive stack
- 13 — Hardware roadmap
- 14 — Troubleshooting
- 15 — Glossary
- 16 — FAQ
- 17 — First launch
- 18 — Launchers & service files
- 19 — Knowledge Pack
- 20 — Modules Reference
- 21 — SSoT Cross-CLI
- 22 — Governance, cognition & self-safety
- 23 — Orchestration & Workflows
- 24 — Cloud peers (claude.ai, ChatGPT)
- OpenAI Gateway souverain
- Nokido — Wiki
- SearXNG Keeper
- Web Egress Gateway —
:7779
Français
- Accueil
- 01 — Installation
- 02 — Démarrage rapide
- 03 — Aperçu architecture
- 04 — Configuration clients MCP
- 05 — Providers LLM
- 06 — Référence API hub
- 07 — Modèle de sécurité
- 08 — Vault & secrets
- 09 — Référence TUI
- 10 — Profils Docker
- 11 — Notes multi-OS
- 12 — Pile cognitive AMI
- 13 — Roadmap matérielle
- 14 — Troubleshooting
- 15 — Glossaire
- 16 — FAQ
- 17 — Premier lancement
- 18 — Lanceurs & fichiers services
- 19 — Knowledge Pack
- 20 — Référence des modules
- 21 — SSoT Cross-CLI
- 22 — Gouvernance, cognition & auto-sûreté
- 23 — Orchestration & workflows
- 24 — Pairs cloud (claude.ai, ChatGPT)