← Project archiveConceptual project artwork

Agent Operating System

JARVIS - Personal AI Operating System

A personal AI operating system that routes models, tools, missions, approvals, memory, and workspaces through one interface. A Fastify orchestrator and Next.js HUD expose the workflow as an operable product.

Role
Solo development · personal project
Period
2026.02 - Present
Organization
Personal Project

01 / Scope

A request is not yet a completed execution.

A personal AI operating system connecting a Fastify orchestrator with a Next.js operator interface. Requests, provider choices, approvals and execution results have different roles instead of being hidden in one chat response.

I built the orchestration backend, modular HUD, workspace and approval surfaces, and quality tooling. The public source linked here is pinned to its March 28, 2026 revision.

02 / Responsibilities

From an execution request to an observable result.

A reading map of the public execution route. The approval API below is a separate concern; this is not a claim that every execution is universally approval-gated.

Execution request · code / compute

  1. Request

    Resolve context and provider choice

    The route validates the payload and resolves the user, memory context, provider credentials and model preferences. An idempotency key is required.

  2. Run identity

    Reuse an existing run or create one

    A run is looked up using the user and idempotency key. The replay branch returns the existing record; otherwise the route creates a run and starts asynchronous work.

  3. Result

    Observe the run through events

    New work is accepted separately from completion. The SSE endpoint reports updated, completed or failed run states by observing the stored run.

Keep the record separate from the connection

The inspected SSE handler reads run state and closes on completion, failure or a timeout. The run record and the stream are different objects; the page does not promise automatic event replay or exactly-once execution.

What the design separates.

Separate acceptance from completion

The execution route returns an accepted response for new asynchronous work. The SSE handler separately exposes completion and failure, so an HTTP response need not be mistaken for the final result.

Give repeated requests an identity

The public route contains an existing-run lookup and a replay response keyed by user and idempotency key. This establishes the replay branch in source, not a concurrency or exactly-once guarantee.

Make routing inspectable

Provider choice, attempts and fallback information are included in the execution representation. The relevant source is linked below rather than replaced with a fictional dashboard or successful run.

03 / Review cases

Questions at the boundaries.

Review scenarios, not reported incidents or passing runtime tests.

The same execution request is submitted again
Mechanism
The existing-run branch returns the stored run with an idempotent-replay marker.
What to check
Inspect the linked route and the user/key lookup. Concurrent requests and persisted uniqueness still require a separate runtime test; none was run for this page.
An approval is rejected or already decided
Mechanism
The approval endpoint accepts approved/rejected decisions and reports not-found or already-decided outcomes when the store returns no result.
What to check
Read the decision handler separately from execution authorization. Do not infer a universal blocking policy from this one endpoint.
The result stream closes before the operator sees completion
Mechanism
The SSE endpoint polls stored run state, closes terminal runs and has a timeout. A separate run-read endpoint is also present.
What to check
The source makes a subsequent state read possible; it does not by itself establish automatic frontend reconnection or delivery of every intermediate event.

The implementation scope

JARVIS

Orchestrator Backend

API & Workflow Core

  • Missions/councils/executions routes
  • Provider routing and policies
  • Role-gated approvals and workspaces

HUD Frontend

Operator Interface

  • Visual core + modular widgets
  • Workspace and approval surfaces
  • Mission-focused navigation

Quality Loop

Verification & Dogfood

  • OpenAPI-generated client types
  • E2E smoke coverage
  • Dogfood reports with screenshot evidence

Technology

  • TypeScript
  • Next.js
  • Fastify
  • PostgreSQL
  • Zod
  • Playwright
  • React Three Fiber
  • SSE

04 / Sources & record

Read the basis of the account.

The execution and approval routes and a regression script were inspected in the public repository. Source inspection is not an end-to-end runtime or security certification.

The links are original public source at e2e2ebf, not a reconstructed implementation. The regression script was read, not executed. No runtime screenshots, successful-run counts or performance results were fabricated.

Read the existing technical record

The problem

Needed a single product surface that can route ambiguous user requests into research, code, approval, and automation flows while keeping role gates, streaming state, provider fallback, and workspace execution understandable and operable.

The response

Implemented a Fastify backend with typed route modules, auth/role enforcement, rate limits, SSE streams, provider registry/policies, missions/councils/executions, and workspace PTY endpoints. Built a modular Next.js HUD with a visual core, widget routing, OpenAPI-synced client types, and Playwright-backed dogfood coverage.

Overview

  • Solo-built personal AI operating system that combines an orchestration backend with a HUD-style operator interface.
  • The system is organized around task routing, approval gates, provider control, workspace execution, and evidence-oriented UI modules.

Backend Surface

Orchestration API

  • Fastify route modules for auth, providers, assistant contexts, missions, councils, executions, workspaces, memory, approvals, reports, radar, upgrades, and Jarvis session flows
  • Role-gated auth/session handling, rate limiting, raw-body parsing, and error normalization
  • SSE/event endpoints for mission, council, execution, assistant, dashboard, and notification updates

Runtime & Policy Controls

  • Provider routing policies, credential resolution, registry refresh, and token/health workers
  • Workspace runtime endpoints for PTY spawn/write/read and shutdown
  • Approval-gated high-risk actions with notification delivery channels

Frontend Surface

HUD Interface

  • Next.js app with a modular widget shell (Inbox, Assistant, Council, Workbench, Tasks, Reports, Watchers, Dossier, Notifications, Skills, Approvals, Memory, Settings, Model Control, Ideation)
  • Visual core page with deterministic engine controls and scene switching
  • Deep-linkable workspace routes for core, studio, mission, tasks, approvals, automations, settings, and reports

Typed Client Integration

  • OpenAPI-generated frontend types synced from the backend contract
  • Client endpoint layer for typed requests/responses across widgets and workflows

Quality Loop

  • Playwright smoke coverage for core visibility, HUD intake autoplay, council traces, session restore, and auth/settings flows
  • Dogfood reports with screenshot evidence and issue validation artifacts stored inside the repository
  • Public GitHub repository available for direct review of code and verification assets
Discuss a related problem