Moving beyond pure text interfaces. Connecting terminal AI agents with rich, bidirectional visual workspaces for true human-AI co-creation.
Code agents are incredibly powerful, but they edit files in the absolute dark. Pneuma connects them bidirectionally to a visual viewer.
Without needing native vision, the LLM constructs layouts via standard markup, and you guide it visually as it rapidly iterates.
Pneuma is built on four distinct layers, cleanly separating the concerns of AI execution, visual rendering, and domain-specific knowledge.
ModeManifest
The declarative soul. Defines what the AI knows (skills), what the user sees (viewers), and how the agent is configured.
ViewerContract
The dynamic frontend. Renders workspace files in real-time, extracts context, and provides agent-callable actions.
AgentBackend
The AI orchestrator. Handles launching, resuming, and communicating with the underlying CLI agents (e.g. Claude Code).
Bun + Hono + Vite
The foundation. Manages file watching, PTY terminals, session persistence, and hosts the Dual WebSocket bridge.
At the heart of the Runtime Shell is an incredibly fast WebSocket bridge synchronizing the CLI agent with the React frontend.
--sdk-url
React App
The frontend viewer isn't just a static display; it interacts directly with the AI, giving it structural awareness of the rendered document.
Click any block in the live
preview. Pneuma wraps it in an outline and automatically injects a <viewer-context> block
into your next chat message.
The AI knows exactly which
<h1> you clicked on without you needing to explain where it is.
The ViewerContract exposes specific actions the agent can trigger in the UI, enabling seamless multi-step workflows.
The connection is two-way. Not only does the viewer send context to the AI, but the AI can also programmatically trigger actions in the React UI.
The user doesn't have to scroll. When the AI finishes editing slide 10, it brings the user's attention
exactly where it's needed via the ViewerContract.
Because every feature in Pneuma is abstracted behind the ModeProtocol, we built a Mode to create other
Modes.
Start the mode-maker mode. Tell Claude you want a "Kanban Board Mode". It automatically forks a
basic template and scaffolds your React files.
Hit "Play". Pneuma spins up a nested server running your newly coded Viewer. You can test your Kanban layout side-by-side while Claude codes it.
Once complete, run pneuma mode publish. Your mode is uploaded to the R2 registry, immediately
available in the global Launcher Marketplace.
Slide mode encourages a "Theme-first" design philosophy. By editing theme.css, you alter the visual
aesthetic of the entire presentation at once.
:root { --color-bg: #FAF7F2; --color-text: #2D2A26; --color-primary: #D4632A; --color-accent: #C4963A; --color-surface: #F0EBE3; --font-sans: 'Inter', sans-serif; }
"Change the entire theme to a Cyberpunk aesthetic. Use dark grays for the background, and neon pink and cyan for accents."
"Increase the global border radius for all cards to make the deck feel more playful and rounded."
The CSS foundation of Slide mode is built for rigid, predictable layouts. It ensures your content never breaks the projection canvas.
Unlike normal web pages, slides cannot scroll. The CSS framework strictly enforces
overflow: hidden on the slide canvas and employs flexbox scaling to keep text inside boundaries.
Ask the AI to "place the red circle exactly at coordinates 500, 100". Because the canvas has a fixed aspect ratio (e.g., 1280x720), the AI can mathematically calculate and position elements flawlessly using absolute CSS.
Pneuma doesn't trap your data. The frontend is fully equipped to transition you from editing mode to presentation mode, or export to standard formats.
Minimal UI overlay for immersive presentations
Bird's eye view of all slides for fast navigation
Drag thumbnails to reorder.
Syncs to
manifest.json automatically.
Hono server compiles a printable HTML payload instantly.
What will you teach the AI to build?
A resume builder? A drawing board? A database explorer?