npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

yourpdf

v0.1.0

Published

Offline-first PDF CLI toolkit with optional macOS Finder Quick Action setup

Readme

YourPDF

YourPDF is an offline-first PDF toolkit currently focused on:

  • Rust (processing engine)
  • Rust CLI

Monorepo layout

pdfkit/
  cli/         # Rust CLI wrapper (binary: yourpdf)
  shared/      # Core PDF engine used by CLI

Core MVP features

  • Merge PDFs (ordered input)
  • Split PDFs (range and single-page mode)
  • Compress PDFs (low/medium/high presets, Ghostscript with internal fallback)
  • Convert image -> PDF
  • Convert PDF -> PNG (via pdftoppm)
  • Batch processing with parallel execution (rayon) and per-file fault isolation

Advanced features (implemented)

  • Folder watcher:
    • Monitors a folder locally with notify
    • Auto-runs a named saved workflow when new/modified files are detected
    • Debounces duplicate file change bursts
  • Saved workflows:
    • Persisted locally at ~/.yourpdf/workflows.json
    • Supports multi-step pipelines (merge, split, compress, convert)
    • Available in CLI

Privacy model

  • Fully local processing
  • No telemetry
  • No network calls in app runtime
  • No cloud upload paths

Requirements

  • Rust toolchain (stable)
  • Optional but recommended:
    • Ghostscript (gs) for higher quality compression
    • Poppler (pdftoppm) for multi-page PDF -> PNG conversion
    • On macOS, PDF -> PNG has a built-in sips fallback (single output image) when Poppler is not installed

macOS helpers

brew install ghostscript poppler

Setup

cd /Users/user11/Desktop/pdf-toolkit/pdfkit
cargo build -p pdfkit-cli

npm Distribution (Global CLI + Optional Finder Setup)

Install globally:

npm install -g yourpdf

What this gives users:

  • yourpdf command in terminal
  • Optional macOS Finder setup command:
    • yourpdf setup-macos
    • yourpdf uninstall-macos

Notes:

  • On install, npm runs a local Rust release build (cargo build -p pdfkit-cli --release) if needed.
  • Rust toolchain is required for npm install from source.

Run CLI

cd /Users/user11/Desktop/pdf-toolkit/pdfkit
cargo run -p pdfkit-cli -- --help

macOS Finder Quick Action (YourPDF option, Preview stays default)

This adds a YourPDF action in Finder context actions for PDF files without changing the default app association.

Install:

cd /Users/user11/Desktop/pdf-toolkit/pdfkit
./macos/finder-quick-action/install_all_macos.sh

Uninstall:

cd /Users/user11/Desktop/pdf-toolkit/pdfkit
./macos/finder-quick-action/uninstall_quick_action.sh

Behavior:

  • Right-click one or more PDFs in Finder -> Quick Actions -> YourPDF
  • Native prompt lets you choose: Merge, Compress, Split, Convert PDF to PNG
  • Output is written to yourpdf-output next to the selected file
  • Preview (or any current default app) remains the default double-click handler

Examples:

yourpdf merge file1.pdf file2.pdf -o output.pdf
yourpdf split file.pdf --range 1-5 -o output
yourpdf split file.pdf --single -o output
yourpdf compress "*.pdf" --preset medium -o output
yourpdf convert input.pdf --to png -o output
yourpdf convert image.png --to pdf -o output/converted.pdf
yourpdf workflow save --from-json workflow.json
yourpdf workflow list
yourpdf workflow run --name quick-compress file1.pdf file2.pdf
yourpdf watch --folder /path/to/inbox --workflow quick-compress --recursive

workflow.json example:

{
  "name": "quick-compress",
  "steps": [
    {
      "Compress": {
        "preset": "Medium",
        "output_dir": "output/workflow"
      }
    }
  ]
}

Engine design notes

  • Shared core logic lives in shared/src/* and is used by CLI commands.
  • Batch processing is parallelized with rayon::into_par_iter.
  • Errors are strongly typed (PdfKitError) and surfaced with readable messages.

Testing

cd /Users/user11/Desktop/pdf-toolkit/pdfkit
cargo test -p pdfkit-shared
cargo test -p pdfkit-cli

Current tests include:

  • shared engine unit tests for merge + split paths
  • CLI integration test validating help output and command surface

Advanced features roadmap

  • Metadata cleaner
  • Basic editing (annotations/text/highlight)