Bring the best models you trust into one auditable council. Runs entirely from a USB drive. Offline-first · private · open-source. A deliberated answer with dissent shown, not one chatbot's opinion.
Inspired by PortableMind and the OSS DIY build techjarves/Portable-AI-USB. Its core is different: an auditable AI Council instead of a single model. Offline by default; online frontier council on opt-in.
Today this repo is the website, documentation, and v0.3 spec. The product is not built yet; see the status, roadmap, and contribute to help build it.
A single model gives you one answer you have to trust blindly. usb.plan.ai runs a 3-stage council (First Opinions → Peer Review → Chairman) and shows you the full trace: every opinion, the ranking, and where the models disagreed.
"Run this risky bash script offline."
Solver → just sudo it.
Skeptic → ⚠ sudo + unverified script = full-system exposure.
Security → no checksum, no sandbox. block.
Chairman → dry-run in a sandbox, verify the checksum, run as your user.
The Skeptic catches what a single chat misses. That's the whole point.
Swappable "seats", not "the smartest models". The roster lives in Council seats; redistribution policy lives in Model licenses. The default bundle stays MIT/Apache only, with Gemma opt-in because its notice must travel with redistribution.
Use a fast USB drive and run preflight first; tier sizing, performance, and filesystem rules live in hardware tiers, performance, and directory structure.
- Download the latest release and unzip it onto the drive.
- Run preflight: double-click
preflight-check.*. It measures filesystem, USB read speed, RAM, and GPU/VRAM, then recommends a tier. (Run this first.) - Install: run
install.*, pick a tier (Pocket / Field / Lab). Models download intomodel-packs/with SHA-256 verification. - Done. Your portable council is ready.
Double-click the launcher for your OS. It serves the UI in your browser at
http://localhost:4321.
| OS | Launcher |
|---|---|
| Windows | start-windows.bat |
| macOS | start-mac.command |
| Linux | start-linux.sh |
First run on a new machine can take a moment while the engine extracts once and is auto-cleaned on eject. Ask the demo prompt and watch the council trace.
- Offline by default: nothing leaves the stick. UI shows offline.
- Opt-in online: escalate to the online frontier council only after a Privacy-Diff shows you exactly what's sent, to whom, and the cost. UI shows online-council.
- Vault: keys, chats, and traces are encrypted (Argon2id + AES-256), unlocked by your passphrase. Key material is never written plaintext.
- Minimal-trace, honestly: no telemetry, no accounts. But a portable app can't leave zero trace on every OS, and a compromised host is out of scope. We document the unavoidable artifacts instead of pretending they don't exist.
usb.plan.ai/
├── start-windows.bat / start-mac.command / start-linux.sh
├── preflight-check.* ← FS / USB-speed / RAM / GPU check (run first)
├── install.* ← tier + model selection
├── engine/ ← llama.cpp llama-server, whisper.cpp, vision
├── core/ ← FastAPI council orchestrator + council.config.yaml
├── ui/ ← browser-only web UI
├── model-packs/ ← verified manifests (license + SHA-256)
├── recipes/ playbooks/ ← roles, seats, offline workflows
├── evals/ ← Council-vs-Single proof data
├── plugins/ ← new providers / models / tools
└── vault/ ← Argon2id + AES-256 (keys, chats, traces)
Hardware sizing lives in hardware tiers. Below Lab, use the local role council; Lab is the local multi-model council tier.
- Code license ≠ model license. This repo is Apache-2.0; each model keeps its
own weights license. See Model licenses
and
model-packs/manifests. - pnpm only for the docs/site build:
npm/yarnsilently break it. - Never "just
sudo" a downloaded script. Ask the council first.
Full documentation: usb.plan.ai/docs. It covers architecture, the council, models, hardware, security, config, evals.
It's a council kit, not a monolith. Add a recipe/, a model-pack/, a
plugin/, or a playbook/. Good first issues are tagged. See
docs → Contributing.
Apache-2.0 (code). Model weights are governed by their own licenses. See
LICENSES.md.
Open. Offline. Auditable. Smarter together. plan.ai