POhMyPDF

PDF Chat

Ask questions about your PDF. The file and your API key stay in your browser — we do not proxy or log anything.

Why I built this

I had a 60-page Korean tax filing manual (종합소득세 신고 가이드) to read in May 2026, and the existing "chat with pdf" services all wanted me to upload the document plus pay $20-25/month for anything beyond a 5-question demo. The PDF was technically public — published by 국세청 — but the principle bothered me. A service should not need my file and my credit card just to run someone else's open-source AI on it. Worse, the popular sites all required signup before showing pricing, so you found out about the $25/mo fee after handing over your email and uploading your document.

I also tested with a less-public document — a 30-page consulting contract — and watched in DevTools as one site uploaded the full PDF to their servers, then made a chat request to OpenAI through their own backend. They were charging me to be the middleman on an OpenAI call I could make myself. Worse, the contract's contents now sat in their database with no clear retention policy.

So OhMyPDF Chat takes two paths. If you have Chrome 127+ on a recent machine, Chrome ships an on-device AI model (Gemini Nano) — it runs locally, costs nothing, and your PDF never leaves the browser. If you don't have that, you supply your own OpenAI key and we just relay the request from your browser to api.openai.com directly. Either way, no OhMyPDF servers are in the path. We have no idea what your PDF says and no ability to find out.

How it works under the hood

When you drop a PDF, pdfjs-dist parses it locally — the same JavaScript engine Firefox ships for its native PDF viewer. We extract the text content from every page, strip redundant whitespace, and hold the result in JavaScript memory. The PDF binary itself is never sent anywhere; only the extracted plain text plus your question goes to the chosen backend.

In Chrome built-in AI mode, we call the experimental window.ai API. Chrome routes the request to a locally-loaded copy of Gemini Nano running on your device's GPU or CPU. There is no network call. You can verify by enabling airplane mode and asking a question — Gemini Nano still responds. The trade-off is a smaller context window (~8K characters) and less capability than cloud models.

In OpenAI BYOK mode, your browser makes a fetch() call directly to https://api.openai.com/v1/chat/completions with your API key in the Authorization header. The request body contains your question plus the relevant PDF chunks. OhMyPDF's servers are not involved in the call at all — we are static HTML and JavaScript. Streaming responses are received as Server-Sent Events and rendered token-by-token as they arrive.

Verify yourself: open DevTools → Network tab, filter by "Fetch/XHR", then ask a question. In Chrome mode: the list stays empty. In OpenAI mode: you see exactly one request, going to api.openai.com (not to ohmypdf.app). The PDF and your question are visible in the request payload — that is your data going directly to OpenAI without our involvement.

Real use cases

  • Korean government manual exploration (홈택스 가이드, 정부24 안내서): These PDFs are dense and full of legal-bureaucratic language. Ask "how do I claim the dependent deduction for my mother-in-law?" and get a focused answer with the relevant section cited.
  • Reading research papers without paying for ChatPDF: Drop a PDF from arXiv, ask "what is the main contribution?" and "what is the experimental setup?" — the same questions every researcher asks. BYOK costs ~$0.001 per question, far less than ChatPDF's $20/mo.
  • Contract review prep (계약서 검토): Before sending a contract to a lawyer, ask the AI to flag unusual clauses, payment terms, or termination triggers. Privacy matters here — use Chrome built-in mode for fully-local processing.
  • Studying for certification exams: Drop the textbook PDF, ask Socratic questions ("explain ACID transactions like I'm 15"), and quiz yourself with "give me five practice questions about chapter 4."
  • Quick summarization of long docs (회의록, 보고서): A 40-page meeting minutes PDF becomes a 5-bullet summary in 8 seconds. Especially useful for catching up on threads you missed.

vs other PDF chat tools

How OhMyPDF Chat compares to popular AI PDF chat services as of May 2026:

FeatureOhMyPDFChatPDFAskYourPDFAdobe AI Assistant
Free tierUnlimited (Chrome) / BYOK3 PDFs free, 50 questions/dayLimited free$5/mo add-on
No upload to serverYes (both modes)NoNoNo
No signup requiredYesRequiredRequiredAdobe ID
Choice of LLMChrome + OpenAIGPT-3.5/4 fixedGPT fixedAdobe's model
Cost per question (heavy use)$0 (Chrome) or $0.001 (BYOK)$5/mo unlimited$10/mo unlimited$5/mo with caps
Max PDF size100 MB32 MB~50 MB~100 MB
Source code inspectableYesNoNoNo

Where competitors win: ChatPDF and AskYourPDF have polished UX, citation features (clicking a claim jumps to the source page), and vector search across very long documents. Their monthly subscriptions are convenient if you chat with dozens of PDFs weekly and do not want to think about API keys. For occasional use, sensitive documents, or anyone allergic to monthly subscriptions, our BYOK + Chrome approach is materially better.

Cost breakdown (OpenAI BYOK)

gpt-4o-mini at current pricing (~$0.15 per 1M input tokens, ~$0.60 per 1M output tokens) costs roughly $0.001 per question on a typical 20-page PDF. That is about 1.4 Korean won per question, or 1,400 questions per US dollar. New OpenAI accounts get $5 in free credit, which is more than enough to evaluate this tool over months of casual use.

For heavier work (50+ questions per day on a long PDF), use gpt-4o-mini with focused questions rather than gpt-4o. The mini model is 25× cheaper and handles document Q&A comparably well. Chrome built-in AI is free with no usage limit but is a smaller model — answers may be less detailed than gpt-4o-mini.

What this can't do

  • Read scanned PDFs. No OCR is built in. Run our PDF OCR tool first to convert scans to text.
  • Use Claude, Gemini API, or local Ollama. Only OpenAI BYOK and Chrome built-in AI are currently supported. Claude is on the roadmap.
  • Cite exact page numbers. Answers may reference content but cannot jump-to-page like ChatPDF can. This is a UX feature we have not built.
  • Compare across multiple PDFs. Single-document chat only. Multi-doc search needs vector indexing which we have not added.
  • Read PDFs over 100 MB. Browser memory limit.

If you need multi-PDF search with citations and full-page navigation, ChatPDF or AskYourPDF are mature options — accept that your documents leave your machine in exchange for the polish.

Tips for best results

Ask focused questions, not "summarize." "What does section 4.2 say about deductibles?" works far better than "summarize this PDF." The model can lock onto a specific topic and quote it; broad summarization invites hallucination.

Use Chrome built-in for sensitive docs, BYOK for hard questions. Gemini Nano is good enough for "what is this paragraph saying" but loses to gpt-4o-mini on multi-step reasoning. Pick the backend that matches the question.

Verify numbers and quotes. LLMs hallucinate specifics. If the answer includes a number, a date, or a quoted phrase, check the source page. Treat the chat output as a fast index, not as ground truth.

Break very long PDFs into sections. For 200-page documents, split into 20-30 page chunks and chat per-chunk. This keeps each context window focused and improves answer quality dramatically.

FAQ

Is this really free? Yes if you use Chrome 127+ — Chrome ships a built-in AI model (Gemini Nano) that runs on your device with no network call and no cost. If you use OpenAI instead, you pay OpenAI directly: gpt-4o-mini costs about $0.001 per typical PDF question, so a $5 free-trial credit covers thousands of chats. We earn nothing per question — there is no billing pipeline. The OhMyPDF site itself is free because it monetizes through small display ads on the page, not by metering the AI.

Where does my OpenAI API key go? Into your browser localStorage, where it stays under the ohmypdf.app origin. We never see it because OhMyPDF has no backend that handles your key. Your browser calls api.openai.com directly with the key in an Authorization header — there is no OhMyPDF proxy in between. Verify with DevTools → Network → check the request goes to api.openai.com, not to ohmypdf.app or any other domain. If you stop trusting this site, clear localStorage to scrub the key.

Where does my PDF go? Into your browser memory. The text is extracted locally with pdfjs-dist (the same engine Firefox uses for its PDF viewer), then sent only to whichever AI backend you chose: Chrome (on-device, no network) or OpenAI (your key, your account, your data policy). The PDF binary itself never leaves your browser. Only the extracted text plus your question is what goes to OpenAI when you use BYOK mode — and even that goes directly browser → OpenAI, with no detour through us.

Why would my PDF text get sent to OpenAI? Because that is how OpenAI answers your question — the model needs to see the relevant PDF text to ground its answer in your document. OpenAI's current policy (May 2026) states they do not use API inputs for training, which is different from their ChatGPT consumer product. But if your PDF is sensitive — medical records, contracts, financial data — use Chrome built-in AI instead. That mode is fully on-device: the text never leaves your machine, full stop.

How big a PDF can I chat with? OpenAI gpt-4o-mini has a 128K-token context window, which handles ~200,000 characters of PDF text in one request — roughly a 400-page novel. Chrome built-in AI (Gemini Nano) has a much smaller window (~8,000 characters at most) so it works best on short documents under 20 pages. We trim large PDFs automatically using a simple chunk-and-summarize strategy and tell you in the response when content was trimmed. For surgical precision on huge PDFs, ask focused questions about specific sections rather than "summarize the whole thing."

Why do I see "Chrome built-in AI not available"? That feature requires Chrome 127+ on a desktop with enough RAM (typically 4 GB+ free) and a GPU that meets Google's requirements. Google has rolled it out gradually and it remains behind feature flags for some users. If your Chrome is up to date but it still says unavailable, try chrome://flags → enable "Prompt API for Gemini Nano" and "Enables optimization guide on device" → restart. Some Linux distributions and ARM Chromebooks are not yet supported. Or just use BYOK with OpenAI — same UI, different backend.

Can I use Claude, Gemini API, or local Ollama instead of OpenAI? Currently we only ship OpenAI as the BYOK option. Adding Claude (Anthropic) and Gemini API is on the roadmap — they all expose similar streaming chat completion APIs. For local Ollama, the browser cannot reach localhost:11434 from a remote site without CORS configuration on the Ollama side. If you really want Ollama, you can set OLLAMA_ORIGINS to permit ohmypdf.app, but that is a power-user setup and we do not document it officially.

Are scanned PDFs supported? No. Scanned PDFs are images of text, not text — we cannot extract anything to send to an AI without OCR. Run our PDF OCR tool first to convert scanned text to .txt, then paste the result into ChatGPT directly, or save the OCR output as a fresh text-based PDF and load that. A "scanned PDF support" mode is plausible but would require running Tesseract OCR before chat, which slows the first message to 30+ seconds — we may add it as an opt-in toggle.

How private is BYOK mode really? Maximally private given the trade-off you accept by using a cloud LLM. Your PDF and key are never touched by OhMyPDF servers — verify this by opening DevTools → Network and watching the request go to api.openai.com directly. What happens at OpenAI is governed by their data policy, which currently says API inputs are not used for training but are retained for 30 days for abuse monitoring. If that is unacceptable for your document, use Chrome built-in AI: zero network calls, zero third-party policy to worry about.

Why is the answer sometimes wrong or making things up? Large language models hallucinate, especially on technical documents and numerical data. When the model is unsure, it sometimes fabricates plausible-looking answers rather than admitting ignorance. Mitigations: ask "where in the document does it say X?" so the model has to cite, ask focused questions instead of broad summarization, and always verify numerical claims by checking the source page. gpt-4o-mini is roughly 30-40% more accurate than Gemini Nano on factual recall but both can be wrong.

You might also like

Part of the OhMy* tools family