Skip to content

pandazki/pneuma-skills

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

711 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pneuma

Pneuma Skills

Co-creation Infrastructure for Humans × Code Agents

Visual environment, skills, continuous learning, and distribution —
everything humans and agents need to build content together.

Works with

Claude Code
Claude Code

by Anthropic
Codex
Codex

by OpenAI
Kimi
Kimi

by Moonshot AI

npm version npm downloads Desktop release MIT License

中文 · Modes · Getting started · Projects

Pneuma Slide Mode

bunx pneuma-skills slide --workspace ./my-first-pneuma-slide

"pneuma" — Greek pneuma, meaning soul, breath, life force.

When humans and code agents co-create content, they need more than a chat window — they need shared infrastructure. Pneuma's bet is simple: coding agents already do the work; what's missing is a way for people to watch them and participate at the right moments. Agents live in files on disk — that's their native habitat and we don't try to abstract it away. Instead, we give each task a live player that renders the work in domain terms (a deck of slides, a board of tiles, a project) and let humans drop in direct edits or structured suggestions without breaking the agent's flow. Four pillars for isomorphic collaboration, built atop mainstream code agents. Today the production path is Claude Code; the runtime now exposes a startup-selectable backend layer so additional agents can be integrated without rewriting the UI shell.

Pillar What it does
Visual Environment Agent works directly in files on disk — its native surface. Viewers are live players for agent output rendered in domain terms, with optional human participation directly in the UI.
Skills Domain-specific knowledge and seed templates injected per mode. Sessions persist across runs — the agent picks up where it left off
User Preferences The agent builds and maintains a persistent portrait of your aesthetics, collaboration style, and per-mode habits — preferences survive across sessions, workspaces, and modes
Continuous Learning Evolution Agent mines conversation history to extract preferences, then augments skills with learned knowledge
Distribution Build custom modes with AI via Mode Maker, publish to the marketplace, share with pneuma mode add

Built-in Modes

Mode What it does
webcraft Live web development with Impeccable AI design intelligence — 22 design commands, brand vs product register, responsive preview, export
clipcraft AI-orchestrated video production on @pneuma-craft — assets, composition with tracks/clips, provenance DAG, scenes; canvas preview + 3D timeline + dive panels; image / video / TTS / BGM generation scripts
kami Paper-canvas typesetting — locked paper size (A4/A5/A3/Letter/Legal × portrait/landscape), Scroll / Focus / Book views, fit-discipline feedback loop, PDF / PNG / HTML export. Design language adapted from tw93/kami
slide HTML presentations — content sets, drag-reorder, presenter mode, PDF/image export. Skill design guidelines informed by frontend-slides
doc Markdown documents with live preview — the simplest mode, a minimal example of the mode system
draw Diagrams and visual thinking on an Excalidraw canvas
diagram Professional draw.io diagrams — flowcharts, architecture, UML, ER, with streaming render and sketch style
illustrate AI illustration studio — generate and curate visual assets on a row-based canvas with content sets
remotion Code-driven video composition on Remotion — live preview, frame-perfect animation, MP4/WebM export via WebCodecs
gridboard Interactive dashboards — draggable tile grid on a fixed canvas, JIT-compiled React tiles via defineTile(), agent-driven redesign on resize
cosmos Project any content — code, prose, research, business — into a structured cosmos: an interactive graph that lays its inner shape bare. Schema and dashboard tech borrow from Lum1104/Understand-Anything (MIT)
mode-maker Create custom modes with AI — fork, play-test, publish
evolve Evolution Agent — analyze history, propose skill improvements, apply/rollback

Each mode versions independently. Per-mode versions surface in the launcher and on the mode marketplace — they're not duplicated here to avoid drift.

First Run — Pneuma Walks You Through It

Create a project and Pneuma greets you on the way in. A hidden project-onboard mode auto-runs the first time you open a fresh project: it reads your README, package manifest, and visual assets, then drafts a Discovery Report — what your project is, what's already there, and two concrete next moves you can pick with one click.

Pneuma reading a fresh project, anchor cards filling in

While the onboarding agent works (~30–60s), the loading slot becomes a 10-frame carousel introducing what Pneuma actually is — agents working in real files, twelve modes sharing one shell, sessions that share a project's brain. By the time the report lands, you already have the map.

For projects that are nearly empty (just a test.txt or a stub README), the agent draws a small welcome egg — a paper lantern in the dusk, a notebook with constellations being sketched — and writes a short greeting that matches your tone. Projects with content but no logo get an auto-generated cover so the launcher tile stops showing the dotted-letter placeholder. Both gestures only fire when an image-gen API key is configured; otherwise the report still renders, just without the gift.

Prefer to set things up by hand? The Create Project dialog's chevron menu offers Create without discovery — you can still trigger discovery later via ProjectPanel's Re-discover affordance.

Getting Started

Desktop App (recommended)

Download the latest release for your platform:

Platform Download
macOS (Apple Silicon) .dmg
Windows x64 .exe installer
Windows ARM64 .exe installer
Linux x64 .AppImage / .deb

The desktop app bundles Bun — no runtime install needed. Install Claude Code CLI and you're ready to go. The launcher shows available backends — currently Claude Code, Codex, and Moonshot Kimi are implemented.

CLI

# Prerequisites: Bun >= 1.3.5, plus one or more of: Claude Code CLI, Codex CLI, Kimi CLI

# Open the Launcher (marketplace UI)
bunx pneuma-skills

# Start a mode with a fresh workspace
bunx pneuma-skills slide --workspace ./my-first-pneuma-slide

# Explicit backend selection at startup
bunx pneuma-skills doc --backend claude-code

# Or use the current directory
bunx pneuma-skills doc
Install from source
git clone https://github.com/pandazki/pneuma-skills.git
cd pneuma-skills
bun install
bun run dev doc --workspace ~/my-notes

CLI Usage

pneuma-skills [mode] [options]

Modes:
  (no argument)                Open the Launcher (marketplace UI)
  webcraft                     Web design with Impeccable.style
  clipcraft                    AI-orchestrated video production
  kami                         Paper-canvas typesetting
  slide                        HTML presentations
  doc                          Markdown with live preview
  draw                         Excalidraw canvas
  diagram                      draw.io diagrams
  illustrate                   AI illustration studio
  remotion                     Code-driven video composition
  gridboard                    Interactive tile dashboards
  mode-maker                   Create custom modes with AI
  evolve                       Launch the Evolution Agent
  /path/to/mode                Load from a local directory
  github:user/repo             Load from GitHub
  https://...tar.gz            Load from URL

Options:
  --workspace <path>   Target workspace directory (default: cwd)
  --port <number>      Server port (default: 17996)
  --backend <type>     Agent backend to launch (claude-code | codex | kimi-cli)
  --project <path>     Run as a session inside the project at <path>
  --session-id <id>    Resume a project session by id (with --project)
  --session-name <s>   Custom session display name
  --viewing            Start in viewing mode (no agent, no skill install)
  --no-open            Don't auto-open the browser
  --skip-skill         Skip skill installation (silent resume)
  --debug              Enable debug mode
  --dev                Force dev mode (Vite)

Subcommands:
  mode add <url>           Install a remote mode (single → ~/.pneuma/modes/; library → ~/.pneuma/libraries/)
  mode list                List published modes on R2
  mode publish             Publish current workspace as a mode
  library init <name>      Scaffold a new mode library locally; --github user/repo creates + pushes
  library link <source>    Alias for `mode add` when the source is a library
  library list             List linked libraries
  library sync <id>        Refresh a library from source
  library publish <mode>   Copy a local mode into a linked library; --to <id> --push
  library push <id>        Push the library's local clone to its remote
  library unlink <id>      Remove a library and its on-disk clone
  evolve <mode>            Analyze history, propose skill improvements
  plugin add <source>      Install a plugin from path/github/URL
  plugin list              List builtin + external plugins
  plugin remove <name>     Remove an external plugin
  history export [--out]   Export this session as a shareable .tar.gz
  history share [--title]  Export + upload to R2, return a link
  history open <path|url>  Download / prepare a replay package
  project add <path>       Register an existing project into the session registry
  snapshot push / pull     Upload / download workspace snapshot

Architecture

┌─────────────────────────────────────────────────────────┐
│  Desktop / Launcher                                     │
│  Browse → Discover → Launch → Resume                    │
├─────────────────────────────────────────────────────────┤
│  Layer 4: Mode Protocol                                 │
│  ModeManifest — skill + viewer config + agent prefs     │
├─────────────────────────────────────────────────────────┤
│  Layer 3: Content Viewer                                │
│  ViewerContract — render, select, agent-callable actions│
├─────────────────────────────────────────────────────────┤
│  Layer 2: Agent Runtime                                 │
│  Backend registry + protocol bridge + normalized state  │
├─────────────────────────────────────────────────────────┤
│  Layer 1: Runtime Shell                                 │
│  HTTP, WebSocket, PTY, File Watch, Frontend             │
└─────────────────────────────────────────────────────────┘

Three core contracts in core/types/:

Contract Responsibility Extend to...
ModeManifest Skill, viewer config, agent preferences, init seeds New modes (mindmap, canvas, etc.)
ViewerContract Preview component, context extraction, action protocol Custom renderers, viewport tracking
AgentBackend Launch, resume, kill, capability declaration Other agents (Aider, etc.)

The backend contract is intentionally split in two layers:

  • Process lifecycle: AgentBackend owns launch, resume, exit, and capability declaration.
  • Session/UI contract: the browser consumes normalized session state (backend_type, agent_capabilities, agent_version) rather than backend-specific wire details.

That means backend-specific protocols stay in backends/<name>/, while the UI and most server code depend on a stable session model.

User Preferences

Pneuma agents remember who you are. Every mode ships with a built-in preference skill that lets the agent build and maintain a persistent portrait of your tastes and habits:

~/.pneuma/preferences/
├── profile.md        ← cross-mode: aesthetics, language, collaboration style
├── mode-slide.md     ← slide-specific: layout density, color tendencies, font choices
├── mode-webcraft.md  ← webcraft-specific: design patterns, component preferences
└── ...

How it works:

  • The agent reads your preferences before making design or style decisions — silently, without asking
  • When it notices a stable pattern or you state a preference, it updates the files — silently, without announcing
  • Hard constraints (e.g. "never use dark backgrounds") are marked as critical and auto-injected into every session startup
  • A changelog at the end of each file lets the agent do incremental refreshes instead of re-analyzing everything

Three layers of understanding:

  1. Observable — language, aesthetics, collaboration style (a few sessions)
  2. Deep profile — value anchors, latent patterns, contradictions (many sessions, evidence-required)
  3. Per-mode — concrete habits in each mode, with explicit user-stated vs. agent-observed distinction

The preference files are living documents — full rewrites, not append-only logs. Contradictions are preserved, not resolved. Everything is deletable. The agent builds understanding over time, not a label database.

Quick start tip: If you already have a history of working with Claude Code, try asking the agent in any mode: "Do a full preference refresh from my session history." The agent will scan your past Pneuma sessions, extract your patterns and preferences, and build your profile in one pass — you might be surprised by what it picks up. Works with Claude Code, Codex, and Kimi backends.

Projects (3.0)

Pneuma supports an optional Project layer above sessions — a way to anchor one ongoing thing across many sessions in many modes, with shared preferences and a shared project atlas.

A project hub orbited by sessions across modes, all connected to a shared brain

A project is any user directory marked by <root>/.pneuma/project.json. Inside one you can:

  • Run multiple sessions in different modes (doc + webcraft + kami + …) — all targeting the same project root, all sharing the same atlas and preferences
  • Smart Handoff between modes — the source agent emits a structured <pneuma:request-handoff> tag, Pneuma surfaces a Handoff Card with intent + suggested files + key decisions, you confirm, and the target session spawns with the brief pre-staged in its CLAUDE.md
  • Project-scoped preferences at <root>/.pneuma/preferences/, orthogonal to your global ~/.pneuma/preferences/ — both inject into every session's startup prompt
  • Auto-onboarding the first time you enter a fresh project (see First Run above)

Quick (project-less) sessions remain fully supported — projects are opt-in. Create one from the launcher's "+ Create Project" button. The full design lives at docs/archive/proposals/2026-04-27-pneuma-projects-design.md (3.0 project layer) and 2026-04-28-handoff-tool-call.md (handoff protocol).

Tech Stack

Layer Technology
Runtime Bun >= 1.3.5
Server Hono 4.7
Frontend React 19 + Vite 7 + Tailwind CSS 4 + Zustand 5
Desktop Electron 41 + electron-builder + electron-updater
Terminal xterm.js 6 + Bun native PTY
Drawing Excalidraw 0.18
Diagramming draw.io viewer-static (CDN) + rough.js 4.6
Video Remotion 4.0 + @remotion/player + @babel/standalone
Canvas @xyflow/react 12 (Illustrate mode)
File Watching chokidar 5
Agent Claude Code CLI via stdio stream-json (-p --input-format/--output-format stream-json); Codex CLI via app-server stdio JSON-RPC; Moonshot Kimi CLI via stdio stream-json (kimi --print …)

Backend Model

  • Backend is selected once at launch with --backend or in the launcher modal.
  • The selected backend is persisted in <workspace>/.pneuma/session.json and ~/.pneuma/sessions.json.
  • Existing workspaces are backend-locked. Pneuma resumes the same backend for the lifetime of that workspace session instead of switching mid-stream.
  • Frontend features now read agent_capabilities from session state. Claude-only features such as Schedules and cost tracking are hidden for non-Claude backends.

License

MIT

About

Co-creation infrastructure for humans and code agents — visual environment, skills, continuous learning, and distribution.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors