AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
View and compare the compiled PDFs of LaTeX pull requests on GitHub.
Developer toolsTypeScript · DockerfileGitHub @nasrallrOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Live at texprs.com.
View the compiled PDF of a LaTeX pull request on GitHub, and compare it with the
base branch, without checking out the branch.
Swap github.com for texprs.com in any PR link:
Planned views: side by side (synced scrolling), overlay/flicker, and a
latexdiff PDF with changes marked up.
LaTeX can't compile on Vercel (no TeX Live, function size limits), so compiling
lives in the worker container.
Needs Node 22+ and Docker.
1. Build and start the worker (first build takes ~5 min):Read the full README ↗Live at texprs.com.
View the compiled PDF of a LaTeX pull request on GitHub, and compare it with the base branch, without checking out the branch.
Swap github.com for texprs.com in any PR link:
github.com/owner/repo/pull/12 → texprs.com/owner/repo/pull/12
Planned views: side by side (synced scrolling), overlay/flicker, and a latexdiff PDF with changes marked up.
| Path | What it is | Runs on |
|---|---|---|
apps/web | Next.js app: PR pages, GitHub login, PDF viewer | Vercel |
apps/worker | Compile service: TeX Live, latexmk, latexdiff | Docker (Fly.io or Cloud Run) |
packages/shared | Types shared by web and worker | — |
LaTeX can't compile on Vercel (no TeX Live, function size limits), so compiling lives in the worker container.
Needs Node 22+ and Docker.
Build and start the worker (first build takes ~5 min):
docker build -f apps/worker/Dockerfile -t texpr-worker .
docker run -p 8080:8080 -e WORKER_SECRET=devsecret texpr-worker
Copy apps/web/.env.example to apps/web/.env.local and fill it in
(GitHub OAuth app, a SESSION_SECRET, and WORKER_SECRET=devsecret).
Start the site:
npm install
npm run dev:web # http://localhost:3000
Open any LaTeX PR, e.g. http://localhost:3000/owner/repo/pull/12
Checks: npm run typecheck, npm run lint, npm run build, and
npm run selftest -w @texpr/worker (compiles the fixtures inside the image).
.tex files and picks the one the PR changes.Repos with an unusual layout can name their documents in .texpr.json:
{ "main": "paper/main.tex" } or { "main": ["a.tex", "b.tex"] }.
GET /pdf?t=<ticket> is what browsers use (see PdfTicket in packages/shared).
The other routes, except /health, need Authorization: Bearer $WORKER_SECRET. Pass the
user's GitHub token (for private repos) as X-GitHub-Token.
| Route | Body | Returns |
|---|---|---|
POST /build | { revision: { owner, repo, sha }, mainFile } | the compiled PDF |
POST /diff | { base, head, mainFile } | latexdiff PDF (changes in red/blue) |
Errors are JSON { error, message, log? } (see packages/shared). Results are
cached by commit SHA; access to the repo is re-checked on every request, cache
hits included.
Repos are untrusted input. Each compile:
.. are allowed, since templates like McMaster's capstone one use \input{../Common.text})latexmkrc (-norc, and the files are deleted), and symlinks are deleted after unpackingtest/fixtures/evil* check these in CI.
Checks: npm run typecheck, npm run lint, npm run build.