Skills — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Skills (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Agent skills for working with PDFs. Most are bound to the OkraPDF API; [pdf-parse-qa](skills/pdf-parse-qa/) is vendor-neutral (bring your own parser - HuggingFace VLMs, Reducto, LlamaParse, Azure DI, anything).
This repo is also packaged as an OkraPDF Codex plugin, using the same MagicPath-style shape:
npx skills add okrapdf/skills --skill okrapdf for the skill-first install.codex plugin marketplace add okrapdf/skills for Codex plugin discovery once you want the plugin surface..claude-plugin/.| JTBD | Skill | API key needed | What it teaches |
|---|---|---|---|
| Use OkraPDF as a Codex-native interactive PDF panel | okrapdf | OkraPDF | MagicPath-style agent IDE loop: run okra bridge serve, open http://127.0.0.1:7373/viewer?doc=<docId>, read okra select, crop the selected pixels, then return JSON or run okra ask/extract --selection. |
| Get a completion endpoint on a PDF, fast | okra-curl | OkraPDF | curl cookbook for POST /v1/documents → OpenAI-compatible POST /document/{id}/chat/completions, structured extraction with response_format, exports, page images. The fastest path from "I have a PDF" to "I have an API." |
| Generate a designed PDF from an agent | okra-create | OkraPDF | POST /render (baked design system) + POST /browser/html-to-pdf (custom HTML cover) + POST /codemode/run (composed). One Worker, three modes. |
| Turn a collection into a navigable wiki | okra-wiki | OkraPDF | Collection export → per-doc synthesis → static site. Built on GET /v1/collections/{id}/export, POST /v1/sandbox/run, and the per-document chat-completion endpoint. |
| A/B test PDF parsers (Reducto vs LlamaParse vs Qwen2.5-VL vs Gemini Flash vs …) | pdf-parse-qa | none — BYO parser | Hosted block-by-block validator. Adapters for HuggingFace VLMs, Gemini, Reducto, OkraPDF facets. Vote ↑↓ 1/2/3, export verdict JSON, compare per-label pass-rates. |
# All
npx skills add okrapdf/skills --all
# Just one
npx skills add okrapdf/skills --skill okrapdf
npx skills add okrapdf/skills --skill okra-curl
npx skills add okrapdf/skills --skill okra-create
npx skills add okrapdf/skills --skill okra-wiki
npx skills add okrapdf/skills --skill pdf-parse-qa
# For a specific agent (Claude Code, Cursor, OpenCode...)
npx skills add okrapdf/skills -a claude-code -gCodex plugin marketplace install:
codex plugin marketplace add okrapdf/skillsThen open the Codex plugin directory and install OkraPDF from the OkraPDF marketplace. For local development:
codex plugin marketplace add /Users/steventsao_personal/dev/okrapdf-skillsFor the OkraPDF-bound skills:
export OKRA_API_KEY=okra_...For the Codex-native PDF panel, install okrapdf, then use:
npx skills add okrapdf/skills --skill okrapdf
okra bridge serveOpen http://127.0.0.1:7373/viewer?doc=<docId>, drag-select a region, and ask your agent about "this selection." The viewer shows "Selection synced to Codex bridge" when okra select --json can read it.
For visual questions or JSON from a highlight, the okrapdf skill tells the agent to crop the actual selected pixels first:
node <skill-dir>/scripts/crop-selection.mjs --out /tmp/okra-selection.pngThat crop is the source of truth for what the user highlighted.
For pdf-parse-qa: no signup needed. Open the skill's SKILL.md and follow the workflow with whichever parser(s) you're evaluating.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.