Never do the same document twice.Never upload one once.

Describe the job once in a small text file. A deterministic engine repeats it — on your machine. There is no server of ours.

80 operations Free — no account, no tiers Local by design Agent-ready (MCP)
contract.opw.yaml
# the source of truth — the PDF is a build artifact
version: 1
kind: pdf
inputs:
  - input/contract.pdf
  - input/appendix.pdf
operations:
  - merge: {}
  - watermark: { text: INTERNAL, opacity: 0.15 }
  - add_page_numbers: { position: bottom-right }
output:
  file: output/contract_final.pdf

The problem

None of it is hard. All of it is hours.

Merging the same reports every month. Filling the same form for the 40th client. Redacting SSNs before a file goes out. Pulling 500 completed forms into a spreadsheet. Today that work gets done one of three ways — and all three have a catch:

Clicking through a PDF editor

Fine for one document — and unrepeatable by the second. An editor is a good place to read a document; it's a terrible place to repeat a process.

Uploading to a free online tool

Which is a client's tax return on someone else's server.

A script somebody wrote once

Which only they understand — and which broke last quarter.

The fix

Describe the job once, in a file.

You write an OpenPDF Workflow: plain YAML, one line per step. A deterministic engine renders it. Save the file and the PDF re-renders. Next quarter it produces the same result from the same input — and git diff says exactly what changed and who changed it.

  • The workflow is the source of truth; the PDF is a build artifact.
  • Git is your undo stack — every change is a reviewable diff.
  • Repeating it is free: next week, next quarter, the next five hundred files.

One person sets the workflow up; the whole team — or a coding agent — reruns it forever.

change one line — process the whole folder
inputs: "contracts/*.pdf"   # was: one file
operations:
  - watermark: { text: FINAL }
output:
  file: "out/{stem}_final.pdf"

A glob in inputs runs the same workflow over every matching file. One bad file is skipped and reported — not fatal.

Local by design

There is no server of ours.

No account, no upload service, no per-document pricing. The client's tax return, the signed contract, the medical intake form stay on the disk they're already on. The only network paths are ones you explicitly choose: offloading heavy OCR to a GPU box you own, or an AI operation pointed at a provider you pick — a local Ollama by default. That isn't a plan tier; it's the architecture — there is no server of ours to upload to.

Redaction that actually deletes

Find every SSN, email and account number by pattern and truly delete them — not a black rectangle over text that's still selectable underneath. Rasterize for the safest possible output.

Read the trust model

What's protected, what data can leave your machine and exactly what gates it, and how this website itself behaves: the trust page.

The vocabulary

80 operations, one grammar.

Every operation is one line in the same declarative shape — from merge to redaction to form filling. Browse the full operations reference.

Pages & layout

merge · split · split_invoices · crop · n_up · booklet …

Forms

create_form · fill_form · extract_form · flatten …

Redaction & cleanup

redact · auto_redact · sanitize · ocr · extract_js …

Stamps & overlays

watermark · stamp · annotate · add_page_numbers …

Convert to PDF

markdown_to_pdf · html_to_pdf · url_to_pdf · office_to_pdf …

Convert from PDF

pdf_to_markdown · pdf_to_docx · pdf_to_xlsx · pdf_to_html …

Document intelligence (AI)

summarize · translate · semantic_search

Optimize & archival

compress · repair · recolor (dark mode) · pdf_to_pdfa …

And five more categories

metadata & bookmarks · extraction · attachments · encryption · signatures

Flagship

The whole form lifecycle.

Make a fillable form, fill it a hundred times, and read every completed copy back into a spreadsheet — all from workflow files.

create_form

Write the form in Word or Markdown, type [[check]] and [[text]] where the fields belong, and get a real fillable AcroForm PDF. Verified on a 117-field, 4-page accounting-firm tax worksheet.

fill_form

Twelve real government forms ship already mapped: DS-11, DS-82, 1040, Schedule C, Schedule SE, W-9, W-8BEN, W-4, W-7, 1099-NEC, I-9, I-765. Your details live in one local YAML — or your existing CSV — and the same record fills any of them.

extract_form

Point at a folder of 500 filled PDFs; each is identified, read, and written out as JSON and CSV. Re-run after more arrive and only the new ones are read.

Agent-native

Works with any AI coding agent — online or offline.

Claude Code, Copilot, Cursor, Gemini, or a fully local agent: a bundled MCP server and a generated project guide teach any of them to author workflows for you.

Your coding agent never processes the PDF — it only creates and updates the workflow file. The document never enters the model's context. You review the diff before anything runs, and a fixed, deterministic engine on your machine does the actual work. AI operations like summarize and translate, if you enable them, go to the provider you chose — local by default.

Point your agent at pdf.lynxdi.com/llms.txt for a machine-readable overview and the full operation reference in Markdown.

Editing an OPW workflow file beside a live PDF preview, with the operations sidebar and color-coded dependencies

Rendering built from the extension's actual interface components.

Get started

Install in two steps.

Lynx PDF Studio runs inside Visual Studio Code — a free download. You don't need to be a developer, and you don't need to already use it: treat it as the free app that hosts the tool. Works on Windows, macOS, and Linux (VS Code 1.85 or later).

Get VS Code

Download it free from code.visualstudio.com and install it like any app.

Add Lynx PDF Studio

Install with one click (your browser will ask to open VS Code), get it from the Marketplace, or search “Lynx PDF Studio” in the Extensions view. Then Help → Get Started → Lynx PDF Studio walks you through your first render in four steps.

Questions

FAQ

Is it free? Can I use it for work?

Yes. Free to install and use for its intended purpose, including at work — no tiers, no account, no per-document pricing.

Do my PDFs get uploaded anywhere?

No. Documents are processed on your machine; there is no server of ours to upload to. The only network paths are ones you explicitly choose — like an AI operation pointed at a provider you pick, or OCR offloaded to a GPU box you own. Details on the trust page.

Does the AI agent see my PDFs?

No. Coding agents only create and update the workflow file — the document never enters the model's context. A fixed local engine processes the PDF. AI operations you explicitly enable (summarize, translate) go to the provider you configure, which is a local model by default.

Which AI agents work with it?

Any MCP-capable coding agent, online or offline — Claude Code, GitHub Copilot, Cursor, Gemini, or a fully local agent. A generated project guide teaches the agent your workflow format.

Is it open source?

It's free, the workflow format spec is open, the source isn't — for now.

Does it work offline?

Yes — all PDF processing runs locally and needs no network. Anonymous usage telemetry follows VS Code's telemetry setting (off means nothing is sent), and only operations that explicitly fetch URLs go online.

Windows, macOS, or Linux?

All three — anywhere VS Code runs. VS Code 1.85 or later.

I don't use VS Code — can I still use this?

Yes. VS Code is just the free app that hosts the tool; you install it once like any other application. You don't need to be a developer — if you can edit a small text file, you can run a workflow.

Which forms can it fill?

Twelve real government forms ship pre-mapped — DS-11, DS-82, 1040, Schedule C, Schedule SE, W-9, W-8BEN, W-4, W-7, 1099-NEC, I-9, I-765 — and it can fill any fillable PDF, create new fillable forms from Word or Markdown, and read completed forms back out to CSV.

Where do I get help?

Open an issue at github.com/LynxDI/pdf-studio/issues or email info@lynxdi.com.