# JARVIS-QVAC Local-first Ubuntu GNOME voice assistant scaffold. The cognitive core is the already-extracted `/home/raven/dev/agent-harness`, copied into `vendor/agent-harness`; Jarvis does not copy or depend on `/home/raven/dev/dlinux`. ## Bootstrap ```bash npm install npm test npm run cu-doctor npm run gpu-doctor npx qvac doctor npx qvac serve --openai --host 127.0.0.1 ``` The daemon bridge loads the harness in-process with `Agent.engine.load()` and creates sessions with `Agent.create()`. The optional QVAC HTTP sibling is configured for `127.0.0.1:11434`. The GNOME extension is an intentionally thin ESM panel shell; inference, audio, portals, and computer-use actuation belong in user services. GPU inference is a hard requirement. `gpu-doctor` must report a QVAC-visible GPU and `jarvisd` refuses to continue if the loaded model reports `device: cpu`. This prevents a misleading CPU mode and competing QVAC workers. Current repository scope is phase-0/phase-1 bootstrap plus the computer-use grant boundary. Portal ScreenCast/RemoteDesktop, AT-SPI, PipeWire audio, the full D-Bus adapter, GTK control-center pages, and the voice state machine are the next implementation slices. See [docs/agent-harness-map.md](docs/agent-harness-map.md) and [docs/cu-acceptance.md](docs/cu-acceptance.md).