← All skills
make-pdf
77 / 100 · Review before installing
Check before installing.
By garrytan/gstack (GitHub) · other · 141,312 stars · scanned at commit bc858ff
Turn any markdown file into a publication-quality PDF. (gstack)
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README.
Found in 49 places.
Show 17 more
- make-pdf/SKILL.md, line 171
~/.claude/skills/gstack/bin/gstack-skill-end --skill "make-pdf" --outcome OUTCOME \ - make-pdf/SKILL.md, line 219
"$P" generate letter.md # writes /tmp/letter.pdf - make-pdf/SKILL.md, line 226
"$P" generate --cover --toc --author "Garry Tan" --title "On Horizons" \ - make-pdf/SKILL.md, line 236
"$P" generate --watermark DRAFT memo.md draft.pdf - make-pdf/SKILL.md, line 245
"$P" preview essay.md - make-pdf/SKILL.md, line 254
"$P" generate --no-confidential memo.md memo.pdf - make-pdf/SKILL.md, line 312
"$P" generate readme.md out.html --to html # ONE self-contained file: inline - make-pdf/SKILL.md, line 326
"$P" generate docs.md --strict # missing, remote, out-of-tree, non-image, - make-pdf/src/orchestrator.ts, line 23
import { spawn } from "node:child_process"; - make-pdf/src/pdftotext.ts, line 29
import { execFileSync, spawnSync } from "node:child_process"; - make-pdf/src/pdftotext.ts, line 164
const res = spawnSync(bin, ["-v"], { encoding: "utf8" }); - make-pdf/src/pdftotext.ts, line 194
return execFileSync(info.bin, args, { - make-pdf/test/cli-exit-codes.test.ts, line 135
const r = Bun.spawnSync(argv, { cwd: ROOT, env: opts.env ?? childEnv(), stdout: "pipe", stderr: "pipe", stdin: "ignore", timeout: 120_000 }); - make-pdf/test/docx-image-size.test.ts, line 10
import { execFileSync } from "node:child_process"; - make-pdf/test/docx-image-size.test.ts, line 36
return execFileSync("unzip", args, { timeout: 30_000, maxBuffer: 16 * 1024 * 1024 }); - make-pdf/test/docx-image-size.test.ts, line 104
const run = Bun.spawnSync([process.execPath, "-e", script], { timeout: 30_000, stdout: "pipe", stderr: "pipe" }); - make-pdf/test/e2e/combined-gate.test.ts, line 19
import { execFileSync } from "node:child_process";
and 29 more places
Connects to the internet
The author does not mention this.
Found in 2 places.
Downloads and installs other software
The author does not mention this.
Found in 5 places.
Show 2 more
Safer alternatives
Low-risk skills in the same category (other) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'make-pdf' ] || [ -L ~/.agents/skills/'make-pdf' ]; then echo 'A skill folder named make-pdf already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/garrytan/gstack' "$d" && git -C "$d" checkout --quiet 'bc858ffc659bcc61558f60d0e023a009817dd48f' -- 'make-pdf' && mkdir -p ~/.agents/skills && cp -R "$d"/'make-pdf' ~/.agents/skills/'make-pdf' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'make-pdf' ~/.claude/skills/'make-pdf' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for garrytan/gstack shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/garrytan/gstack/)
Score history
| Date | Version | Score |
|---|
| 2026-11-12 | bc858ff | 77 |
| 2026-11-11 | f0cd9f8 | 77 |
| 2026-11-10 | 6b32714 | 77 |
| 2026-11-09 | c25580e | 77 |
| 2026-11-08 | 9740bfd | 77 |
| 2026-11-08 | d479c5b | 77 |
| 2026-11-06 | 0c41ced | 57 |