anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

Stirling PDF’s open-core PDF editor and processor, for your desktop, your browser or your own server. The setup notes cover the desktop app, Docker, Java, Kubernetes, Stirling Cloud, the REST API, folder scanning and an MCP server for AI agents.
Stirling PDF is an open-source project on GitHub in the Productivity category, listed by Mindket. It is free. This is version 2, last updated on . Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf
And 3 more in Where to use it
Stirling PDF is an editor and processor for PDF files, made by Stirling PDF Inc. Its README says you can run it as a desktop app, in a browser or on your own servers with a private API. The tools merge, split, compress, convert, OCR, sign and redact, and a saved chain of tools can run on any files. The README promises that you can edit, sign, redact, convert and automate PDFs “without sending documents to external services”.
Anyone who edits, merges, compresses, signs or redacts PDFs and would rather do it on their own machine. IT teams that host one tool for a whole company fit it, and so do developers who call PDF tools from scripts or agents. Read its license before a company runs it in production.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Office and admin | Anyone with a pile of PDFs | Merge, split, compress, rotate and number pages in the desktop app | Someone opens Compress, leaves the Quality slider at its default of 5 and saves the smaller file. |
| Legal and finance | Teams with sensitive files | Redact words or patterns, then turn the pages into images so no text is left behind the boxes | A paralegal adds a name under Words to Redact, switches on Convert PDF to PDF-Image and clicks Redact. |
| Records and scanning | People with scanned paper | Run OCR so the pages can be searched and copied | Someone opens OCR / Cleanup scans, chooses the languages in the document and clicks Process OCR and Review. |
| IT and platform teams | Admins who host tools for others | Run a server in Docker or Kubernetes with login and users | An admin starts the Docker image, signs in as admin with the password stirling and sets a new one when asked. |
| Software teams | Developers who wire PDFs into software | Call the REST endpoints or a pipeline from scripts | A script posts a file to /api/v1/misc/compress-pdf with an X-API-KEY header and saves compressed.pdf. |
| AI agent users | People who use Claude Code or Codex | Connect the MCP server so the agent runs the tools | Someone adds the stirling-pdf entry to .mcp.json and asks the agent to compress a file. |
Stirling PDF runs as a desktop app on Windows, macOS and Linux, as a server in Docker, Java or Kubernetes, and as Stirling Cloud in a browser. These are the ways to connect other tools.
| Where | Install | What the docs ask for |
|---|---|---|
| Windows desktop | winget, Scoop or the MSI installer | Windows 10 or 11 |
| macOS desktop | The DMG, or Homebrew | macOS 10.15 or later, Apple silicon or Intel |
| Linux desktop | A .deb or .rpm package, an AppImage, or the AUR | A 64-bit x86 system |
| Docker server | The docker run line or a compose file | Docker. The docs suggest 4 GB of memory for the latest image |
| Java server | One of three JAR files from the GitHub releases | Java 25, plus the programs behind the tools you want |
| Kubernetes | The official Helm chart | A memory limit. The docs recommend 8 GB or more for production |
Get it saves a zip of Mindket’s setup notes in your downloads folder, with a page for each way to run it from the maker’s README and docs. The shortest routes are the desktop installer and one Docker line.
| Need | Detail |
|---|---|
| A computer | Windows 10 or 11, macOS 10.15 or later, or 64-bit x86 Linux for the desktop app. Docker or Java 25 for a server |
| Memory | For Docker, the docs suggest 4 GB for latest, 6 GB for latest-fat and 2 GB for latest-ultra-lite |
| An account | None for the desktop app in Local Only mode, or for a server you run. Stirling Cloud works as a guest for every manual tool. AI tools, automation, API keys and MCP need a Stirling account |
| Extra programs | The Docker latest image includes LibreOffice, Tesseract, OCRmyPDF, WeasyPrint, Calibre, Ghostscript, QPDF and ImageMagick, but no rar, so no PDF to CBR. With the JAR you install the ones you want |
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf
winget install StirlingTools.StirlingPDF
The first line is the README’s quick start. It mounts no volume, so use the longer Docker command in the notes for anything you keep. The second line installs the desktop app on Windows.
Open the tool picker, choose a tool, add your PDFs and run it. The Tools page puts the most used at the top: PDF Text Editor, Page Editor, Merge, Compare, Compress, Convert, OCR and Redact. In the desktop app, Ctrl+S saves over the file you opened and Save As makes a copy. On a server, every server-side tool also has an endpoint. A few tools, such as the viewer and drawing a signature, run only in the browser and have none. The REST API page compresses a file like this:
curl -X POST "$STIRLING_URL/api/v1/misc/compress-pdf" \ -H "X-API-KEY: $STIRLING_API_KEY" \ -F "fileInput=@document.pdf" \ -F "optimizeLevel=5" \ -o compressed.pdf
Set STIRLING_URL to your server’s address and STIRLING_API_KEY to a key from Settings, then Preferences, then API Keys.
You have a PDF that needs repairing and shrinking, and you want one script to do both. The Pipeline API page sends the two steps in one request.
curl -X POST "$STIRLING_URL/api/v1/pipeline/handleData" \
-H "X-API-KEY: $STIRLING_API_KEY" \
-F "fileInput=@input.pdf" \
-F 'json={
"name": "Repair then compress",
"pipeline": [
{"operation": "/api/v1/misc/repair", "parameters": {}},
{"operation": "/api/v1/misc/compress-pdf", "parameters": {"optimizeLevel": 2}}
]
}' \
-o result.pdfOne output file comes back as the file itself, here result.pdf. Several files would come back as output.zip.
If you are new. Start with the desktop app. On the first screen choose Continue without signing in, which gives Local Only mode, then open a PDF and try Merge or Compress. A tool with a cloud badge needs Stirling Cloud or a server, and running one asks you to sign in or connect.
For experts. Every key in settings.yml also works as an environment variable, such as SECURITY_ENABLELOGIN or SYSTEM_DEFAULTLOCALE. Pipeline steps name the full endpoint path, and ?async=true on a tool call returns a job ID to poll. A server lists every endpoint at /swagger-ui/index.html, with the OpenAPI spec at /v1/api-docs.
Cluster mode runs several pods behind one service. The Kubernetes page says it needs a Team or Enterprise license plus your own PostgreSQL, Valkey and S3. The MCP server takes OAuth 2.1 or per-user API keys, and an admin can list the tools it allows or blocks.
Most of it runs on your own machine or server, and a few paths reach out.
This kit holds setup notes only. Mindket wrote them. Stirling PDF itself, its installers, its images and its packages come from its maker's repository: https://github.com/Stirling-Tools/Stirling-PDF
These notes are not made or endorsed by its maker. The documentation home page says: "Stirling is a private, open-source PDF editor and processor for you and your agents. Read, edit and automate PDFs in your browser, on your own computer or on your own servers." The maker's site is https://stirling.com and its documentation is at https://docs.stirlingpdf.com
License: open-core, split by folder. Read this before you run it for a company.
The README gives this line for a server. Then open http://localhost:8080.
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf
The Docker page's longer command mounts volumes so your settings and files stay. See setup/docker.md. For Windows, the Desktop install page gives:
winget install StirlingTools.StirlingPDF
The docs say Stirling PDF can send anonymous usage data, and never the contents of a document. On a server, an admin chooses whether analytics are on. The data goes to PostHog's EU servers, and the browser can also load a Scarf pixel. See setup/login-production-and-privacy.md for the switch. In the desktop app's Stirling Cloud mode and in Stirling Cloud itself, some tools send a file to Stirling's servers. In Local Only mode nothing is uploaded. See setup/desktop-app.md and setup/stirling-cloud.md.
README.md 6 KB setup/desktop-app.md 7 KB setup/docker.md 8 KB setup/folder-scanning-and-telegram.md 6 KB setup/java-jar.md 7 KB setup/kubernetes.md 6 KB setup/login-production-and-privacy.md 7 KB setup/mcp-for-agents.md 6 KB setup/rest-api-and-pipelines.md 6 KB setup/stirling-cloud.md 3 KB
Updated by Mindket to the current version of this kit.
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
zarazhangrui · Skill
Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…
iptv-org · Kit
Collects publicly available live TV channels from many countries into playlists that any video player with live streaming can open. Made for viewers and for de…