┌──────────────────────────────────────────────┐
│ unlimigent — spatial agent orchestration │
│ a spatial interface to paseo │
└──────────────────────────────────────────────┘
A spatial user experience for the management and orchestration of AI agents. An infinite-canvas, tablet-first, keyboard-less interface onto the Paseo daemon: servers, workspaces, worktrees, agents, integrations — the whole development journey mapped, and navigated by touch, gamepad, gaze, and voice.
Planning phase, pre-Stage 0. Stage plan and live progress: MVP.md. Ethos, design language, and fixed decisions: INTENT.md.
| Layer | Choice |
|---|---|
| Renderer | three.js + react-three-fiber + drei (orthographic, 2D plane) |
| UI surfaces | drei <Html> behind a TextSurface interface |
| State | Zustand → Dexie/IndexedDB, JSON export/import |
| Backend | @getpaseo/client via a mockable PaseoGateway |
| Input | Intent bus: touch, gamepad, gaze, speech (STT + mini-model) |
| Design | ASCII minimal, Muji feel — tokens in INTENT.md |
NixOS flake devshell (nodejs 22); all tooling runs inside it.
nix develop # enter devshell
npm install # first time only
npm run dev # vite dev server, --host (LAN / adb reverse ready)Checks: npm run lint · npm run typecheck · npm run test · npm run build.
Device testing (pad on tailnet): adb reverse tcp:5173 tcp:5173, then open
http://localhost:5173/unlimigent/ on the pad.
The daemon rejects cross-origin browser WebSockets by default. Allow the dev origin on the machine running the daemon:
# add daemon.cors.allowedOrigins to ~/.paseo/config.json, then:
paseo reload # runtime-safe, no restart neededThe app then reaches ws://100.127.193.39:6767/ws directly over the tailnet
(daemon binds the tailscale interface, not loopback — adb reverse tcp:6767
forwards nothing). The GitHub Pages build cannot open ws:// (mixed content)
and falls back to mock data automatically.
.github/workflows/deploy.yml deploys to GitHub Pages on every push to main —
the on-the-go device-test surface. One-time repo setup: Settings → Pages →
Source: GitHub Actions.
Note: the Pages origin is HTTPS; connecting from it to a local daemon
(ws://localhost:6767) is unresolved (mixed content + Private Network Access —
Spike 0d in MVP.md). For daemon-connected development, use
adb reverse tcp:5173 tcp:5173 against a local dev server.
AGPL-compatible. Never closed source.