HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jbarrow
commonforms
Python2025–2026
jbarrow / commonforms

commonforms

CommonForms — open models to auto-detect PDF form fields

4Distinct people
9Mentions
0Explicit recommenders
1.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

CommonForms — open models to auto-detect PDF form fields

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:45:45 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week9 dated mentions

Observed mentions: 2025-10-02 14:31:49 UTC to 2026-05-02 08:54:27 UTC. Weeks start Monday, UTC.

0122025-09-29 00:00:00 UTC to 2025-10-06 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsSep 292025-10-06 00:00:00 UTC to 2025-10-13 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments2025-10-13 00:00:00 UTC to 2025-10-20 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-10-20 00:00:00 UTC to 2025-10-27 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-10-27 00:00:00 UTC to 2025-11-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-03 00:00:00 UTC to 2025-11-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-10 00:00:00 UTC to 2025-11-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-17 00:00:00 UTC to 2025-11-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-24 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-01 00:00:00 UTC to 2025-12-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-08 00:00:00 UTC to 2025-12-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-15 00:00:00 UTC to 2025-12-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-22 00:00:00 UTC to 2025-12-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-29 00:00:00 UTC to 2026-01-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-05 00:00:00 UTC to 2026-01-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-12 00:00:00 UTC to 2026-01-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJan 122026-01-19 00:00:00 UTC to 2026-01-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-26 00:00:00 UTC to 2026-02-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-02 00:00:00 UTC to 2026-02-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-09 00:00:00 UTC to 2026-02-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-16 00:00:00 UTC to 2026-02-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-23 00:00:00 UTC to 2026-03-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-02 00:00:00 UTC to 2026-03-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-09 00:00:00 UTC to 2026-03-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-16 00:00:00 UTC to 2026-03-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-23 00:00:00 UTC to 2026-03-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-30 00:00:00 UTC to 2026-04-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-06 00:00:00 UTC to 2026-04-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-13 00:00:00 UTC to 2026-04-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-20 00:00:00 UTC to 2026-04-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-27 00:00:00 UTC to 2026-05-04 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 commentsApr 27

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Sep 292025-09-29 00:00:00 UTC2025-10-06 00:00:00 UTC211
Oct 62025-10-06 00:00:00 UTC2025-10-13 00:00:00 UTC220
Oct 132025-10-13 00:00:00 UTC2025-10-20 00:00:00 UTC211
Oct 202025-10-20 00:00:00 UTC2025-10-27 00:00:00 UTC101
Oct 272025-10-27 00:00:00 UTC2025-11-03 00:00:00 UTC000
Nov 32025-11-03 00:00:00 UTC2025-11-10 00:00:00 UTC000
Nov 102025-11-10 00:00:00 UTC2025-11-17 00:00:00 UTC000
Nov 172025-11-17 00:00:00 UTC2025-11-24 00:00:00 UTC000
Nov 242025-11-24 00:00:00 UTC2025-12-01 00:00:00 UTC000
Dec 12025-12-01 00:00:00 UTC2025-12-08 00:00:00 UTC000
Dec 82025-12-08 00:00:00 UTC2025-12-15 00:00:00 UTC000
Dec 152025-12-15 00:00:00 UTC2025-12-22 00:00:00 UTC000
Dec 222025-12-22 00:00:00 UTC2025-12-29 00:00:00 UTC000
Dec 292025-12-29 00:00:00 UTC2026-01-05 00:00:00 UTC000
Jan 52026-01-05 00:00:00 UTC2026-01-12 00:00:00 UTC000
Jan 122026-01-12 00:00:00 UTC2026-01-19 00:00:00 UTC000
Jan 192026-01-19 00:00:00 UTC2026-01-26 00:00:00 UTC000
Jan 262026-01-26 00:00:00 UTC2026-02-02 00:00:00 UTC000
Feb 22026-02-02 00:00:00 UTC2026-02-09 00:00:00 UTC000
Feb 92026-02-09 00:00:00 UTC2026-02-16 00:00:00 UTC000
Feb 162026-02-16 00:00:00 UTC2026-02-23 00:00:00 UTC000
Feb 232026-02-23 00:00:00 UTC2026-03-02 00:00:00 UTC000
Mar 22026-03-02 00:00:00 UTC2026-03-09 00:00:00 UTC000
Mar 92026-03-09 00:00:00 UTC2026-03-16 00:00:00 UTC000
Mar 162026-03-16 00:00:00 UTC2026-03-23 00:00:00 UTC000
Mar 232026-03-23 00:00:00 UTC2026-03-30 00:00:00 UTC000
Mar 302026-03-30 00:00:00 UTC2026-04-06 00:00:00 UTC000
Apr 62026-04-06 00:00:00 UTC2026-04-13 00:00:00 UTC000
Apr 132026-04-13 00:00:00 UTC2026-04-20 00:00:00 UTC000
Apr 202026-04-20 00:00:00 UTC2026-04-27 00:00:00 UTC000
Apr 272026-04-27 00:00:00 UTC2026-05-04 00:00:00 UTC220

What Hacker News says

9 sources
nip·May 2, 2026Submission

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

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, a
Read the rest
dding 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...
60 points · Open discussion
nip·Apr 29, 2026Submission

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

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, a
Read the rest
dding 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...
7 points · Open discussion
nip·Oct 19, 2025Submission

Show HN: Browser-based PDF form fields detection (YOLO-based)

Hey HN! Last week, Joe Barrow released CommonForms [1], a set of open models for automatically detecting form fields in PDFs. He trained two models, FFDNet-S and FFDNet-L, on a dataset of 55k documents. You can read more about his approach in the arXiv paper [2]. As someone who's been searching for reliable models to auto-detect form fields (one of the last hard problems in PDF form filling), I was seriously impressed by the quality of these models. I wanted to give them the attention and distribution they deserve, so I created a fully browser-based implementation that handles both detection and field addition. My implementation relies on his models and onnx runtime web + some post-processing. I plan on publishing a small browser library to encapsulate it in the coming days to make it easier to deploy anywhere (currently you'd have to for
Read the rest
k / copy my code) Happy to answer any questions about the browser-based implementation! Questions about the models themselves should be directed to Joe, who I believe is also on HN [3] [1] https://github.com/jbarrow/commonforms [2] https://arxiv.org/abs/2509.16506 [3] https://news.ycombinator.com/user?id=jbarrow
26 points · Open discussion
Training ML models for PDF forms. You can try out what I’ve got so far with this service that automatically detects where fields should go and makes PDFs fillable: https://detect.semanticdocs.org/ Code and models are at: https://github.com/jbarrow/commonforms That’s built on a dataset and paper I wrote called CommonForms, where I scraped CommonCrawl for hundreds of thousands of fillable form pages and used that as a training set: https://arxiv.org/abs/2509.16506 Next step is training and releasing some DETRs, which I think will drive quality even higher. But the ultimate end goal is working on automatic form accessibility.
In Ask HN: What are you working on? (October 2025)
Existing “auto-fillable” tools are pretty lackluster in my experience. CommonForms is tooling that can automatically detect form fields in PDFs and turn those PDFs into fillable documents. The dataset is ~500k form pages pulled from Common Crawl, which I trained the object detectors on. For being vision only, the results are pretty remarkable! Releasing the dataset, paper, models, and (imo most importantly) simple/convenient tooling to automatically prepare any PDF. Links: Repo: https://github.com/jbarrow/commonforms - Paper: https://arxiv.org/abs/2509.16506
In Show HN: CommonForms – open models to auto-detect PDF form fields

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.