BlattBot

Your LaTeX. Your assistant.
You approve the changes.

Ask for edits, inspect the PDF, and review the diff.
Work locally or sync with Overleaf.

Runs on your machine with Codex, Claude Code, or your own model endpoint.

Walkthroughs recorded in the latest source build.
Get the Research preview · npx installs the stable release.

See the main workflowThen explore the details
One complete edit: ask the assistant, check the PDF, review the diff and approve.
Actual app · sample project · silent, edited walkthroughs
Read the walkthrough
  1. Open a project with the assistant beside the compiled PDF.
  2. Ask for a change in plain language.
  3. Watch the agent edit the LaTeX and compile the document.
  4. Read the exact diff and inspect the resulting PDF.
  5. Approve the change to save it to the local project history.

Recorded with a real agent turn in a local project. Waiting periods are shortened. On a connected project, approval can also push the changes to Overleaf.

\section{proof}

Agent edits land as diffs you approve

The agent works in a local git checkout and compiles after editing to check its own work. You can watch the diff grow during the turn. Keep what you want and discard the rest — as a text diff or as a rendered PDF diff that highlights the pages that visually changed. On a connected project, approved changes are pushed to Overleaf. If a co-author changed the same file in the meantime, edits to different lines are merged; only edits to the same lines wait for you.

Watch a complete edit
A real edit, compiled and ready for your review.

\section{editor}

A full editor on its own

Keep LaTeX and the compiled PDF side by side. Ctrl/Cmd+F searches the pane you are using, with match counts, case and whole-word options. Source search adds regular expressions and replacement; PDF search handles ligatures and line hyphenation with precise, persistent highlights.

Find the passage, refine the source, inspect the compiled result.

\section{overleaf}

Syncs with any Overleaf

Overleaf.com works, and so does a self-hosted server — even without a git bridge, through your existing browser session. Pushes update documents in place, one edit per changed passage, so comments, tracked changes, and history survive, and a Verify button runs Overleaf's own compiler on the pushed state. You can keep several accounts side by side. When a local project is ready to share, publish it to Overleaf.

a workspace of several projects, two imported and the rest one click away.

\section{citations}

Paper search, built in

Search OpenAlex, Semantic Scholar, DBLP, and Crossref from inside the app. Each paper comes with a one-line summary so you can judge relevance quickly. New entries are deduped and normalized on the way in, and a citation audit checks each one against Crossref and OpenAlex, badging it verified, unresolved, or mismatched. The References tab shows where every entry is cited and flags the ones that never get used. BibTeX import and export are there too.

the References tab after the turn. Three entries the agent found and added, each already cited.

\section{connections}

See the literature around your literature.

The citation graph builds automatically for existing projects. Explore connections between your papers, compare shared references and find works they cite that are still missing from your bibliography.

Your assistant can query the same graph: neighbors, shared references, citation paths and missing sources. Every connection keeps its provenance.

Explore the graph walkthrough
Arrows mean “cites.” A connection is a reading lead, not evidence for a claim.

\section{coauthors}

Work beside co-authors who stay in Overleaf.

You review in BlattBot. They keep their editor.

  1. 01

    Merge, don't block

    A co-author's edit in another part of the same file is merged line by line. Only edits to the same lines wait for you, per file, with both versions side by side.

  2. 02

    See what changed

    History lists every change that came in from Overleaf and every push, with its diff. Revert a push as a new change you review first.

  3. 03

    Answer their comments

    Read Overleaf's comment threads in BlattBot and ask the agent to address them. Optionally push as tracked changes, or label each push in Overleaf's history.

\section{trust}

You can read the whole system prompt

The server listens on loopback only and requires a token on every request. Secrets live in your data dir with 0600 permissions. Every turn shows what it cost, and a disclosure generator writes an AI-use statement from your actual usage logs. Source-available under PolyForm Noncommercial.

the agent settings, system prompt included.

Search the full-text library

Retrieve passages across indexed papers, with page locations and optional synonyms. Changed sources are excluded until refreshed.

Read the papers you cite

The agent opens attached PDFs, open-access copies or abstracts with page labels. The chat says when it had only an abstract or no source at all.

Leave indexing running

Library indexing pauses, resumes and retries on its own. Saved progress survives a restart.

Check more than citation keys

Audit bibliography structure and publication identities, and check claims about your code against an attached Git repository.

\begin{enumerate}

How it works

Overleaf (optional) ⇄ local project ⇄ Codex agent (edit → compile → verify)
                             ⇩
               you review the diff → approve → push
  1. npx blattbot

    Starts the stable release. For the Research features shown here, install the latest source build.

  2. Create or connect a project

    Start with a blank local project, or paste an Overleaf link. BlattBot imports the session from your browser.

  3. Read, write, then approve

    Attach your sources, explore Research, or ask for an edit. Review the diff before approving.

\end{enumerate}

Requires Node 22.13+, git, and Codex CLI (logged in). Claude Code and custom endpoints are also supported. A TeX engine is auto-installable.