james.maes 61e06fb2dc docs(roadmap): user-outcome-focused milestone roadmap
All 142 open issues triaged into 6 GitHub milestones organized by
user-facing capability rather than technical area:

- v0.1 — It actually works (28 issues): voice, listening, seeing,
  facts, debugging dialogs, basic UI. Tactical patches for CRITICAL
  audit findings so user has working Jarvis NOW.
- v0.2 — Observable + stable (23): MED/LOW audit punch-list + PTT/TCC.
- v0.5 — API M-0..M-3 (31): Self/Settings/Diagnostics surfaces; B-08.
- v0.8 — API M-4..M-7 (36): Memory/Vision/Voice/Turn; B-03/B-04/B-05/B-06.
- v1.0 — Shipping (13): commenting, doc reconciliation.
- v1.1 — Backlog (11): Orpheus, WhisperKit, Voice Log, presence.

ROADMAP-2026-05-12.md supersedes the build-phase ROADMAP.md from
2026-04-22 (kept for history; describes shipped phases). CLAUDE.md
gains a Roadmap section pointing to the new doc + milestones URL.

Also lands the 5 audit-2026-05-12 reports referenced by the roadmap
(bus-hud, mcp-agent, memory, vision, voice).
2026-05-12 14:52:25 -05:00
2026-05-04 17:19:19 -05:00

Jarvis

A personal, always-on macOS AI assistant styled after the Iron Man HUD. Native Swift host with an embedded React + React Three Fiber HUD, driven by an agent loop that streams Claude Opus 4.7 (primary) or local Ollama (qwen2.5-coder:32b) over an LLMProvider protocol, with MCP tool servers, fully-local voice (openWakeWord + SpeechAnalyzer + AVSpeechSynthesizer / Orpheus), local memory (SQLite + FTS5 + sqlite-vec), and on-device vision capture. Personal use only — single user, single machine.

Status

develop at app version 0.1.0 (Info.plist CFBundleShortVersionString). Nine planned phases shipped; Phase 10 (self-awareness diagnostics) mid-flight — Wave 1 landed at 3974a15 (four self-knowledge MCP tools). Post-milestone audit-and-stabilize closures (Tracks A, B-1..7, C-1..6, D-1..6) are in. Day-to-day state lives in docs/SESSION-STATE.md and docs/TODO.md; milestone-level state in .planning/STATE.md.

What works today, against the live tree:

Modality State
Text turns (Anthropic + Ollama) Working end-to-end; HUD chat panel + token streaming
Voice loop (wake word → VAD-gated STT → orchestrator → tier-1 TTS) Wired end-to-end; HUMAN-UAT pending on real hardware
Tier-2 TTS (Orpheus) Deferred — B-8 requires ~6 GB MLX weight download; degrades to tier-1
Vision (camera capture, frame-attach to a turn) Wired; T2 vision provider explicitly missing pending sidecar
Memory (extraction + hybrid search) Code-complete; functionally OFF until vec0.dylib ships (Track D-5/D-6) and ollama pull nomic-embed-text runs (D-7)
MCP tools Helpers: get_time, get_clipboard, run_applescript (HUD-confirmation-gated). In-process: search_memory, forget_fact (memory; gated on store + vec availability), and the Phase 10 Wave 1 self-knowledge set — list_audio_devices, get_active_audio_route, get_self_state, list_camera_devices (74b9ac2).

Personal-use only; not multi-tenant, not auth'd, not a commercial product. See .planning/PROJECT.md for project context.

Architecture quick-take

  • Native Swift / SwiftUI host owns window management, OS integration (mic, camera, AppleScript, hotkeys, file I/O), the agent orchestrator, and persistent storage.
  • WKWebView hosts a React + React Three Fiber HUD for visuals only — particle ring, chat panel, camera button. The webview is a pure rendering layer; Swift holds all truth.
  • Bidirectional typed JSON Bus over WKScriptMessageHandler (packages/Bus) carries state changes Swift→JS and user actions JS→Swift.
  • LLMProvider protocol is provider-agnostic: AnthropicProvider (Opus 4.7 streaming) and OllamaProvider (/api/chat + /v1/chat/completions) both conform. Swap is a config toggle.
  • MCP for tools, separately codesigned helper apps under Contents/Helpers/. Each helper has its own TCC identity; mcp-applescript is the only one with Apple Events entitlement.

Full detail in ARCHITECTURE.md.

Repository layout

Path Purpose
App/ Swift host — AppDelegate, MenuBar, HUD window, Settings, Wizard, MCP runtime wiring
packages/ 13 Swift packages under SPM (one per subsystem). See ARCHITECTURE.md for the dependency graph.
webview/ pnpm workspace — @jarvis/bus (TS mirror of the Swift Bus protocol) and @jarvis/hud (React + R3F HUD bundle)
mcp-servers/ Out-of-process MCP helpers — mcp-time, mcp-clipboard, mcp-applescript
scripts/ Build/codesign scripts and 18 boundary-gate check-*.sh invariant linters
Resources/ Bundled assets — voice ONNX models, HUD bundle target, app icon source
docs/ Live cross-session state — SESSION-STATE.md, TODO.md
.planning/ GSD workflow artifacts — phase plans/summaries, audit reports, research syntheses, roadmap
CLAUDE.md Project conventions and architectural decisions for AI coding agents

Build & test

Requires Xcode 16+ on macOS 26 Tahoe (Apple Silicon).

SPM packages — fast, offline:

swift test --package-path packages/AgentCore
swift test --package-path packages/Voice
swift test --package-path packages/Memory
# … one per package; see CLAUDE.md > Build / test for the full list

App target (xcodebuild build -configuration Debug wrapper — swift test doesn't compile the App target on Xcode 26):

bash scripts/check-app-builds.sh

Webview HUD bundle:

bash scripts/build-webview.sh
# or, in webview/ during dev:
cd webview && pnpm install && pnpm --filter @jarvis/hud dev
cd webview && pnpm --filter @jarvis/hud test    # vitest

Boundary gates (18 grep-based architectural invariant checks; run before pushing):

for s in scripts/check-*.sh; do bash "$s" || break; done

Real-hardware / real-network env-flag tests (interactive only):

JARVIS_REAL_MODELS=1 swift test --package-path packages/Memory --filter MemoryRegressionCorpusTests
JARVIS_REAL_CAMERA=1 swift test --package-path packages/Vision --filter CameraCaptureRealHardwareTests
JARVIS_REAL_MODELS=1 swift test --package-path packages/Voice --filter OrpheusTTFATests

Key documents

  • ARCHITECTURE.md — top-level diagram, subsystem deep-dives, anti-patterns, navigation cheat sheet
  • CONTRIBUTING.md — dev environment setup, GSD workflow, commit conventions, anti-patterns
  • CLAUDE.md — settled architectural decisions and AI agent collaboration conventions
  • docs/SESSION-STATE.md — current session state, recent commits, what's next
  • docs/TODO.md — live triage list

License

Personal use only. No license is granted; no contributions are solicited from outside collaborators. The repository is public-shaped purely for portability across the author's machines.

S
Description
Personal always-on macOS AI assistant in the shape of the Iron Man HUD — native Swift brain, R3F particle-ring face, voice-first, locally-grounded.
Readme MIT
7.7 MiB
0 Stars 2 Watchers 0 Forks
Languages
Swift 90.5%
TypeScript 4.7%
Shell 4%
CSS 0.5%
GLSL 0.1%
Other 0.1%