Skip to content
publik.
Browse appsAppsPricing
+Publish a repoPublish
Browse appsHow it worksPublish a repoGet helpPricingDevelopersGitHubPrivacy
© 2026 Publik
← All apps

PdfCraft

PDF reader and editor in pure Rust, with summaries and questions about the open file through publik API

AI: publik API or your key

✓publik verified: the founder reviewed this exact version for malware and approved it

by @echelon

Listed on @echelon’s behalf — not claimed yet.
PdfCraft interface

On your phone?

You install PdfCraft from a computer. Send yourself the link and open it there.

Available for macOS.

◆Built on Publik APIBuild yours →

publik API is one option

  • AI chat & tools: Chat completions with tool calls, JSON schemas and images, priced per tier in dollars.
  • By default, PdfCraft still runs on your machine, unless you pick the cloud option.
  • Choosing it needs no key to paste. Linking your publik account gives five cents of free use, once.
  • Then PdfCraft pays publik's published price per use, and your own key still works.
How pricing works →
Vote on PdfCraft
0
Open in GitHub↗

The download is publik’s signed build of this app, with the publik API step added, released from blueturboguy07/pdfcraft.

Compared with

A

Adobe Acrobat Pro

$19.99/mo

What a month of AI costs

  • Adobe Acrobat Pro$19.99/mo
  • publik API$4.33/mo

publik API: $15.66 a month less than Adobe Acrobat Pro.

100 uses a week at the Balanced level · publik API is cheaper up to about 461 uses a week

Who made this

PdfCraft is the work of echelon, not of publik. We host a checked fork for the install guide; we add the publik API step (summarize and ask about the open PDF) and we sign and notarize the builds. Everything else is the original.

Open the original ↗

Shared under the Apache-2.0 licence.

Having trouble? Tell us

Where PdfCraft’s AI runs, and what it costs

Prices are for one typical use: one request of about 1,500 words sent and 375 words back. A higher quality score is better.

On your computer

PdfCraft has no option to run its AI on your computer.

publik API

Price
$0.0100 per use, $10.00 per 1,000 usespublik-balanced, the default level
Quality
MiMo-V2.6-Pro: 46
Setup
Built in. No key to paste; linking your publik account gives $0.05 of free use, once.

Your own key

Price
$0.0013 per use, $1.31 per 1,000 usesMiMo-V2.6-Pro at OpenRouter’s list price, before its fee for buying usage
Quality
MiMo-V2.6-Pro: 46
Setup
Open a provider account, add a card, paste the key into PdfCraft.

Quality and price, side by side

Quality score and cost per 1,000 typical uses for local models and the three publik API levels
ModelQualityPer 1,000 uses
On your computer (Ollama, 4-bit download size)
Granite 4.2 3B2.2 GB9$0
Phi-4 Mini2.5 GB6$0
Llama 3.1 8B4.9 GB7$0
gpt-oss 20B14 GB9$0
Gemma 4 31B20 GB19*$0
Qwen3.5 35B-A3B24 GB19*$0
publik API
publik-fastGLM-5.3 Flash42$1.00
publik-balancedMiMo-V2.6-Pro · PdfCraft46$10.00
publik-smartGPT-6 Sol48$18.00

Quality: Artificial Analysis Intelligence Index v4.3.2, read 2026-09-22 (publik API models 2026-09-25); * = estimated by Artificial Analysis. Sizes: the Ollama library, read 2026-09-22.

What you pay for

  • On your computer: nothing per use. You pay in disk space, memory and electricity, at lower quality.
  • publik API: publik’s published price for each use, in dollars, from your publik balance. It is above the model’s cost; the difference runs publik and pays the app’s builder.
  • Your own key: the provider’s price, billed to an account you keep with the provider.
Install PdfCraft: publik API is built in →How publik API pricing works →

README

Open in GitHub ↗

ArtCraft

PdfCraft

The PDF workbench; an open-source, modern PDF reader and editor, built in pure Rust.
Read, organize, combine, split and secure PDFs in a fast, native app, written in Rust from the ground up.
macOS · Windows · Linux · FreeBSD · the web

License: MIT OR Apache-2.0 Written in Rust Platforms: macOS, Windows, Linux, FreeBSD, web No account, no telemetry
Scanned by SonarCloud Reviewed by CodeRabbit

Join the ArtCraft community on Discord

PdfCraft on getartcraft.com · ArtCraft · All Crafting Apps


PdfCraft with the PdfCraft Showcase cover page open, the All tools panel on the left and 20 threaded comments on the right
The PdfCraft Showcase, a 13-page specimen PDF, open with the All tools panel and threaded comments.

[!NOTE] ArtCraft is a community of artists from all walks of life. Digital, generative, music, games — if you make things, you're one of us. Come say hi on Discord.

Highlights · Read · Find · Organize · Combine & split · Protect · Forms & layers · Everywhere · Agents · How it's built · Get started · What's next · Downloads · Crafting Apps


Community

PdfCraft is part of ArtCraft. Come say hello, get help and follow development:

  • Discord: discord.gg/artcraft. This is the fastest way to get help and share feedback. The app has a Discord button in its title bar.
  • Web page: getartcraft.com/apps/pdfcraft
  • Source: github.com/storytold/pdfcraft

The ArtCraft name and logos in docs/brand/ are trademarks of the ArtCraft Team and are not open source. They may be used only unmodified, and only as part of PdfCraft (see docs/brand/LICENSE-brand.txt). Forks and modified versions must remove them.

Highlights

Faithful

Real-world typography: world scripts, vertical Japanese, colour emoji, gradients, soft masks and transparency. All of it renders the way the author intended.

Fearless

Every save appends your changes and leaves the original bytes untouched. Writes are atomic, undo runs deep, and nothing is lost if you close by mistake.

Yours

No account, no telemetry, no cloud. It works offline and opens instantly. The engine, CLI and app are all open source.


Read anything, beautifully

PdfCraft renders PDFs with care for the details that make a page feel right: kerning and ligatures, right-to-left and complex scripts, vertical CJK, colour emoji, shadings, blend modes, soft masks and optional content.

The Scripts of the World page: Arabic, Hebrew, Devanagari, Thai, Greek, Cyrillic, Chinese, Korean, IPA, Armenian, Georgian and Tamil samples, with vertical Japanese in the right margin
Twelve writing systems on one page, plus vertical Japanese, at 125%.

  • Deep zoom stays sharp. Large pages render in tiles, so text stays crisp at any magnification.
  • Built to survive bad files. Every page renders in isolation and damaged documents are repaired. Across the 983-file pdf.js test corpus the result is 0 crashes.
  • Layouts for every task: continuous, single page, two-up, view rotation, full screen and a distraction-free Read mode.
  • Light and dark themes, both designed to be easy on the eyes for long sessions.
Two facing pages in Read mode with the dark theme: the Foreword and the Setting Text chapter with its drop cap and pull quote The dark theme showing the Code and Images chapter, a syntax-coloured listing and a fractal image, with the comments panel open
Two-up Read mode, ready for long reading The dark theme, with the comments panel open

Find it, select it, copy it

Search the whole document as you type, step through matches with ⌘G, and select text that comes out in the right reading order. That holds for columns, right-to-left runs and CJK too.

Navigate long documents

Right-click a PDF tab to close it, reopen the last closed file-backed tab, or reveal its file. Closing still asks about unsaved changes. Reopening reads the saved file from disk; it does not restore discarded edits. Reveal selects the file in Explorer or Finder. On Linux and FreeBSD it requests org.freedesktop.FileManager1.ShowItems, falling back to opening the containing directory with xdg-open when that service is unavailable. Reopen and Reveal are unavailable on the web; Reveal is also unavailable for pathless documents.

Bookmarks, page thumbnails and the document's own page labels (i, ii, 1, 2…) keep you oriented in long documents. Search bookmark titles in the Bookmarks panel to find nested entries even when their parents are collapsed. Matches keep their ancestors for context; Clear restores the unfiltered tree without changing its expansion state.

The find bar showing match 10 of 16 for the word 'type', highlighted in the Expressive Type chapter heading The Bookmarks panel showing the nested outline of the showcase, with page labels such as Cover, i and ii, next to the Scripts of the World page
Find as you type: match 10 of 16 Nested bookmarks with the document's own page labels

Organize pages like cards on a table

Open Organize pages to see every page at once:

  • Select pages: click, ⌘-click or ⇧-click.
  • Change them: rotate, delete, insert blank pages, insert pages from another file, and move them earlier or later.
  • Undo anything: ⌘Z, then save.

The Organize pages grid with the showcase's pages as thumbnails, three of them selected, and the page toolbar above
Organize pages with three pages selected and the page tools in the toolbar above.

Undo that goes the distance. Each change is one step in a history you can walk backwards and forwards. The Edit menu names the step ("Undo Rotate pages"), and undo still works after you save.

Saves you can trust:

  • Incremental: the original bytes stay byte-for-byte intact.
  • Atomic: the file is written to a temporary copy, then swapped in.
  • Verified: independently checked with qpdf, on every CI run.

When open documents exceed the window width, scroll over the tab strip with the mouse wheel or trackpad, or use its horizontal scrollbar. Opening or switching to a document brings its tab into view.

Unsaved documents carry a dot on their tab, and closing or quitting asks before anything is lost. Changes are autosaved every minute. If PdfCraft ever quits unexpectedly, it offers to recover your work the next time it opens. Encrypted documents stay encrypted on disk.

The Split document dialog over the organize view, set to one page per file and reporting that it creates 13 files from 13 pages
Split document: one page per file makes 13 files.

Combine and split without losing a thing

Combine files merges any number of PDFs into one. Each file gets a bookmark, with its own bookmarks nested underneath.

Extract copies the pages you select into a new document. Split divides a document every n pages, or before the pages you choose.

Nothing quietly disappears along the way:

  • links and named destinations are rewired to the copied pages;
  • form fields stay interactive;
  • layers keep their on/off defaults;
  • attachments come along.

Every page of a combined document renders pixel-identical to its source.

pdfcraft-cli combine report.pdf appendix.pdf --out combined.pdf
pdfcraft-cli extract report.pdf --pages 1,3,5-8 --out highlights.pdf
pdfcraft-cli split   report.pdf --every 10 --out-dir parts/

Open protected documents and respect their rules

PdfCraft implements the PDF standard security handler completely:

  • every revision, from 40-bit RC4 to AES-256;
  • user and owner passwords, including Unicode passwords normalised with SASLprep;
  • crypt filters and attachment-only encryption.

Documents restricted by their author show a clear notice, and PdfCraft honours their permissions. Enter the owner password and the restrictions lift. Edits to encrypted documents are saved encrypted, under the same keys.

The Document Properties dialog on its Description tab, with editable title, author, subject and keywords, and tabs for Security, Fonts and Advanced
Document Properties, Description tab

Document Properties shows:

  • the document's title, author, subject and keywords, which you can edit;
  • the fonts it uses and whether each is embedded;
  • PDF version, page size, tags, fields, layers and attachments;
  • the full security picture: encryption method, which password opened it, and each permission.

Comments, forms, layers and attachments

The Interactive Form page with highlighted text fields, checkboxes, radio buttons, a list and a signature field, and the Fields panel listing all 13 fields and their values The Review and Markup page with highlights, shapes, ink and an APPROVED stamp under a DRAFT watermark, and the Layers panel with Draft watermark and Print-only notes
Forms: every field with its current value, field highlighting, and checkboxes, radio buttons, lists and signatures drawn the way their author designed them. Layers: switch optional content on and off and the page re-renders instantly. Comments appear as threaded conversations, and attachments can be opened or saved.

Every tool, one keystroke away

Press ⌘K to search every tool and command, or browse the All tools catalogue. Tools that are still in development are marked with the milestone that will ship them.

The command palette searching for 'page', listing Page grid, Page labels, Rotate pages, Insert pages, Delete pages, Extract pages and more, each with the tool it belongs to The Welcome to PdfCraft home screen with recommended tools, a recent file, a privacy note, and the full tool catalogue in the side panel
The ⌘K command palette The home screen and the All tools catalogue

Runs everywhere, stays yours

  • Native on macOS, Windows, Linux and FreeBSD, and in the browser through WebAssembly, from the same Rust codebase. Windows builds come for x64, x86 and ARM64 (Windows on ARM, no emulation); every ARM64 change is tested on ARM64 hardware in CI.
  • Private by design. Documents never leave your machine. There's no account, no telemetry and no cloud processing.
  • Engine first. Parsing, rendering and editing live in reusable library crates. The interface is one swappable layer on top.
  • Scriptable. The pdfcraft-cli tool (see Built for agents, too) covers inspecting, rendering, extracting text, editing, combining, extracting pages and splitting. Robustness sweeps run on the same engine as the app.
pdfcraft-cli info  form.pdf                                  # structure as JSON
pdfcraft-cli text  paper.pdf --page 3                        # reading-order text
pdfcraft-cli edit  in.pdf --rotate 1,2:90 --delete 5 --title "Q3" --out out.pdf

Built for agents, too

Every engine feature is reachable without the GUI, through one table of JSON-Schema-described tools: open, inspect, render pages to PNG, extract and find text, rotate, delete, move and insert pages, edit bookmarks and page labels, add, reply to, restyle and delete comments (highlight a phrase just by naming it), list and fill in form fields, protect with passwords, set metadata, undo and redo, save, combine, extract and split. Three front doors share it:

  • pdfcraft-cli run, for one-off calls and JSON scripts:

    pdfcraft-cli tools                                        # every tool and its JSON Schema
    pdfcraft-cli run text_find doc=1 query=invoice            # key=value; values parse as JSON
    pdfcraft-cli run --script review.json                     # e.g. comment_add {"type": "highlight", "find": "total due"}
    pdfcraft-cli run --script steps.json --root ./work        # several steps in one session
    pdfcraft-cli run --script steps.json --report             # one JSON document: per step its number, tool, status, result or error
    

    With --root, every file the script's steps read or write stays in that directory, including the PNG a step saves with "out" (the script itself is read from wherever you name it).

  • An MCP server, for AI agents such as Claude. It is opt-in: PdfCraft never starts it on its own, and it opens no network port. It runs only while an agent launches pdfcraft-cli mcp, talks over stdin/stdout, and stops when the agent disconnects. To enable it, add it to your agent's MCP configuration:

    { "mcpServers": { "pdfcraft": { "command": "pdfcraft-cli", "args": ["mcp", "--root", "/path/to/your/pdfs"] } } }
    

    --compact shrinks the tool list the agent has to read: tools/list returns about ten core tools plus tool_search and tool_call, which find and run every other tool, so the list costs far fewer tokens. Every tool still works.

    --root confines every file the agent can read or write to one directory. Builds that should not include the server at all can use cargo build -p pdfcraft-cli --no-default-features.

  • The Rust API (pdfcraft_automation::Automation::call), for embedding.

Edits stay in memory, undoable, until doc_save. Saving to the same file appends an incremental update, so the original bytes are preserved, and the write is atomic. Unsaved changes are never discarded silently.

Driving the app itself

Start the desktop app with pdfcraft --control ~/.pdfcraft-control.json and an agent can see and operate the real interface: the widget tree with labels and positions (from the accessibility tree), clicks, typing, keys, commands, view options and screenshots. This is also off by default. It listens only on loopback, and every connection must present the random token written to that file, which only you can read.

Keep the control file in a folder only you can write, not a shared one such as /tmp: another user could create the file there first and receive your commands. pdfcraft-cli ui refuses a control file that is a symbolic link, and on macOS, Linux and FreeBSD one that another user owns or can read or write. The app doesn't start if it can't write the file.

pdfcraft-cli ui --control ~/.pdfcraft-control.json inspect query=rotate      # find widgets
pdfcraft-cli ui --control ~/.pdfcraft-control.json click label="Organize pages"
pdfcraft-cli ui --control ~/.pdfcraft-control.json key key=K modifiers='["command"]'
pdfcraft-cli ui --control ~/.pdfcraft-control.json command id=comment.square   # pick a tool, then draw:
pdfcraft-cli ui --control ~/.pdfcraft-control.json drag from='[400,300]' to='[600,420]'
pdfcraft-cli ui --control ~/.pdfcraft-control.json screenshot --out window.png
pdfcraft-cli ui --control ~/.pdfcraft-control.json resize width=1200 height=800
pdfcraft-cli ui --control ~/.pdfcraft-control.json focus label="Read"
pdfcraft-cli ui --control ~/.pdfcraft-control.json inspect focused=true
pdfcraft-cli ui --control ~/.pdfcraft-control.json quit

ui.dock arranges the tools and inspector panels; canvas is the protected document view. Each per-panel request requires a panel ID and an operation: open, close, activate, float with rect: [x, y, width, height], or move with target and zone: center|left|right|top|bottom. For example, {"operation":"float","panel":"tools","rect":[100,100,320,440]} floats Tools. ui.dock.reset restores the default arrangement. The control channel accepts these methods directly; ui.command also accepts {"id":"ui.dock","params":{...}}. Saved preferences retain groups, active tabs, visibility and floating geometry. Invalid requests return an error without changing the document or layout.

resize requests a native inner-window size in logical points (each dimension must be between 320 and 8192); the window manager may constrain it. state reports the observed window.width, window.height and window.pixels_per_point. focus accepts exactly one widget id or unique enabled, focusable label; subsequent key requests traverse or activate the actual widgets. inspect includes focusability and accepts a focused filter. quit takes no parameters: clean documents exit normally, while unsaved edits or typing open the existing Save/Don't save/Cancel prompt and return quitting: false, needs_confirmation: true. It never silently discards work. Window resizing and application quit are native-only.


How it's built

PdfCraft is a Cargo workspace of focused crates, layered so the core never depends on the UI:

CrateWhat it does
pdfcraft-filtersEvery PDF stream filter (Flate, LZW, ASCII85, RunLength, predictors), encode and decode, property-tested
pdfcraft-cryptThe standard security handler: RC4, AES-128/256, revisions 2–6, permissions
pdfcraft-cosThe PDF object layer: tolerant parsing, repair, copy-on-write edits, incremental and full writing
pdfcraft-organizePage operations, combine / extract / split, bookmarks, page labels, document information
pdfcraft-fontsFont metrics and encodings for generated appearances
pdfcraft-annotComments: builders and appearance streams for notes, text markup, shapes, ink and text boxes; replies, status, edits
pdfcraft-formsInteractive forms: the field model, filling with regenerated appearances, Clear form
pdfcraft-renderRendering, inspection and text extraction with reading order
pdfcraft-engineThe façade every frontend uses: sessions, edits, undo, saving, the tool catalogue
pdfcraft-automationAgent control: the headless tool table, pdfcraft-cli run, and the opt-in MCP server
pdfcraft-ui-eguiThe desktop and web interface

Quality gates. Every change passes the same automated checks:

  • formatting, and Clippy with warnings as errors;
  • 200+ unit, property and UI tests;
  • crate-layering rules and a WebAssembly build check;
  • an asset-licence audit.

On top of those, two corpus sweeps run over real-world files:

  • Opening and rendering: of the 983 pdf.js test files, 963 open and render cleanly, with 0 crashes.
  • Open, edit and save round trips: 958 succeed.

The output is verified against independent implementations: hayro and qpdf on every CI run, and poppler over the corpus on demand (cargo xtask text-oracle).

PdfCraft is a clean-room implementation. Its behaviour comes from the ISO 32000 specification and black-box observation, never from anyone else's code. Every icon, font and image is openly licensed and listed in ATTRIBUTION.md.

What's next

PdfCraft is young and moving fast. The aim is a workbench where you can view, organize, annotate, fill, sign and edit PDFs, for professional and everyday workflows.

Where it stands (October 2026), honestly: PdfCraft is alpha. Most essential offline PDF features exist in some form (57% of the features tracked in docs/target-app-parity.md, 94% of core essentials). For everyday work (viewing, commenting, filling and signing forms, organizing pages) readiness is about 55%; across all professional workflows, about 49%; for someone who only needs the essentials, about 66%. Every everyday workflow can be completed, but converting and sharing is weak: no office-document-to-PDF, and .docx export that loses layout.

  • Good today: viewing and search; organizing, combining and splitting; most kinds of comment; filling and authoring forms (with sandboxed JavaScript); passwords, redaction and sanitizing; basic digital signatures; printing; the Accessibility Checker; agent control through the CLI and MCP.
  • Still borrowed: pages are drawn by the hayro crate while our own renderer is built.
  • Thin or missing: reliable editing of existing text (especially CJK and right-to-left), OCR beyond Latin script, office document import/export, signature tokens and online long-term validation, Preflight and PDF/X/UA, printing from the web build, physical printer fidelity, and full XFA forms.
  • Hardening: fuzzing still turns up crashes and hangs on hostile files; each one is fixed with a regression test. Quality has not yet been benchmarked side by side.

Next, in order: office-document-to-PDF and a .docx export that keeps layout, the reported bugs and the Chinese interface font, a fidelity harness against a reference renderer, editing existing content, then professional workflows (OCR, office formats, Preflight, signatures, accessibility tagging) and 1.0 polish.

The summary is in ROADMAP.md; the full assessment by dimension and area is in docs/target-app-parity.md, the ranked gaps in docs/gaps.md, and the milestones in docs/roadmap.md.


Downloads

New to PdfCraft? Download it from the PdfCraft page on getartcraft.com. That's the easiest way to install it.

Want a specific build or format? On GitHub, the latest release has every build listed below, and all releases has earlier versions and their notes. <ver> in the file names is the version number, and SHA256SUMS.txt lists a checksum for every file.

Windows
BuildInstallerPortable
x64 (64-bit Intel/AMD)pdfcraft-<ver>-windows-x64.msipdfcraft-<ver>-windows-x64-portable.zip
arm64 (Snapdragon and other ARM PCs)pdfcraft-<ver>-windows-arm64.msipdfcraft-<ver>-windows-arm64-portable.zip
x86 (32-bit)pdfcraft-<ver>-windows-x86.msipdfcraft-<ver>-windows-x86-portable.zip

Installers and executables are code-signed.

The portable zip runs from any folder, a USB stick included. Its portable.txt keeps the settings, logs and crash recovery in a PdfCraftData folder next to pdfcraft.exe, so nothing is written to %APPDATA%; delete that file to use the normal per-user folders.

The MSI installs for all users and requires administrator privileges. It adds "Edit with PdfCraft" to the right-click menu of PDF files and "Create PDF with PdfCraft…" to the right-click menu of images (.png .jpg .jpeg .tif .tiff .gif .bmp .jp2 .j2k .jpx) in File Explorer (on Windows 11, under "Show more options"), without changing which app opens them by default. For unattended deployment without a desktop shortcut, run from an elevated terminal:

msiexec /i "pdfcraft-<ver>-windows-x64.msi" /qn /norestart INSTALLDESKTOPSHORTCUT=0
Property=0 leaves out
INSTALLDESKTOPSHORTCUTthe all-users desktop shortcut
INSTALLPDFCONTEXTMENU"Edit with PdfCraft" on PDF files
INSTALLIMAGECONTEXTMENU"Create PDF with PdfCraft…" on images

All three are on for a first install. An upgrade keeps what the installed version has: a shortcut or menu entry that is there stays, and one that is missing (left out at install, or a desktop shortcut someone deleted) stays missing, so you don't need to pass them again. A value on the command line always wins: =1 puts one back and =0 removes it. Upgrading from a release that didn't have a menu yet (0.6.0 and earlier for the PDF menu, 0.2.1 and earlier for the image menu) adds it, as a first install would. Use the MSI for your architecture. Per-user installation overrides are not supported.

Pin the checksum, not just the version. Release candidates of a version share its MSI version (MSI versions are numbers only, so 1.2.3-rc.1 and 1.2.3 are both 1.2.3), and the installer lets an MSI of the same version replace the installed one without asking. Two different 0.7.1 MSIs can't be told apart by version, so if your deployment tool checks the file, pin its SHA-256 from SHA256SUMS.txt (Get-FileHash <file> -Algorithm SHA256).

Signing identities. The Windows MSIs and both executables are signed through Azure Trusted Signing with a certificate issued to Learning Machines Inc (Atlanta, Georgia, US). The macOS app and command-line tool are signed with the Developer ID Learning Machines LLC (DJ6XS33FX8) and notarized. The MSI's manufacturer, shown as the publisher in Installed apps, is Learning Machines LLC.

macOS
BuildFileNotes
App, universal (Apple silicon + Intel)pdfcraft-<ver>-macos-universal.dmgSigned and notarized
Command-line tool, universalpdfcraft-cli-<ver>-macos-universal.zipSigned and notarized
Linux
Formatx86_64aarch64 (ARM64)Notes
AppImagepdfcraft-<ver>-linux-x86_64.AppImagepdfcraft-<ver>-linux-aarch64.AppImageRuns anywhere; updates itself with AppImageUpdate (.zsync files)
Flatpakpdfcraft-<ver>-linux-x86_64.flatpakpdfcraft-<ver>-linux-aarch64.flatpakSandboxed; flatpak install --user <file>
Debian/Ubuntupdfcraft-<ver>-linux-x86_64.debpdfcraft-<ver>-linux-aarch64.deb
Fedora/RHEL/openSUSEpdfcraft-<ver>-linux-x86_64.rpmpdfcraft-<ver>-linux-aarch64.rpm
Tarballpdfcraft-<ver>-linux-x86_64.tar.gzpdfcraft-<ver>-linux-aarch64.tar.gzUnpack anywhere
Command-line toolpdfcraft-cli-<ver>-linux-x86_64.tar.gzpdfcraft-cli-<ver>-linux-aarch64.tar.gzpdfcraft-cli alone (and its opt-in MCP server), for servers, CI and agents

RISC-V (riscv64) builds come as tarballs only: pdfcraft-<ver>-linux-riscv64.tar.gz and pdfcraft-cli-<ver>-linux-riscv64.tar.gz. They are cross-compiled and need glibc 2.39 or newer (Ubuntu 24.04+, Debian 13+).

Every other Linux build needs glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora 36+, RHEL 10).

FreeBSD
BuildFile
x86_64pdfcraft-<ver>-freebsd-x86_64.tar.gz
Web (WebAssembly)
BuildFileNotes
Static sitepdfcraft-web-<ver>.zipRuns in a modern browser; host it on any static server

The Crafting Apps

PdfCraft is one of the Crafting Apps: free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.

AppWhat it's forCodeLearn more
PhotoCraftImage editing: layers, masks, type and real PSD filesGitHubWebsite
VectorCraftVector illustrationGitHubWebsite
FilmCraftVideo editing, color and soundGitHubWebsite
LightCraftPhoto library and raw developmentGitHubWebsite
PdfCraftReading, organizing and protecting PDFs · you are hereGitHubWebsite
EffectCraftMotion graphics and visual effectsGitHubWebsite
DesignCraftPage layout and publishingGitHubWebsite

And ArtCraft itself, our AI image and video studio for artists who want real control.


Join the ArtCraft community on Discord

Come make things with us

Our Discord is where artists of every kind hang out: people who paint, shoot, draw, cut film, set type, and people still figuring out what they like to make. Share what you're working on, ask for help, tell us what's broken, or tell us what you wish these tools could do. Whatever your medium and however long you've been at it, you're welcome here.

discord.gg/artcraft · getartcraft.com · The Crafting Apps · PdfCraft


License and credits

PdfCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors. Required notices are in NOTICE.

Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md. Release builds also embed the Japanese fonts of craft-fonts (SIL Open Font License 1.1).

The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as part of this repository and PdfCraft, under docs/brand/LICENSE-brand.txt. Forks and modified versions must remove them.

ArtCraft
Made by the ArtCraft team and community.

Tools and Inspector panels can be dragged into tab groups, split beside the PDF, or floated within the app window. Read and full-screen modes keep their existing focused document view. Drag a panel header to a target edge or another header. Its context menu offers Float panel, Move to group, and Close panel. Existing panel toggles reopen panels at their saved location; Reset Panel Layout restores the app layout. Floating panels remain inside the current app window.

Advanced ui.dock operations use the same validated transaction as pointer gestures: moveFloating updates rect, resizeSplit accepts a boolean child path and size ({"Ratio":0.5}, {"FixedFirst":280}, or {"FixedSecond":280}), setStackOpen takes open, and resizeStack takes a point height or null. A center move can include before (panel ID or null to append) for tab order. The equivalent {"action": ...} form accepts a serialized shared docking action; this is also the form emitted by the renderer. Protected-canvas and app-specific panel rules apply equally to both forms.