Skip to content

JevPDF

Browser PDF search by meaning: Jev answers a yes/no per line on whether it answers your query, and matching lines light up.

ProxyprototypeMIT

Overview

JevPDF is 'Ctrl+F for when you don't know the exact words'. pdf.js extracts each page's text into lines locally in the browser, cached in IndexedDB by file hash. In meaning mode, each line becomes one Noul question, does this line answer the query, sent with the page text as shared state. Lines at or above 0.55 are highlighted and ranked by probability; if nothing clears the threshold, the closest lines are shown. An exact-text mode runs entirely locally.

The app sends 16 lines per request and keeps 16 requests in flight, so highlights stream in page by page; the README says checking every line of a 15-page paper costs well under a cent. Only extracted text goes to TypeSafe. A small Bun server serves the app and an /api/jev proxy that accepts only same-origin requests, pins the model, caps request size and rate-limits by IP, since the hosted demo spends real credits. It is an unofficial React, pdf.js and Jev demo.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this line answer the query?—

How it works

  1. pdf.js extracts lines locally and caches them
  2. For a meaning query, batch 16 lines per request with the page text as state
  3. Jev returns a probability per line
  4. Highlight lines at or above 0.55, ranked by probability; else show the closest

Strengths

  • No embeddings, vector index or chunking needed
  • Only extracted text leaves the browser
  • Low reported cost per document
  • Proxy guards against credit abuse

Caveats

  • Line-level yes/no can miss answers spread across lines
  • Requires a TypeSafe key for meaning search
  • Unofficial demo

Getting started

bun install, cp .env.example .env.local (add TYPESAFE_API_KEY), bun run dev and open http://localhost:5173.

At a glance

Type
Proxy
Status
prototype
Language
TypeScript
Runtime
browser (React) with Bun proxy
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Document search: in-browser PDF viewer that extracts each page's lines locally with pdf.js and asks Jev one `Noul` per line on whether it answers the query (16 lines per request, sharing the page text as state), highlighting lines at or above 0.55 page by page and ranking them by probability.

    yibie/awesome-jev
  • Unofficial Ctrl+F by meaning for PDFs: pdf.js extracts lines in the browser, Jev answers one Noul per line on whether it answers the query, and matching lines light up ranked by probability

    AnotiaWang/awesome-decision-models
  • \`server/index.ts\` is a small Bun server that serves \`dist/\` and the \`/api/jev\` proxy, which uses the same forwarding code as dev (\`server/jev-upstream.ts\`). Because the live proxy spends real credits, it only accepts same-origin POSTs from the app, pins the model, caps request size, and rate-limits each IP.

    logicrw/awesome-jev-projects
  • Browser PDF search where pdf.js extracts lines locally and Jev answers one Noul per line on whether it answers the query; code highlights lines above a 0.55 threshold ranked by probability, and only extracted text is sent to TypeSafe.

    cobanov/awesome-jev
  • Ask a PDF in your own words and watch the matching lines light up. React + pdf.js + TypeSafe Jev.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

For each line, the probability that it answers your query; lines at or above 0.55 are highlighted.

Is my PDF uploaded?

No, only the extracted text of the lines being checked is sent to TypeSafe.

Why not embeddings?

The README argues per-line yes/no questions need no index or chunking and are cheap enough to ask for every line.

Related projects

  • JSON-in/JSON-out CLI that reranks, filters or compresses search results with independent Jev Noul checks, keeping metadata intact.

    CLIbetaRust
  • Long-document search that walks a PageIndex tree, asking Jev Choice which page or branch answers the question, with no embeddings.

    ProjectprototypePython
  • PostgreSQL toolkit with 41 Jev-powered semantic operators and natural-language-to-SQL, leaving joins and arithmetic to SQL.

    ProjectbetaPython
  • TypeSafe cookbook showing how to evaluate many typed questions over one shared state in a single Jev request.

    Articleproduction
  • Jev Search★ 534

    Plain-language web search where a decision model like Jev picks query, sources and time range, then ranks Search1API results.

    AppproductionTypeScript
  • MCP server over Apple developer docs and WWDC transcripts that uses hybrid search, then Jev relevance scores to rank results.

    MCP serverproductionTypeScript