An intent-driven AI operating system that bridges human intent and AI execution. Users issue tasks, and IntentOS automatically generates intent cards that are completed across multiple applications by a general-purpose agent.
Under Development — This project is in early development. APIs and architecture may change.
IntentOS is a monorepo with 7 packages:
packages/
protocol/ — Shared types, Envelope, EVENT_META, DTOs (pure types + constants)
core/ — Domain logic: state machines, transitions, projections (no IO)
sdk/ — Browser WebSocket client with reconnect, seq tracking, cursor
ui/ — Design system tokens + React hooks
adapters/
openclaw/ — OpenClaw agent adapter with policy gate
apps/
web/ — React + Vite frontend (Boot, Home, Execution pages, AI Orb)
server/ — Fastify BFF + WebSocket + SQLite event store
desktop/ — Electron shell that hosts the web app
- Node.js >= 20
- pnpm >= 9
Use the Desktop flow below for the default local setup.
# Install dependencies
pnpm install
# Create root env file
cp .env.example .env
# (PowerShell)
# Copy-Item .env.example .envYou can get OPENCLAW_GATEWAY_TOKEN for your root .env from:
openclaw dashboard --no-openFrom output like Dashboard URL: http://127.0.0.1:18789/#token=..., copy the value after token= into .env:
Then start desktop app (will run server + web + electron together):
pnpm dev:desktopAfter the first pnpm dev:desktop, approve the new desktop device in OpenClaw:
openclaw devices list
openclaw devices approve <pending-request-id>Use openclaw devices list to find the pending device request id (a UUID shown in the Pending pair device row), then run openclaw devices approve <pending-request-id>.
# Install dependencies
pnpm install
# Create root env file
cp .env.example .env
# Start the server (port 3001)
cd apps/server && pnpm dev
# In another terminal, start the web app (port 5173)
cd apps/web && pnpm devOpen http://localhost:5173 to see IntentOS.
- Boot screen — System checks (server, agent, storage) with animated status
- Home dashboard — Suggested tasks (top) and active/completed intent cards
- AI Orb — Draggable floating assistant, click to chat
- Execution page — Click any intent card to see step timeline and artifacts
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite 7, Tailwind CSS 4, Zustand, Framer Motion |
| Backend | Fastify, WebSocket (ws), SQLite (better-sqlite3), Drizzle ORM |
| Protocol | Event-sourced, dual-layer streams (global + run), cursor-based replay |
| Build | pnpm workspaces, Turborepo, TypeScript 5.8 |
IntentOS uses an event-driven WebSocket protocol:
- CMD — Client commands (intent/create, chat/send, etc.)
- ACK — Server acknowledgments with accepted/rejected status
- EVT — Replayable facts stored in event store (intent/created, run/step_upserted, etc.)
- NOTIFY — Ephemeral UI enhancements (run/progress, global/snapshot)
See docs/architecture-plan.md for the full protocol specification.
# Run all builds
pnpm build
# Type check
pnpm typecheck
# Lint
pnpm lint
# Format
pnpm format
# Clean all build artifacts
pnpm clean