Markitdown
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
Agent skill
by composio-community in composio-community/awesome-codex-skills
Generates PPTX, DOCX, XLSX and PDF files from a JSON layout spec through PaperJSX's packages, creating new documents rather than editing them.
$ npx skills add composio-community/awesome-codex-skills --skill paperjsx -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install composio-community/awesome-codex-skills paperjsx --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/composio-community/awesome-codex-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/paperjsx .claude/skills/paperjsx && rm -rf skills-srcUse ~/.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/
Install the "paperjsx" agent skill from https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsx into .claude/skills/paperjsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperjsx", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsxType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add composio-community/awesome-codex-skills --skill paperjsx -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install composio-community/awesome-codex-skills paperjsx --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/composio-community/awesome-codex-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/paperjsx .agents/skills/paperjsx && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "paperjsx" agent skill from https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsx into .agents/skills/paperjsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperjsx", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add composio-community/awesome-codex-skills --skill paperjsx -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install composio-community/awesome-codex-skills paperjsx --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/composio-community/awesome-codex-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/paperjsx .cursor/skills/paperjsx && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "paperjsx" agent skill from https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsx into .cursor/skills/paperjsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperjsx", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/composio-community/awesome-codex-skills.git --path paperjsx--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add composio-community/awesome-codex-skills --skill paperjsx -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install composio-community/awesome-codex-skills paperjsx --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/composio-community/awesome-codex-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/paperjsx .gemini/skills/paperjsx && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "paperjsx" agent skill from https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsx into .gemini/skills/paperjsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperjsx", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install composio-community/awesome-codex-skills paperjsxInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add composio-community/awesome-codex-skills --skill paperjsx -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/composio-community/awesome-codex-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/paperjsx .github/skills/paperjsx && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "paperjsx" agent skill from https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsx into .github/skills/paperjsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperjsx", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add composio-community/awesome-codex-skills --skill paperjsx -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install composio-community/awesome-codex-skills paperjsx --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/composio-community/awesome-codex-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/paperjsx .opencode/skills/paperjsx && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "paperjsx" agent skill from https://github.com/composio-community/awesome-codex-skills/tree/master/paperjsx into .opencode/skills/paperjsx/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperjsx", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
paperjsxGenerates PPTX, DOCX, XLSX and PDF files from a JSON layout spec through PaperJSX's packages, creating new documents rather than editing them.
For each target format it installs the matching package, such as one for converting JSON to PPTX, DOCX or XLSX, builds a JSON layout spec against a bundled schema reference, then writes and runs a short Node.js script that passes that JSON into the matching PaperJSX engine. The execution model stays JSON in, document file out, and it avoids writing imperative calls against the PaperJSX API directly.
After generation it always verifies the output file exists and is non-zero bytes with a filesystem check, and surfaces the engine's full error message to the user if generation throws, rather than guessing at the cause.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0930e13. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
PaperJSX Document Generator loads about 842 tokens when it runs, and up to ~4.2k if it reads all its reference files. Until then it costs about 33 tokens; SKILL.md has 191 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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); files beside SKILL.md are not scanned.
The full file from composio-community/awesome-codex-skills at commit 0930e13, republished under its Apache-2.0 licence (© composio-community). 191 words, ~842 tokens.
.claude/skills/paperjsx/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Generate professional documents from JSON layout specs. PaperJSX is generation-only — it creates new files, it does not edit existing ones.
Use this skill when the user asks to:
Install the format-appropriate package:
# Presentations
npm install @paperjsx/json-to-pptx
# Word documents
npm install @paperjsx/json-to-docx
# Spreadsheets
npm install @paperjsx/json-to-xlsx
# PDF documents
npm install @paperjsx/json-to-pdfreferences/json-schema.mdDo not write imperative PaperJSX API code. The execution model is always: JSON spec in, document file out.
import { PaperEngine } from "@paperjsx/json-to-pptx";
import fs from "node:fs";
const spec = {
type: "Document",
meta: { title: "Q4 Review" },
slides: [
{
type: "Slide",
children: [
{ type: "Text", content: "Q4 2025 Business Review", style: { fontSize: 36, bold: true } }
]
}
]
};
const buffer = await PaperEngine.render(spec);
fs.writeFileSync("presentation.pptx", buffer);
console.log("Generated presentation.pptx");import { renderToDocx } from "@paperjsx/json-to-docx";
import fs from "node:fs";
const result = await renderToDocx({
type: "DocxDocument",
pageSize: "a4",
orientation: "portrait",
pages: [
{
elements: [
{ type: "heading", level: 1, text: "Quarterly Report" },
{ type: "paragraph", text: "Section content here." }
]
}
]
});
fs.writeFileSync("report.docx", result.buffer);
console.log("Generated report.docx");import { SpreadsheetEngine } from "@paperjsx/json-to-xlsx";
import fs from "node:fs";
const spec = {
meta: { title: "Revenue Data", creator: "PaperJSX" },
sheets: [{
name: "Revenue",
rows: [
{ cells: [{ value: "Quarter" }, { value: "Revenue" }] },
{ cells: [{ value: "Q1 2026" }, { value: 420000 }] },
{ cells: [{ value: "Q2 2026" }, { value: 510000 }] }
]
}]
};
const buffer = await SpreadsheetEngine.render(spec);
fs.writeFileSync("revenue.xlsx", buffer);
console.log("Generated revenue.xlsx");After generating any file, always verify:
import fs from "node:fs";
const stats = fs.statSync("output.pptx");
if (stats.size === 0) {
throw new Error("Generated file is empty");
}
console.log(`Output file: ${stats.size} bytes`);If the engine throws an error, surface the full error message to the user.
See references/json-schema.md for the complete JSON layout spec schema for all supported formats.
© composio-community, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in paperjsx of composio-community/awesome-codex-skills.
Open the folder on GitHubat commit 0930e13
PaperJSX Document Generator 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| PaperJSX Document Generator this skillcomposio-community/awesome-codex-skills | 17k | — | ~842 | Automated safety check: Pass | Apache-2.0 | |
| MarkitdownImCa0/just-laws | 782 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Markitdownjimmc414/Kosmos | 595 | 2 repos | ~1.7k | Automated safety check: Pass | None | |
| Office DocumentsZS520L/HanakoPro | 103 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Skill Doc Deliverynyldn/claude-octopus | 4.2k | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Exam IngestZeKaiNie/universal-examprep-skill | 303 | — | ~5.6k | Automated safety check: Pass | MIT |
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
jimmc414/Kosmos
Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing.
ZS520L/HanakoPro
A skill your agent uses when the user asks to open, read, inspect, understand, summarize, analyze, extract tables/text from, modify, update, repair, split, merge, rotate, or convert information from…
nyldn/claude-octopus
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables
ZeKaiNie/universal-examprep-skill
从学生上传的课件/大纲/老师勾的重点/真题,一键初始化并验证备考工作区:解析 PDF、DOCX、PPTX、 XLSX、常见独立图片与 txt/md,建立分章节 LLM Wiki、标准题库、结构化接管队列与进度状态;仅在 Python 确实无法运行时 明确降级为手动写盘。当工作区尚未建立、资料发生变化、或建库 readiness 被阻断时使用。
affaan-m/ECC
Process, convert, OCR, extract, redact, sign, and fill documents using the Nutrient DWS API.
composio-community/awesome-codex-skills
Builds and checks clickable deep links that open a thread, file, folder or settings panel in tools like Codex, Cursor and VS Code, usually for sharing in Slack.
composio-community/awesome-codex-skills
Applies OpenAI's brand colors and typography to any artifact that should match the Codex/OpenAI look-and-feel.
composio-community/awesome-codex-skills
Search real-time news with bias scoring, get live stock/ETF/crypto data with AI analysis, ML options pricing, balanced news synthesis, and meme search via the Helium MCP server.
composio-community/awesome-codex-skills
Draft, rewrite, or condense emails with target tone, length, and audience; use for cold outreach, replies, status updates, or escalations where clarity and brevity matter.
composio-community/awesome-codex-skills
Turn meeting transcripts or rough notes into crisp summaries with decisions, risks, and owner-tagged action items; use for Zoom/Meet/Teams transcripts, call notes, or long meeting chats to generate…
composio-community/awesome-codex-skills
Write and debug spreadsheet formulas (Excel/Google Sheets), pivot tables, and array formulas; translate between dialects; use when users need working formulas with examples and edge-case checks.
Categories
Generates PPTX, DOCX, XLSX and PDF files from a JSON layout spec through PaperJSX's packages, creating new documents rather than editing them. js script that passes that JSON into the matching PaperJSX engine. The execution model stays JSON in, document file out, and it avoids writing imperative calls against the PaperJSX API directly.
PaperJSX Document Generator fits situations like: generating a PowerPoint deck from structured content; creating a Word document or Excel spreadsheet from JSON data; producing a PDF invoice or report from a layout spec.
Run `npx skills add composio-community/awesome-codex-skills --skill paperjsx -a claude-code`. Or copy the skill folder (paperjsx in composio-community/awesome-codex-skills) into .claude/skills/paperjsx in your project. Claude Code loads it when a task matches its description.
Run `npx skills add composio-community/awesome-codex-skills --skill paperjsx -a codex`. Or copy the skill folder (paperjsx in composio-community/awesome-codex-skills) into .agents/skills/paperjsx in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add composio-community/awesome-codex-skills --skill paperjsx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/paperjsx, .gemini/skills/paperjsx, .github/skills/paperjsx and .opencode/skills/paperjsx in your project.
Going by SKILL.md and its folder, PaperJSX Document Generator needs the command-line tools its instructions call (npm). Our summary lists: Node.js; The format-specific PaperJSX package.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
PaperJSX Document Generator is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 842 tokens (SKILL.md is roughly 3.4k 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 3.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with PaperJSX Document Generator: Markitdown (ImCa0/just-laws, 782 stars), Markitdown (jimmc414/Kosmos, 595 stars), Office Documents (ZS520L/HanakoPro, 103 stars) and Skill Doc Delivery (nyldn/claude-octopus, 4.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
composio-community (a GitHub organization) maintains it in composio-community/awesome-codex-skills, which has 16,818 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on July 26, 2026.
Source: composio-community/awesome-codex-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.