원클릭으로
Process PDF files with Bun-friendly tools: extract text, create PDFs, merge documents, or inspect metadata.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Process PDF files with Bun-friendly tools: extract text, create PDFs, merge documents, or inspect metadata.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Design and build TypeScript/Bun AI agents for any domain. Use when users: (1) ask to create an agent, assistant, or agent harness (2) want to understand agent architecture, tool use, planning, subagents, or skills (3) need a small runnable Bun/TypeScript agent scaffold (4) ask about Claude Code, Cursor, or similar agent internals Keywords: agent, assistant, autonomous, workflow, tool use, orchestration, bun, typescript
Perform thorough TypeScript/Bun code reviews with security, correctness, performance, and maintainability analysis. Use when the user asks to review code, check for bugs, or audit this codebase.
Build MCP (Model Context Protocol) servers with TypeScript and Bun. Use when the user wants to create an MCP server, add tools to Claude/Codex, or integrate external services.
| name | |
| description | Process PDF files with Bun-friendly tools: extract text, create PDFs, merge documents, or inspect metadata. |
Prefer command-line PDF tools when available. For programmatic work, use TypeScript packages installed with Bun.
pdftotext input.pdf -
pdftotext input.pdf output.txt
bun add pdf-parse
import pdf from "pdf-parse";
const data = await pdf(await Bun.file("input.pdf").arrayBuffer());
console.log(`Pages: ${data.numpages}`);
console.log(data.text);
pandoc input.md -o output.pdf
pandoc input.md -o output.pdf --pdf-engine=xelatex -V geometry:margin=1in
bun add pdf-lib
import { PDFDocument, StandardFonts } from "pdf-lib";
const doc = await PDFDocument.create();
const page = doc.addPage([612, 792]);
const font = await doc.embedFont(StandardFonts.Helvetica);
page.drawText("Hello, PDF!", { x: 72, y: 720, size: 16, font });
await Bun.write("output.pdf", await doc.save());
import { PDFDocument } from "pdf-lib";
const merged = await PDFDocument.create();
for (const path of ["a.pdf", "b.pdf", "c.pdf"]) {
const source = await PDFDocument.load(await Bun.file(path).arrayBuffer());
const pages = await merged.copyPages(source, source.getPageIndices());
pages.forEach((page) => merged.addPage(page));
}
await Bun.write("merged.pdf", await merged.save());
import { PDFDocument } from "pdf-lib";
const source = await PDFDocument.load(await Bun.file("input.pdf").arrayBuffer());
for (const index of source.getPageIndices()) {
const single = await PDFDocument.create();
const [page] = await single.copyPages(source, [index]);
single.addPage(page);
await Bun.write(`page_${index + 1}.pdf`, await single.save());
}
pdftotext first for plain extraction; it is fast and reliable.pdf-lib for create/merge/split workflows.