ワンクリックで
canvas
Operate Pulse Canvas workspaces — read user-curated context, write results, create nodes
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Operate Pulse Canvas workspaces — read user-curated context, write results, create nodes
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Select and run proportionate validation for changes to apps/canvas-workspace. Use when iterating on Canvas Workspace code, finishing a feature or fix, preparing release evidence, or deciding whether a full performance report is necessary.
Deep-research a topic and build a structured Pulse Canvas workspace with approved research depth, source-backed findings, progressive or final canvas creation, spatially organized frames, content nodes, and connections. Use when the user asks to bootstrap, generate, research, organize, or build an AI-created canvas.
Extend an existing Pulse Canvas frame with local, source-backed research while preserving the surrounding canvas. Use when the user asks to research, enrich, expand, verify, update, or add sources/details inside a selected or named frame, rather than bootstrapping a whole new canvas.
Add or change a Pulse Canvas capability that must be available through structured agent tools and the pulse-canvas CLI. Use for cross-workspace Capability Runtime changes spanning apps/canvas-workspace, packages/canvas-cli, or packages/cli, including new live read, operate, or unsafe application actions.
Run the canvas-workspace performance evaluation, publish the latest static dashboard through the local nginx/Cloudflare Tunnel route, capture a screenshot, and summarize the report. Use when the user asks to run Pulse Canvas/canvas-workspace perf checks, deploy the performance dashboard, refresh https://jasperhu.art/apps/canvas-perf/, or send a dashboard screenshot from Feishu/remote-server.
Use when adding a new canvas node capability to Pulse Canvas (apps/canvas-workspace). Plugin nodes are the default path; host types are the documented exception. Covers both paths' exact touch points and the landmines (union/factory desync, dispatch fallthrough, agent-tool contract surface).
| name | canvas |
| description | Operate Pulse Canvas workspaces — read user-curated context, write results, create nodes |
| version | 1.0.0 |
Interact with canvas workspaces via the pulse-canvas CLI. The canvas is a shared workspace between humans and agents.
The current workspace ID is available via $PULSE_CANVAS_WORKSPACE_ID environment variable (auto-set by canvas). All node and context commands use it automatically — no need to pass workspace ID explicitly.
Whenever $PULSE_CANVAS_WORKSPACE_ID is set, treat the canvas as required user-provided context. Before planning, coding, reviewing, or answering a workspace task, run pulse-canvas context --format json and use that result alongside repository files.
pulse-canvas context --format json
Returns all nodes with structured info: file paths, frame groups, labels.
pulse-canvas node list --format json
pulse-canvas node read <nodeId> --format json
pulse-canvas node write <nodeId> --content "..."
pulse-canvas node create --type file --title "Report" --data '{"content":"..."}'
Supported --type values: file, terminal, frame, agent, mindmap.
For mindmaps, pass the recursive topic tree under data.root. Topic ids are auto-generated — do NOT supply them yourself. If --data is omitted a placeholder root is inserted.
pulse-canvas node create --type mindmap --title "Roadmap" --data '{
"root": {
"text": "Roadmap",
"children": [
{ "text": "Q1", "children": [
{ "text": "Ship MVP" },
{ "text": "Onboard 10 users" }
]},
{ "text": "Q2", "children": [
{ "text": "Public beta" }
]}
]
}
}'
Topic shape: { text: string, children?: Topic[], color?: string, collapsed?: boolean } (recursive). Use this whenever the user asks for a mindmap / brainstorm / outline that should be laid out radially rather than as a flat text node.
pulse-canvas edge create --from <nodeId> --to <nodeId> --label "depends on" --kind dependency --format json
pulse-canvas edge list --format json
pulse-canvas edge delete <edgeId> --format json
pulse-canvas workspace list --format json
pulse-canvas agent send <nodeId> --input "..."
Use this for follow-up prompts, approvals, corrections, or redirections to an already-running agent node. Enter is appended automatically.
Requirements:
agentrunningDo NOT use node write for agent nodes — node write only modifies file/frame/group content. agent send delivers live input to the PTY session and is the only correct channel for talking to a running agent.
Choose the most direct runtime interface available:
canvas_read_webpage, page_click,
page_fill, or page_eval when the host provides them.app_capabilities_list and app_capability_call tools
when they are available.pulse-canvas runtime ... when the host does not provide native runtime tools.These interfaces reach the same Capability Runtime. Do not shell out to
pulse-canvas runtime when an equivalent native tool is available.
When Pulse Canvas is running, discover the runtime capabilities before using them:
pulse-canvas runtime capabilities --format json
Prefer structured capabilities such as page read, click, and fill. If the user asks for behavior those capabilities cannot express, execute a JavaScript function body inside an open iframe node or right-dock link tab:
printf '%s' 'return { title: document.title, links: document.links.length }' |
pulse-canvas runtime eval --node <nodeId> --stdin --format json
Requirements:
runtime eval sparingly, return JSON-serialisable data, and read the page again after a mutation to verify the outcome.For non-preset operations on Pulse Canvas's own renderer UI, use the host renderer capability only after structured Canvas tools prove insufficient:
printf '%s' 'return { title: document.title }' |
pulse-canvas runtime host-eval --stdin --format json
host-eval requires Agent runtime control, is limited to the selected
workspace's host route, and must return JSON-serialisable data. It has no direct
Node require, but runs in the renderer main world and can use the exposed
window.canvasWorkspace bridge, including actions backed by main-process IPC.
Treat it as an unsafe full-app escape hatch: prefer stable capabilities, then
verify any mutation through a structured read.
pulse-canvas context --format json to understand the user's canvas layout and intentruntime eval; use arbitrary scripts only for non-preset behavior