Displays and allows interactive editing of markdown documents within the agent interface.
Install
mkdir -p .claude/skills/document && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3366" && unzip -o skill.zip -d .claude/skills/document && rm skill.zipInstalls to .claude/skills/document
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Document canvas for displaying and editing markdown content.
Use when showing documents, emails, or when users need to select text for editing.Key capabilities
- →Rendering markdown content
- →Displaying diff highlights
- →Enabling interactive text selection
- →Providing email-specific preview views
- →Sending selection data via IPC
How it works
The skill renders markdown content in a canvas, supporting diff highlighting and text selection, and communicates selection data back to the host via IPC.
Inputs & outputs
When to use document
- →Drafting emails
- →Reviewing project proposals
- →Editing technical markdown files
- →Reviewing code changes
About this skill
Document Canvas
Display markdown documents with optional text selection and diff highlighting.
Example Prompts
Try asking Claude:
- "Draft an email to the marketing team about the Q1 product launch"
- "Help me edit this blog post — show it so I can highlight the parts to revise"
- "Write a project proposal and let me review it"
- "Show me the README so I can select sections to update"
- "Compose a response to this customer complaint"
Scenarios
display (default)
Read-only document view with markdown rendering. User can scroll but cannot select text.
bun run src/cli.ts show document --scenario display --config '{
"content": "# Hello World\n\nThis is **markdown** content.",
"title": "My Document"
}'
edit
Interactive document view with text selection. User can click and drag to select text, which is sent via IPC in real-time.
- Renders markdown with syntax highlighting (headers, bold, italic, code, links, lists, blockquotes)
- Diff highlighting: green background for additions, red for deletions
- Click and drag to select text
- Selection automatically sent via IPC
bun run src/cli.ts spawn document --scenario edit --config '{
"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-preview
Specialized view for email content display.
bun run src/cli.ts show document --scenario email-preview --config '{
"content": "Dear Team,\n\nPlease review the attached document.\n\nBest regards,\nAlice",
"title": "RE: Project Update"
}'
Configuration
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";
}
Markdown Rendering
Supported markdown features:
- Headers (
# H1,## H2, etc.) - Bold (
**text**) - Italic (
*text*) - Code (
`inline`and fenced blocks) - Links (
[text](url)) - Lists (
-or*bullets) - Blockquotes (
>)
Selection Result
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;
}
Controls
- Mouse click and drag: Select text (edit scenario)
↑/↓or scroll: Navigate documentqorEsc: Close/cancel
API Usage
import { editDocument, displayDocument } from "${CLAUDE_PLUGIN_ROOT}/src/api";
// Display read-only document
await displayDocument({
content: "# My Document\n\nContent here.",
title: "View Mode",
});
// Interactive editing with selection
const result = await editDocument({
content: "# My Document\n\nSelect some **text** here.",
title: "Edit Mode",
diffs: [{ startOffset: 20, endOffset: 30, type: "add" }],
});
if (result.success && result.data) {
console.log(`Selected: "${result.data.selectedText}"`);
console.log(`Position: ${result.data.startOffset}-${result.data.endOffset}`);
}
When not to use it
- →For non-markdown content
- →When text selection is not required
Limitations
- →Supports markdown content only
- →Requires IPC for selection data retrieval
How it compares
It provides an interactive, selectable document canvas specifically for markdown editing and review rather than a static display.
Compared to similar skills
document side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| document (this skill) | 1 | 7mo | Review | Beginner |
| resume-builder | 53 | 3mo | No flags | Beginner |
| write-docs | 6 | 3mo | No flags | Beginner |
| wiki-changelog | 3 | 4mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by dvdsgl
View all by dvdsgl →You might also like
resume-builder
amruthpillai
Generate professional resumes that conform to the Reactive Resume schema. Use when the user wants to create, build, or generate a resume through conversational AI, or asks about resume structure, sections, or content. This skill guides the agent to ask clarifying questions, avoid hallucination, and produce valid JSON output for https://rxresu.me.
write-docs
tldraw
Writing SDK documentation for tldraw. Use when creating new documentation articles, updating existing docs, or when documentation writing guidance is needed. Applies to docs in apps/docs/content/.
wiki-changelog
microsoft
Analyzes git commit history and generates structured changelogs categorized by change type. Use when the user asks about recent changes, wants a changelog, or needs to understand what changed in the repository.
docs-changelog
google-gemini
Provides a step-by-step procedure for generating Gemini CLI changelog files based on github release information.
docs-writer
google-gemini
Always use this skill when the task involves writing, reviewing, or editing files in the `/docs` directory or any `.md` files in the repository.
document-writer
onmax
Use when writing blog posts or documentation markdown files - provides writing style guide (active voice, present tense), content structure patterns, and MDC component usage. Overrides brevity rules for proper grammar. Use nuxt-content for MDC syntax, nuxt-ui for component props.