ENTRY002DATE2026-09-11AUTHORColin Lowenberg · DABL CLUB, with ClaudeSANDBOX/Users/luxor/Code/community/web · Next.js 15 · git v0STATUSshipped — front-end v0, testable at /osPREV001 · The Desktop Inside the AI
Building the desktop. v0
Log 001 was a point of view. This is the build log for the first thing you can click. In one day the AgentCamp site and AgentCamp OS went from five artboards to a running front-end — every page, every window, no backend, everything honest about what's simulated.
What exists now
The site. Home, an events directory with search (our events plus the wider scene — 75 upcoming, with OURS / PICK / ATTEND badges), event pages with one-click RSVP and .ics, a clickable calendar, chapters and captains, the session archive since January 2025, the six open calls with apply forms, past events back to 2024, the public log and your own private one.
AgentCamp OS. A window manager in the dabl chrome: drag, resize, zoom, minimize, dock, menus, a live marquee of what's on, the pixel wallpaper, desktop icons that reveal their purpose on hover. Twenty-two apps from the sandbox as data. A terminal with a small command language. A hash-chained log of every action and a self-destruct that takes two presses and then means it.
Voice and hands. "Open calendar next to log" tiles two windows. The camera becomes the wallpaper; MediaPipe finds your hand; a pinch grabs the window under it and drags it. Every gesture and every utterance is a log record.
Feeds for agents./api/events, /events.ics, and a read-only MCP-style tool surface at /api/mcp, because the first user of a community site for agent builders is an agent.
Three things we didn't plan this morning
To-do → any agent. One list. Each task has a dropdown: Claude Code, Codex, Hermes, OpenClaw, Goose, n8n, or a crew role. Send it and it comes back as needs review — never "done" on its own authority. A list can be handed to a person as a link with exactly their tasks and suggestions for what to give to agents.
The conference crew. Create a conference and five agents spin up, each in its own sandbox: Topics mines the archive and checks the calendar for clashes; Speakers finds warm candidates from past guests; Sponsors lists past co-hosts and à-la-carte assets (never tiers); Outreach drafts — a human sends. The Producer runs the whole event virtually before it happens: assumptions in, a P&L and a week −8 → +1 plan out, an owner on every line, and one button to assign it all to people and agents.
A ticket is a sandbox. The business model arrived mid-build: people buy this experience by buying a ticket. The sandbox is the conference's data room — every session video, the contacts you made, sponsor credits, free inference. And a sponsor can pay for the room: a credit pool divided by attendees is free desktop time for everyone, with the sponsor's name on the door.
Borrowed with attribution
Luxor's open-source jardinero (MIT) is an always-on orchestrator for coding agents. We took its shape, not its code: workflow instances as state machines instead of a queue, a needs_human state, a runner boundary any agent can sit behind, preview URLs with hard TTLs, identity supplied by the proxy. Those became the spec for the to-do list and for the native macOS client (BLUEPRINT §8.8) — Citrix and Remote Desktop, but URLs and TTLs instead of pixels.
What is simulated, exactly
Thing
In v0
Real version
App windows
show where the pty / preview URL plugs in
ttyd + xterm.js, TTL'd exposed ports (Tenki)
Task dispatch
in-browser timers, fake sandbox ids
broker run per task, cost + artifacts recorded
Crew proposals
drawn from our own archive + co-hosts
same sources, real agents, real drafts
RSVP / applications
localStorage
M1 / the calls engine
The log + self-destruct
real — hash-chained, exportable, wiped
same, mirrored to the sandbox
AgentCamp OS — sandbox shell (simulated · no VM in this build)
claude% open calendar next to log
Calendar on the left, Log on the right
claude% add task, call the venue
added: call the venue
Next
v1: browser-tested polish, mobile, organizer colors, the feeds. v2: deploy to agentcamp.dev, then the broker — the first real sandbox behind the first real ticket. The log continues.