Agent skill

Pneuma Lucid

by pandazki in pandazki/pneuma-skills

Pneuma Lucid Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.

MITAuto-check: warningsGame Development

Install Pneuma Lucid

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add pandazki/pneuma-skills --skill pneuma-lucid -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pandazki/pneuma-skills pneuma-lucid --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/modes/lucid/skill .claude/skills/pneuma-lucid && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pneuma-lucid
GitHub stars
161
Token cost
~4.6k tokens
SKILL.md length
2,536 words
Files
31 (incl. scripts, references)
Skills in repo
30
Repo updated
First seen
Licence
MIT

At a glance

Pneuma Lucid Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.

  • Works in 3 steps: Read — get-scene-state: free, instant.… → Look — capture: the only way to see what… → Judge — a fresh subagent with the target…
  • ANY task in this workspace: dreaming a target screenshot
  • SKILL.md covers Scene, Viewer contract, Core rules and Workflow, plus 2 more sections
  • Runs Python, JavaScript and TypeScript scripts from its folder; calls node

What it does

Pneuma Lucid is an agent skill from pandazki/pneuma-skills. Pneuma Lucid Mode workspace guidelines. Use for ANY task in this workspace: dreaming a target screenshot, building or improving a Three.js scene, game or app toward it, sourcing 3D assets (image-to-3D, headless Blender, procedural), capturing and judging rounds, reading the exit rules, or optimizing frame rate. Defines the project layout, the loop scripts, the scene bridge, and how to look through the viewer before claiming progress. Consult before your first action in a new conversation.

Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 33 other files, including scripts and reference files (for example `references/assets.md`, `references/judging.md` and `references/scripts.md`).

It sits in Game Development, covering 3D graphics and WebGL and Game assets and audio. It works with Three.js and Blender. The repository describes itself as: Co-creation infrastructure for humans and code agents — visual environment, skills, continuous learning, and distribution. The licence is MIT.

When your agent uses it

  • ANY task in this workspace: dreaming a target screenshot
  • Improving a Three.js scene
  • Sourcing 3D assets (image-to-3D
  • Headless Blender

Example prompts

  • “/pneuma-lucid”

Requirements

  • Python 3
  • Node.js

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Read — get-scene-state: free, instant. Stage size, ready, errors,
  2. Look — capture: the only way to see what the user sees. Look before
  3. Judge — a fresh subagent with the target and the capture. Never score

What it can do on your machine

Read from SKILL.md and the folder at commit 0023d3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 12 files in scripts/ (Python, JavaScript and TypeScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pneuma Lucid loads about 4.6k tokens when it runs, and up to ~17k if it reads all its reference files. Until then it costs about 127 tokens; SKILL.md has 2,536 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~127
When it runs · the whole SKILL.md, loaded when a task matches
~4.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~17k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:209
    it a few seconds and call it once more. Do not ask for approval when the

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from pandazki/pneuma-skills at commit 0023d3c, republished under its MIT licence (© pandazki). 2,536 words, ~4,595 tokens.

Download SKILL.mdSave it as .claude/skills/pneuma-lucid/SKILL.md (or your agent's skills folder). This skill also uses 30 other files; get the full folder from GitHub.
name
pneuma-lucid
description
Pneuma Lucid Mode workspace guidelines. Use for ANY task in this workspace: dreaming a target screenshot, building or improving a Three.js scene, game or app toward it, sourcing 3D assets (image-to-3D, headless Blender, procedural), capturing and judging rounds, reading the exit rules, or optimizing frame rate. Defines the project layout, the loop scripts, the scene bridge, and how to look through the viewer before claiming progress. Consult before your first action in a new conversation.

Pneuma Lucid Skill

<!-- pneuma:start -->

Scene

You are chasing a picture. The user describes a scene, game or app that should look extraordinary; you dream its target screenshot with your image tool, build a static Three.js scene toward it, capture the live frame through the viewer, and hand every capture to a fresh judge who scores it against the target. In front of the user is the loop's instrument panel: the live scene, the dream beside or over it with a wipe, the score across rounds, the budget clock and the asset ledger. They see every round land and click a round to hand you back exactly which frame they mean. The record of the loop — target, rounds, verdicts, assets, and the decision to stop — is kept by a script, not by your memory.

Viewer contract

One project is one top-level directory (a content set). It holds lucid.json, target.png, rounds/NN/capture.png, assets/ and scene/. The stage renders scene/index.html in a same-origin iframe, so everything the scene loads must be a relative path inside scene/.

What the user can select

The user clicks a round chip on the rail or a view (Live / Target / Split). Their next message carries a <viewer-context mode="lucid"> block with the project, its exit state, best and latest totals, the selected round's score and gaps, and an Address: line — the machine-routable handle for that object.

ViewerAddress vocabulary
KeyKindMeaning
contentSetframework-reservedThe project directory ("lantern-shrine"). The project is the content set.
roundcoarse1-based round index; navigating shows that round's capture against the target.
viewfine"live" (the running scene), "target" (the dream), or "split" (wipe compare).

Example: { "contentSet": "lantern-shrine", "round": 3, "view": "split" }. Copy an address verbatim into <viewer-locator label="…" address='{…}' /> — a clickable card that takes the user there — or into the capture action's params.address. A capture with no address screenshots whatever is on stage: the live scene through the bridge, or the round / target the user has selected — navigate-to { "view": "live" } first when you mean the scene.

Actions you can invoke
  • navigate-to — point the stage at a round or a view. Call it before capture so you shoot what you mean, and after a round so the user lands on it in Split.
  • get-scene-state — read what the stage and the scene report: { stage: { width, height, aspect }, bridge, registered, ready, loading, fps, fpsSource, frameMs, passesPerFrame, drawCalls, triangles, textures, errors, errorSources, notes, lastCapture, viewport }. errors includes what three.js only prints — a failed shader, a bad texture — and errorSources says whether each came from a thrown script, a rejected promise, the console or the shader compiler. stage is always there, even before a scene exists — it is the aspect to dream at. bridge: false means the page does not load lucid-bridge.js; registered: false means main.js never called window.lucid.register(...). Either way you are blind — fix it first. fps counts displayed frames once registered (fpsSource: "render") — at most one per animation frame however many passes the scene draws; passesPerFrame above 1 means reflections or other extra passes. Before registration fps is only the animation-frame cadence. fps: null with visibility: "hidden" is a tab in the background — the browser has paused its animation frames, nothing is slow: ask the user to bring the viewer to the front, and never record a round from a hidden tab. A sample older than two seconds (sinceLastRenderMs) is reported as no measurement. viewport.renderPixelRatio is what the renderer draws at; pixelRatio is what the display offers.
  • Cost. This loop spends money on three things: fal jobs (a detailed Tripo hero is $0.60 at list price, a Trellis prop $0.02), image generations (about $0.15 each) and the model's tokens. lucid.mjs status → costs prices the fal jobs; the viewer's cost panel adds the images and the tokens, in total and per round. Plan the ladder with the price in view: a cut-out that will not be the hero does not need detailed geometry.
  • status.scene.bridgeCurrent: false means the scene still runs the bridge an older skill installed: run lucid.mjs bridge <project> --refresh before trusting what the state reports.
  • reload-scene — restart the iframe after a batch of edits or a new model. The viewer also reloads on its own 1.5 s after the last scene CODE file change; swapping a texture or a GLB under the same name reloads nothing, so call this after replacing a binary (references/assets.md).
  • capture — framework built-in. With the live scene on stage it waits up to 4 s for the scene to be ready, renders one frame through the bridge and returns a PNG path; that PNG is the round's capture. It is the WebGL frame only: HTML overlays (titles, HUD, buttons) are not in it, and the judge never sees them. get-scene-state.lastCapture says what the last capture was: source must be "live" and ready must be true for a frame you send to the judge — a still of a round or of the target is not a new capture.
Three sensing layers, in cost order
  1. Read — get-scene-state: free, instant. Stage size, ready, errors, fps, draw calls, textures, your own notes. Read it before every capture and after every reload.
  2. Look — capture: the only way to see what the user sees. Look before you claim anything about the picture.
  3. Judge — a fresh subagent with the target and the capture. Never score your own frame.

There is no fourth layer. You cannot drive the user's browser, attach a debugger, or open another browser to poke at the page; do not search host processes for a way in. Anything you need to test inside the scene — clicks, drags, wheel, keys, timings — runs as a temporary module inside the page and publishes its result with window.lucid.note("check-name", { … }), which get-scene-state returns under notes. Remove the module before judging.

Core rules

  • Every script runs from the workspace, never from the skill. The form is node {SKILL_PATH}/scripts/<script>.mjs … — {SKILL_PATH} is absolute, so there is nothing to cd into. Project and file arguments are workspace-relative (lantern-shrine, lantern-shrine/assets/arch.png).
  • lucid.json, target.png and rounds/ are written only by {SKILL_PATH}/scripts/lucid.mjs. It numbers rounds, archives replaced targets, validates verdicts, and computes the exit state from the whole history. Read the file freely; write it through the script. The decision to stop, rethink or keep going is lucid.mjs status, not your recollection.
  • Dream at the stage's aspect, as an in-engine screenshot. Read get-scene-state.stage first; a 16:9 dream judged against a 3:2 stage is letterboxing the scene can never match. Ask the image tool for a real-time render of the requested style — the words voxel, low-poly, orthographic belong in the prompt when the user asked for them — and lock the result with lucid.mjs target <project> --set <png>. The image tool saves outside the project and its result payload is large; use only the saved path it reports, never echo the payload. The lock copies the file in, and only an image inside the workspace shows up as a thumbnail in the chat.
  • Judge with a fresh subagent, never yourself. lucid.mjs judge-prompt writes the brief to rounds/NN/judge-brief.md; give the subagent that path and nothing else — no history, no fork, no notes of yours. It writes rounds/NN/verdict.json; lucid.mjs verdict <project> --round N ingests it. The brief includes the previous verdict on purpose: the judge reuses a gap's id when the gap persists, and consistency across rounds is what makes the trend meaningful.
  • Never judge a scene that is not ready. get-scene-state must report ready: true and no errors, the loading overlay must be gone, and lastCapture.ready must be true; a wasted verdict costs a whole round.
  • Do not lower visual fidelity to hit a time budget. Running out of time with meaningful, beautiful progress beats finishing something rough. Also do not degrade the picture for frame rate until the judge says optimize-fps; then lossless wins first.
  • Image-to-3D is not "downloading assets". When the user forbids downloads, they mean existing art from the internet; a model generated from your own cut-out of the target is yours. Vendored three.js is a library, not an asset. When the requested style is itself made of primitives — voxel, low-poly, blocky — procedural geometry is the faithful choice, not a shortcut; the ladder in references/assets.md says where each rung fits.
  • Blender only through {SKILL_PATH}/scripts/blender.mjs. Headless, scripted, observable; never the binary directly, never interactively.
  • Scripts retry upstream failures themselves. Call once; when a script reports a failure state, read it and act — do not write a retry loop.
  • When the user said not to ask, do not ask. At done, stalled or budget-exhausted report the state in one line and stop; the questions the exit table suggests are for users who want to be asked.
  • Never touch .pneuma/, .agents/ or .claude/.

Workflow

Before the first dream
  1. Confirm you have an image-generation tool. Without one this mode cannot start: say so and ask the user to switch to a model that has it (GPT-6 Astra in Codex).
  2. node {SKILL_PATH}/scripts/blender.mjs doctor — records which asset rungs exist on this machine. {{#blenderConfigured}}A Blender path is configured for this workspace.{{/blenderConfigured}} {{#imageTo3dEnabled}}Image-to-3D is enabled (fal key present).{{/imageTo3dEnabled}}{{#imageTo3dDisabled}} Image-to-3D is off (no fal key); the ladder skips that rung.{{/imageTo3dDisabled}}
Show full SKILL.md (1,033 more words)Show less
Start a project — init first, then dream
node {SKILL_PATH}/scripts/lucid.mjs init <project> --title "…" --brief "<the user's words>" --fps-target {{fpsTarget}} [--budget-minutes N]

init writes the manifest, a runnable starter scene/ and vendors three.js. If the user gave a time limit, pass it as --budget-minutes: the clock starts now, at init, because the user's clock started when they asked. The clock is wall time and never pauses on its own: when a session resumes after a pause (credits ran out, the tab was closed — the env block says reason="opened"), status shows budget.sinceLastWriteMinutes; credit the part that was a pause with lucid.mjs budget <project> --pause-credit <minutes> before you act on budget-exhausted. Then get-scene-state — the starter is on stage, so stage gives you the exact aspect — and dream the target at that aspect (references/target-image.md), unless the user supplied one. Lock it:

node {SKILL_PATH}/scripts/lucid.mjs target <project> --set <path/to/generated.png>

navigate-to { "contentSet": "<project>", "view": "target" } and tell the user in one line what you are about to build. A project created seconds ago can take a moment to reach the viewer; if navigate-to says there is no such project, wait a few seconds and call it once more. Do not ask for approval when the user said to just go.

The starter's anchors — relative imports, the environment map, the pixel-ratio cap, resize handling, continuous rendering, window.lucid.register — are what to keep. Its camera, placeholder content and controls are yours to replace.

Build toward the target
  1. Submit every generation job before you build anything. Cut the hero elements out of the target, recipe → check → submit — a Tripo job is ten to twenty minutes of wall clock, and the first trials spent half their budget waiting for one. Build while they run; collect later.
  2. Then the look, on a blockout, before any model lands. Boxes where the masonry goes, a plane for the floor, and the light: key + fill + the practicals, ACES exposure, fog the colour of the sky, a glossy wet ground, bloom on what glows (look.js is wired in the starter; references/three-scene.md → "The look"). Capture it and look: a scene lit right with boxes beats a catalogue of generated models under flat light, and the judge scores lighting and materials as half the rubric.
  3. Write the asset plan from the picture, and give every hero element a rung. List what the target shows — hero objects, characters, props, environment, camera, lighting, atmosphere, motion — and register each asset (lucid.mjs asset <project> add …) with the rung it comes from: {{#imageTo3dEnabled}}anything organic, ornate or characterful (statues, gates, lanterns, characters, trees, hero props) → image-to-3d, cut out of the target itself;{{/imageTo3dEnabled}} hard-surface pieces with real geometry (arches, braziers, stairs, columns, modular walls) → blender (the kit builds them with bevels, arrays and booleans, exported with normals); repeated modules, terrain, water, particles, rain, UI → procedural. A voxel or low-poly brief makes primitives faithful for the masonry, not for the hero: a blocky statue still comes out better from a blocky cut-out than from stacked boxes. references/assets.md is the ladder with the exact commands per rung; walk it for every asset that matters.
  4. Land the models as they arrive. collect; build the Blender pieces headless (blender.mjs run on a copy of make_prop.py). Every model, whatever its source, goes through blender.mjs prep (ground, size by its aligning dimension, merge shells, single-sided) and glb.mjs inspect before it enters the scene — and enters the light you already set, not a new one.
  5. Textures, then maps. Albedo from the image tool; normal, roughness and ORM from node {SKILL_PATH}/scripts/texture.mjs; tile-check before you trust "seamless". A material with only an albedo reads flat.
  6. Write the scene on the starter with references/three-scene.md open: load models through assets.js (loadModel by one dimension, instance for copies, playClip for rigged ones), environment map on, textures before triangles for performance.
  7. After each batch of edits: reload-scene, get-scene-state (ready, no errors, fps), capture, look. Fix what you see before you spend a verdict. Test controls and behaviors inside the page and read the result from notes — never by looking for a browser to drive.
Judge a round

Put the live scene on stage first — navigate-to { "view": "live" } clears any round or target the user left selected — then get-scene-state (ready, no errors) and capture with no address; confirm lastCapture.source is "live". A capture taken with a round or the target on stage returns that still, and a judge scoring the target against itself is a wasted round.

node {SKILL_PATH}/scripts/lucid.mjs round <project> add --capture <png from capture> --fps <fps from get-scene-state>
node {SKILL_PATH}/scripts/lucid.mjs judge-prompt <project>

The first line it prints is the brief's file path. Spawn a fresh subagent with a clean context and a one-line prompt: read that file and do what it says. It looks at both images and writes rounds/NN/verdict.json. Ingest and read the exit state:

node {SKILL_PATH}/scripts/lucid.mjs verdict <project> --round N
node {SKILL_PATH}/scripts/lucid.mjs status <project>

Then act on exit exactly as references/judging.md says: continue — work every gap, biggest area first, next round; stall-approaching — stop tweaking, make one dramatic architectural change and record it as --kind rethink; stalled — stop spending and tell the user; optimize-fps — lossless optimizations, re-judge; done — show the round; budget-exhausted — finish the current fix, judge once, report. After every verdict, navigate-to { "round": N, "view": "split" } and give the user one line with the total and a <viewer-locator>.

An existing scene, or a re-dream

When the user asks for a better version of something that already runs, capture the current scene first and feed that capture to the image tool as the baseline for the new target — an improvement, not a divergence. Lock it with target --set --reason "re-dream"; the old target is archived, rounds keep the version they were judged against, and the exit rules restart from zero against the new dream.

Commands

The viewer exposes two buttons. When a message ends with a command notification, do this:

  • judge-round — the user wants a score now. Run "Judge a round" on the current live scene, even mid-build.
  • re-dream — the user wants a better target. Follow "An existing scene, or a re-dream", then continue the loop against the new target.
<!-- pneuma:end -->

References

Read when you need depth on the topic.

TopicFile
Dreaming the target: aspect, prompt rules, fresh vs existing, lockingreferences/target-image.md
The scene: layout, environment map, scale/orientation, rigged models, performance, GLB hygiene, in-page checksreferences/three-scene.md
Assets: the sourcing ladder, image-to-3D recipes, the Blender boundary, the entry checklistreferences/assets.md
Judging: running a round, reading a verdict, the exit rulesreferences/judging.md
Scripts: every subcommand of lucid.mjs, glb.mjs, blender.mjs, image-to-3d.mjsreferences/scripts.md

© pandazki, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 30 other files (scripts, references) in modes/lucid/skill of pandazki/pneuma-skills.

  • SKILL.md
  • references/assets.md
  • references/judging.md
  • references/scripts.md
  • references/target-image.md
  • references/three-scene.md
  • scripts/argv.d.mts
  • scripts/argv.mjs
  • scripts/blender.mjs
  • scripts/blender/fbx_to_glb.py
  • scripts/blender/kit.py
  • scripts/blender/make_prop.py
  • scripts/blender/prep_asset.py
  • scripts/blender/probe.py
  • scripts/blender/render_views.py
  • scripts/costs.d.mts
  • scripts/costs.mjs
  • scripts/glb.mjs
  • … and 13 more

Open the folder on GitHubat commit 0023d3c

Compare with similar skills

Pneuma Lucid next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pneuma Lucid compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pneuma Lucid this skillpandazki/pneuma-skills161—~4.6kAutomated safety check: WarnMIT
Blender Web Export Pipelinefreshtechbro/claudedesignskills1k—~4.2kAutomated safety check: PassMIT
Make Blender Game AssetsDanMcInerney/orchflows117—~520Automated safety check: PassMIT
Threejs World Generationcalesthio/OpenMontage66k—~2kAutomated safety check: PassAGPL-3.0
3Dviz Pro Max Scene Builderviettranx/3dviz-pro-max709—~2.8kAutomated safety check: PassMIT
Threejs 3D Generatorvalkor-ai/loom1.2k1 repos~2.6kAutomated safety check: PassApache-2.0

Similar skills

  • Blender Web Export Pipeline

    freshtechbro/claudedesignskills

    Exports and optimizes Blender 3D models and animations for the web as glTF, covering batch Python scripting, texture baking, decimation and LOD generation for Three.js and Babylon.js.

    1k GitHub stars~4.2k tokensUpdated 10 mo ago
    Game DevelopmentAuto-check passed
  • Make Blender Game Assets

    DanMcInerney/orchflows

    Create original Blender assets with editable sources, GLB exports and inspection through a Three.js loader.

    117 GitHub stars~520 tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Threejs World Generation

    calesthio/OpenMontage

    Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.

    66k GitHub stars~2k tokensUpdated 7 days ago
    Game DevelopmentAuto-check passed
  • 3Dviz Pro Max Scene Builder

    viettranx/3dviz-pro-max

    Guides building an expressive 3D scene in Three.js or Blender by reasoning through intent, object construction and scientific grounding before using a catalog of recipes and kits.

    709 GitHub stars~2.8k tokensUpdated 1 mo ago
    Game DevelopmentAuto-check passed
  • Threejs 3D Generator

    valkor-ai/loom

    Generate, texture, rig, animate, stylize, convert, and download 3D assets for Three.js games via the Tripo API.

    1.2k GitHub starsUsed in 1 repo~2.6k tokens
    Game DevelopmentAuto-check passed
  • Text To 3D Asset

    LaurentiuGabriel/unreal-game-assets-creation-skill

    Generate a game-ready 3D asset by running the local AI pipeline sequentially: Fooocus (SDXL text-to-image) - Hunyuan3D-2 (image-to-textured-GLB) - optional Blender FBX convert + Unreal import.

    148 GitHub stars~2.1k tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed

More from pandazki/pneuma-skills

All 30 skills in this repo
  • Pneuma Bansho

    pandazki/pneuma-skills

    Explain something by writing it on a board. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~6.9k tokensUpdated 2 days ago
    Auto-check passed
  • Pneuma Clipcraft

    pandazki/pneuma-skills

    AI-orchestrated video production on @pneuma-craft. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~7.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Pneuma Plotwise

    pandazki/pneuma-skills

    Pneuma Plotwise workspace guidelines. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~8.9k tokensUpdated 2 days ago
    Auto-check passed
  • Pneuma Sprite

    pandazki/pneuma-skills

    Pneuma Sprite Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~16k tokensUpdated 2 days ago
    Auto-check passed
  • Pneuma Webcraft

    pandazki/pneuma-skills

    Pneuma WebCraft Mode workspace guidelines with Impeccable.style design intelligence.

    161 GitHub stars~7.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Pneuma Wordtaste

    pandazki/pneuma-skills

    A goal-driven Chinese long-form writing partner. An agent skill from pandazki/pneuma-skills.

    161 GitHub stars~7.5k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Pneuma Lucid

What does Pneuma Lucid do?

Pneuma Lucid Mode workspace guidelines. An agent skill from pandazki/pneuma-skills. Pneuma Lucid is an agent skill from pandazki/pneuma-skills. Pneuma Lucid Mode workspace guidelines.

When should I use Pneuma Lucid?

Pneuma Lucid fits situations like: ANY task in this workspace: dreaming a target screenshot; improving a Three.js scene; sourcing 3D assets (image-to-3D; headless Blender.

How do I install Pneuma Lucid in Claude Code?

Run `npx skills add pandazki/pneuma-skills --skill pneuma-lucid -a claude-code`. Or copy the skill folder (modes/lucid/skill in pandazki/pneuma-skills) into .claude/skills/pneuma-lucid in your project. Claude Code loads it when a task matches its description.

How do I install Pneuma Lucid in Codex?

Run `npx skills add pandazki/pneuma-skills --skill pneuma-lucid -a codex`. Or copy the skill folder (modes/lucid/skill in pandazki/pneuma-skills) into .agents/skills/pneuma-lucid in your project. Codex loads it when a task matches its description.

Can I use Pneuma Lucid in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pandazki/pneuma-skills --skill pneuma-lucid -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pneuma-lucid, .gemini/skills/pneuma-lucid, .github/skills/pneuma-lucid and .opencode/skills/pneuma-lucid in your project.

What does Pneuma Lucid need to run?

Going by SKILL.md and its folder, Pneuma Lucid needs Python, JavaScript and TypeScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Python 3; Node.js.

Does Pneuma Lucid access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Pneuma Lucid safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Pneuma Lucid use?

Pneuma Lucid is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pneuma Lucid use?

About 4.6k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.

What are the alternatives to Pneuma Lucid?

Skills that share tags, products or a category with Pneuma Lucid: Blender Web Export Pipeline (freshtechbro/claudedesignskills, 1k stars), Make Blender Game Assets (DanMcInerney/orchflows, 117 stars), Threejs World Generation (calesthio/OpenMontage, 66k stars) and 3Dviz Pro Max Scene Builder (viettranx/3dviz-pro-max, 709 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pneuma Lucid?

pandazki (a GitHub user) maintains it in pandazki/pneuma-skills, which has 161 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 9, 2026.

Source: pandazki/pneuma-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.