frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Filling PDF forms with AI using client-side tool calling

https://copilot.simplepdf.com/?share=a7d00ad073c75a75d493228e6ff7b11eb3f2d945b6175913e87898ec96ca8076&form=w9&lang=en
14•nip•2h ago
Hey HN!

I built SimplePDF Copilot: an AI assistant that can interact with the PDF editor. It fills fields, answers questions, focuses on a specific field, adds fields, deletes pages, and so on.

It's built on top of SimplePDF that I started 7 years ago, pioneering privacy-respecting client-side pdf editing, now used monthly by 200k+ people.

As for the privacy model: the PDF itself never leaves the browser. Parsing, rendering, and field detection all run client-side.

The text the model needs (and your messages) goes to whatever LLM you point at. By default that's our demo proxy (DeepSeek V4 Flash, rate-capped), but you can BYOK and point it at any cloud provider, or go fully local (I've been testing with LM Studio).

Unlike the existing "Chat with PDF" tools that only retrieve the text/OCR layer, Copilot can act on the PDF: filling fields, adding fields (detected client-side using CommonForms by Joe Barrow [1], jbarrow on HN with some post-processing heuristics I added on top), focusing on fields, deleting pages, and so on.

I built this because SimplePDF is mostly used by healthcare customers where document privacy is paramount, and I wanted an AI experience that didn't require shipping PII to a third party. Stack is pretty standard:

- Tanstack Start

- AI SDK from Vercel

- Tailwind (I personally prefer CSS modules, I'm old-school but the goal since I open source it, I figured that Tailwind would be a better fit)

The more interesting part is the client-side tool calling: events are passed back and forth via iframe postMessage.

If you're not familiar with "tool calling" and "client-side tool calling", a quick primer:

Tool calling is what LLMs use to take actions. When Claude runs grep or ls, or hits an MCP server, those are tool calls.

Client-side tool calling means the intent to call a tool comes from the LLM, but the execution happens in the browser.

That matters for: speed, you can't go faster than client-to-client operations and also gives you the ability to limit the data you expose to the LLM. For the demo I do feed the content of the document to the LLM, but that connection could be severed as simply as removing the tool that exposes the content data.

The demo is fully open source, available on Github [2] and the demo is the same as the link of this post [3]

What's not open source is SimplePDF itself (loaded as the iframe).

I could talk on and on about this, let me know if you have any questions, anything goes!

[1] https://github.com/jbarrow/commonforms

[2] https://github.com/SimplePDF/simplepdf-embed/tree/main/copil...

[3] https://copilot.simplepdf.com/?share=a7d00ad073c75a75d493228...

Comments

nip•2h ago
Just to be clear, this is a technical demo showing what's possible with client-side tool calling + local models: LLM-assisted form filling where no document data has to leave the user's machine.

Use cases range from:

- Filling foreign-language forms

- Navigating a contract before signing: "can I trust ALL the clauses here?"

- Pre-filling repetitive forms from existing data sources (CRM, EHR, etc. via MCP/RAG)

Copilot is designed to be embedded; our customers ship it white-labeled inside their own products.

iamflimflam1•1h ago
Might be worth making it clearer that the chat messages are going to a remote server. So any PII data is leaving the local machine.
nip•1h ago
I tried to make it clear with the popup message that appears when you start chatting: "Public demo. Use sample data only. Messages are processed by the selected AI provider."

But you're right that it's not as evident as I wanted to, I'm making a small copy update to make it clearer: "Public demo. Your chat messages leave your device and are sent to the selected AI provider. Use sample data only."

(Since there's support for local models, the popup is only displayed when NOT using your own model)

Thanks!

EDIT: the copy update is live, thanks again!

How fast is a macOS VM, and how small could it be?

https://eclecticlight.co/2026/05/02/how-fast-is-a-macos-vm-and-how-small-could-it-be/
35•moosia•1h ago•7 comments

Why does it take so long to release black fan versions?

https://www.noctua.at/en/expertise/blog/how-can-it-take-so-long-to-release-black-fan-versions
282•buildbot•6h ago•126 comments

Why are there both TMP and TEMP environment variables? (2015)

https://devblogs.microsoft.com/oldnewthing/20150417-00/?p=44213
38•ankitg12•2h ago•14 comments

Show HN: Mljar Studio – local AI data analyst that saves analysis as notebooks

https://mljar.com/
15•pplonski86•59m ago•1 comments

Show HN: DAC – open-source dashboard as code tool for agents and humans

https://github.com/bruin-data/dac
24•karakanb•2d ago•1 comments

Show HN: Browser-based light pollution simulator using real photometric data

https://iesna.eu/?wasm=skyglow_demo
16•holg•2h ago•3 comments

Ti-84 Evo

https://education.ti.com/en/products/calculators/graphing-calculators/ti-84-evo
468•thatxliner•15h ago•395 comments

Show HN: Filling PDF forms with AI using client-side tool calling

https://copilot.simplepdf.com/?share=a7d00ad073c75a75d493228e6ff7b11eb3f2d945b6175913e87898ec96ca...
14•nip•2h ago•5 comments

Show HN: Piruetas – A self-hosted diary app I built for my girlfriend

https://piruet.app
8•patillacode•37m ago•1 comments

The USB Situation

https://randsinrepose.com/archives/the-usb-situation/
36•herbertl•2d ago•39 comments

Artemis II Photo Timeline

https://artemistimeline.com/#artemis-ii-walkout-nhq202604010003
219•geerlingguy•2d ago•18 comments

Bitmap and tilemap generation from a single example

https://github.com/mxgmn/WaveFunctionCollapse
23•futurecat•1d ago•5 comments

New research suggests people can communicate and practice skills while dreaming

https://www.newyorker.com/culture/annals-of-inquiry/its-possible-to-learn-in-our-sleep-should-we
354•XzetaU8•17h ago•203 comments

A Gopher Meets a Crab

https://miren.dev/blog/gopher-meets-crab
41•radimm•2d ago•24 comments

Dotcl: Common Lisp Implementation on .NET

https://github.com/dotcl/dotcl
23•reikonomusha•1d ago•1 comments

To Restore an Island Paradise, Add Fungi

https://e360.yale.edu/digest/atoll-islands-sea-level-rise-fungi
71•Brajeshwar•2d ago•13 comments

Ask.com has closed

https://www.ask.com/
292•supermdguy•7h ago•148 comments

SKILL.make: Makefile Styled Skill File

https://github.com/Teaonly/SKILL.make
27•teaonly•3h ago•12 comments

CollectWise (YC F24) Is Hiring

https://www.ycombinator.com/companies/collectwise/jobs/rEWfZ6R-senior-forward-deployed-engineer
1•OBrien_1107•6h ago

K3k: Kubernetes in Kubernetes

https://github.com/rancher/k3k
65•jzebedee•7h ago•34 comments

Show HN: Large Scale Article Extract of Newspapers 1730s-1960s

https://snewpapers.com/
8•brettnbutter•2h ago•4 comments

LFM2-24B-A2B: Scaling Up the LFM2 Architecture

https://www.liquid.ai/blog/lfm2-24b-a2b
44•nateb2022•2d ago•9 comments

I'm Peter Roberts, immigration attorney who does work for YC and startups. AMA

167•proberts•20h ago•220 comments

Lib0xc: A set of C standard library-adjacent APIs for safer systems programming

https://github.com/microsoft/lib0xc
152•wooster•16h ago•57 comments

Ask HN: Who is hiring? (May 2026)

266•whoishiring•20h ago•283 comments

Eka’s robotic claw feels like we're approaching a ChatGPT moment

https://www.wired.com/story/when-robots-have-their-chatgpt-moment-remember-these-pincers/
147•zdw•2d ago•207 comments

A report on burnout in open source software communities (2025) [pdf]

https://mirandaheath.website/static/oss_burnout_report_mh_25.pdf
82•susam•11h ago•29 comments

DeepSeek V4–almost on the frontier, a fraction of the price

https://simonwillison.net/2026/Apr/24/deepseek-v4/
138•indigodaddy•18h ago•66 comments

Apocalypse Early Warning System

https://ews.kylemcdonald.net/
196•carlsborg•18h ago•97 comments

Show HN: Stop playing my matchstick puzzles, start building your own in seconds

https://mathstick.github.io
15•trangram•6h ago•15 comments