一键导入
document
Document canvas for displaying and editing markdown content. Use when showing documents, emails, or when users need to select text for editing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Document canvas for displaying and editing markdown content. Use when showing documents, emails, or when users need to select text for editing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Calendar canvas for displaying events and picking meeting times. Use when showing calendar views or when users need to select available time slots.
**The primary skill for terminal TUI components.** Covers spawning, controlling, and interacting with terminal canvases. Use when displaying calendars, documents, or flight bookings.
Flight canvas for comparing flights and selecting seats. Use when users need to browse flight options and book seats.
| name | document |
| description | Document canvas for displaying and editing markdown content. Use when showing documents, emails, or when users need to select text for editing. |
Display markdown documents with optional text selection and diff highlighting.
Try asking Claude:
display (default)Read-only document view with markdown rendering. User can scroll but cannot select text.
canvas_spawn({
kind: "document",
scenario: "display",
config: JSON.stringify({
content: "# Hello World\n\nThis is **markdown** content.",
title: "My Document"
})
})
editInteractive document view with text selection. User can click and drag to select text, which is sent via IPC in real-time.
canvas_spawn({
kind: "document",
scenario: "edit",
config: JSON.stringify({
content: "# My Blog Post\n\nThis is the **introduction** to my post.\n\n## Section One\n\n- Point one\n- Point two",
title: "Blog Post Draft",
diffs: [
{startOffset: 50, endOffset: 62, type: "add"}
]
})
})
email-previewSpecialized view for email content display.
canvas_spawn({
kind: "document",
scenario: "email-preview",
config: JSON.stringify({
content: "Dear Team,\n\nPlease review the attached document.\n\nBest regards,\nAlice",
title: "RE: Project Update"
})
})
interface DocumentConfig {
content: string; // Markdown content
title?: string; // Document title (shown in header)
diffs?: DocumentDiff[]; // Optional diff markers for highlighting
readOnly?: boolean; // Disable selection (default: false for edit)
}
interface DocumentDiff {
startOffset: number; // Character offset in content
endOffset: number;
type: "add" | "delete";
}
Supported markdown features:
# H1, ## H2, etc.)**text**)*text*)`inline` and fenced blocks)[text](url))- or * bullets)>)interface DocumentSelection {
selectedText: string; // The selected text
startOffset: number; // Start character offset
endOffset: number; // End character offset
startLine: number; // Line number (1-based)
endLine: number;
startColumn: number; // Column in start line
endColumn: number;
}
Up/Down or scroll: Navigate documentq or Esc: Close/cancel// Display read-only document
canvas_spawn({
kind: "document",
scenario: "display",
config: JSON.stringify({
content: "# My Document\n\nContent here.",
title: "View Mode",
})
});
// Interactive editing with selection
canvas_spawn({
kind: "document",
scenario: "edit",
config: JSON.stringify({
content: "# My Document\n\nSelect some **text** here.",
title: "Edit Mode",
diffs: [{ startOffset: 20, endOffset: 30, type: "add" }],
})
});
// Get current selection from a running canvas
canvas_selection({ id: "document-1234567890-abc123" });
// Returns: { success: true, selection: { selectedText: "text", startOffset: 30, endOffset: 34 } }