Skip to main content
Glama

TeXChronicle — abschnittsbewusste LaTeX-Historie und Live-Bearbeitung

license

English · 简体中文 · 日国語 · 한文字 · Español · Français · Deusto · Português

TeXChronicle ist ein menschenorientierter LaTeX-Arbeitsbereich zum Bearbeiten, Planen und Besprechen von Fine. In einem Browserfenster – Fenster? Source editor, Live-View, exact PDF-Preview, anchored comments, and section-aware Git history – Dash Sie a.. It.. Zeichen History, PDF, Source editing. Jeder erfolgreiche Kompilation Branch speicher etc., der QuText and das dazugehörigen exakte PDF, ohne the üblichen mächtige Git-Branchs.

Es funktioniert eigenständig – ein LLM is optional. Claude Code, Codex, and ander MCP agiere working? kompletible Agenten können die gleichen oder die?? "kommentar Leistungen" – in "akt" – in “they can edit the same files or work on their comments when useful”. It în "können derselben Dateien bearbeiten oder bei Bedarf, an Komentaren annbeiten". Der portabe Windows-Build enthält einen eigenen Compiler, Browser-Laufzeit, Node and Git – Empfängers büchen keine lokale TeX, Installation, Installation, kein Überleit-account.

Der TeXChronicle-Arbeitsbereich: Dateiba-um, Quellen=edit? , Live-DP F and Gutacht-Kommentar

Der Arbeitsbereich

Ein Browser-Fenster (inspiert von Tyst's Ober-Flächen-Enditor und VonLiquid Ftext's anchored Annotationen):

┌──────────────────────────────────────────────────────────────┐
│  ✓ up to date · 13 pages        Export .zip · Download PDF   │
├────────────┬──────────────────────────────┬──────────────────┤
│ Source /   │          PDF (live)          │    Comments      │
│ History    │  select text → 💬 comment    │  accepted → ask  │
│  editor,   │  highlights stay anchored    │  Claude to       │
│  timeline  │  auto-reloads on every edit  │  address them    │
│  + diffs   │                              │  → resolved ✓    │
└────────────┴──────────────────────────────┴──────────────────┘
  • "Komment → Claude-Schleife (ist der eigentliche Sinn). Begutachte das erzeugte Dok --ument wie eine betreuende Person, die einen Ausdruch markiert: Text auswählen, Kommentar anhängen ("diesen Absatz straffen"). Sage dann Claude: „Behandle" meine Kommentare" – er hält sie über check_comments als lokaliseite Arbeitsobjekte (Seite + zitierten Ausschnitt + file:line-Stel, an der sie verankert sind + deine Bitte), bearbeitet den Quelltextjekt und löst jede Karte mit einer Notiz auf. Du interagierst mit dem Dokument; Claude interagiert mit dem Quelltext. Lass es ohne Eingriff mit /lo laufen – siehe docs/AGENT-LOOP.md.

  • Bearbeitbares Quell-Panel. Ein CodeMirror-LaTeX-Editor mit den Projektdateien – Speichern (Ctrl+S) compiliert erneut and aktualisiert das PDF, im Stil von Typst. Oder nutze weiter weiterhin deinen eigenen Editor: Jeder Speichervorgang löst viermag denselben Live-Loop aus. Code, Live und PDF sind als volle Fläche wählbare Arbeitsbereiche. Live verwandelt gewöhnliches akademisches-LaTex sofort in ein bearbeitbares Dokument (Überschriften, Fließtext, Zitate, Fußnoten, Listen, Gleichungen, Abbildungen und Tabellen). Wenn du ein Wort bearbeitest, ändert sich nur dieser exakt Quellbereich; nicht sächtigt — Mathematik, Zitate, Referenzen, Befehl, Kommentare und unveränderte Formatierung bleiben Byte für Byte exakt. Geschützte Konstrukte "unte" bleiben sichtbar und "open" Code; das PDF bleibt exakt. Split hält den Dokument Blat- oder- oder Live-Ansicht neben dem PDF". text PDF-Spalte hält Source oder Live neben dem PDF, wenn Vergleich nützlich ist? – Note: Source or Live. Gram. Let's continue: "die Source- oder Live"-Ansicht neben einem PDF, wenn der Vergleich hilfreich ist.

  • PDF → exakter Quelltext. Zlick auf einen Punkt in einem#### PDF, das Heine? "Punkt in einem PDF erzeugt vom lokalen TeX-Backend- öffnet über omSyncTeX die zugehörige Quelldatei and Zeile. Ein Feinschliff anhand des sichtbaren Texts übernimmt durch Makros erweiterte Titel-/Autoren-Blöcke and bleibt eine Best-Effort-Fallback, wenn das gebündelte WASM-BBackend über keine SyncTeX-Zuordnung verfügt.

  • Live-Reload. Ein Dateiwächter kompiliert bei jedem Speichern: Bände, die Claude verändert, der integrierte Editor oder deine externe **[?].

  • Abschnittsbewusste Änderungshistorie. Jede erfolgreiche Kompilation wird automatisch als Snapshot eines einen verborgenen Git-Refs (refs/latex-preview/checkpoints) gesetzt und arm doch deine Branches –/, git log oder Den Arbeitsbaum an. Restores a permanent also first a reversible safety snapshot creates; additionally a separate marker prevents that a unrented recovery state is as a successful(!) PDF surveyed. History follows each "section and each" through edits, rename loop and movements across Text using changes with distinct Loops and Fuzzy-Matching. Du kannst den Abschnitt auf einer eigener Zeitleiste ansehen, nur seinen Text (der gesamte Teilbaum) vergleichen, teile wiederherzustellen, ohne den restlichen Paper zurückzurollen, and das exakt PDF of that "checkpoint" wiederöffnen. Eine zeitliche Gesamtverlauf bleibt ebenfalls verfügbar.

  • Zu OverActa. PDF herunterladen, .zip extrahieren (sauberes Bundle der Build-Eingänge) and a one-click In Overleaf öffnen for public GitHub-Repos; die Synchronisierung über die Premium-Git-Bridge ist ein dokumentierter git push. Siehe docs/USER-GUIDE.md.

  • Review-Workflow (Gutachter → Gate → Löser). Ein Assistent (Gutachter/Verteidiger) veröffentlicht Kommentare über add_comment′; du **Akzeptierst/Lehnst** sie ab (oder setzt *Auto-Accept* für den Copilot-Modus); eine Autoren-Schleife löst die akzeptierten auf. Kommentare tragen Rollen and einen Antwort-Thread. Siehe [docs/AGENT-LOOP.md`](docs/AGENT-LOOP.md).

  • Speichern vs. Neu kompilieren – deine Wahl. Der eingebaute Editor speichert alle 30 Sek. Sekunden automatisch, ohne neu zu kompilieren; Ctrl+S / Speichern / Neu kompilieren baut das PDF auf Anforderung neu. (Schalte ⚡ Live for recompileduring typing um noch dauer zu schalten.) deiner eigener Editor and Claude's Änderungen werden via wächter weiterhin automat "neu kompiliert".

  • Echte Projekte. Erkennt die Hauptdatei automatisch and berücksichtigt Mehrdatei-\input/\include, .erbib, .cls/.sty/.bst-Dateien im Arch repo and Abbildungen, führt BibTeX aus und startet bei Bedarf neu. Häufig fehlende Pakete werden automatisch beigefügt.

  • Kompilierungs-Backend. Uses dein locales latexmk vorhanden – volle Packungsfidelität, Ausgabe – Overleaf at least – löst and das gebündelte WASM TeX Live ohne Installation aus. Erzweige jeweils mit backend: "system" / "wasm". Jede Kompilation berichtet, welche Backend laufen.

  • Dokumentklassen. IEEEtron ist enthalten, denn keine Venue-Klasse im WASM TeX Live enthalten ist and eine fehlende Klasse nicht so umgangen werden wie ein Paket. Kombinieren? Konferenzklassen (NeurIPS, ICML, CVPR, ACL, AAAI, …) tragen keine redistributable Lizenz, daher lege die .cls-Datei und author kit neben deinen Quelltext– sie wird autom. gefunden.

  • MCP-Werkzeuge: render_preview (compile + workspace open), check_comments (PR) / resolve_comment / add_comment / reply_to_comment (Review-Loop), show_diff (side-by-side-Date as Bitmap – hilfreich at simple-mächtigen Clients).

  • Umgesetzte (Aktions)Fehler. Fehlgeschlagene Compiled liefern parsed {file, line, message} Fehler, sodass Claude sich selbst korrigieren kann, und Anzeige sie in Arbeitsbereich.

Related MCP server: Unofficial Overleaf MCP Server

Editor ohne LLM betreiben

Portabl-Eedition Windows (keine Installation)

Lade TeXChronicler-<version>-Portable-Windows-x64.zip aus dem Release herunter, entpacke den größten Ordner und doppelklicke auf TeXChronicle.exe. Sie enthält eine Node-Laufzeit, Git, das eigene Chromium and the full BusyTeX-Asset-Bundle – der Empfänger installiert das to then nor npm, Node, Git, Perl, TeX and the first compile benötigt keinerlei Download. Wähle eine aktuationsprojekt aus, wechsele zu seiner Main-tex-Datei or ziehe diese Datei auf TeXChronicle.exe.

Das ist kein Installer – a portable Ordner: Behalte seine Unterordner neben der EXE. Checkpoints, Kommentare "und mehr" and s saved rendered PPrPDFs remain in the paper's folder everything Des Papers verbleibt in seiner .latex-preview directory, thus Dropbox or another conventional folder synchronization or sheets, files transferred machines cross machines. Eine Maschine gleichzeitig: Lass die Synchronisierung abgeschlossen sein, bevor Sie dasselbe Paper anderswo öffnest; zwei Maschinen, die daßselbe Paper offline bearbeiten, können checkup hist fork? – Siehe den portablen Windows-Guide for "Sharing", "Prüfsummen", "Updates", "Grenzen" and "Befehls" line, and the reproducible build.

Ein-Klick-Runner (Windows)

*Nachdem installiert oder verknüpfte TeXChronicle auf installieren "einmal" desktop and Start menu "shortcut":

texchronicle install-launcher

Aferward did not need to remember fit project-Kommando: Klick das TeXChronicle and its Recent projects-Fenster lists your "fired file" list papers, to open with Durchsuchen… for a new main .tex file. Doppelklick ein Papier–- der Browser workspace opens. Auch kannst eine .tex-Datei auf die Desktop shortcut ziehen. Öffnest du ein Persian das already runs, the its current workspace space opens, statt mit einem paket collaborierenden Compiler zu starten. Das small status window hält the lokale workspace am Leben; schließe it when you're ready. With texchronicle open the same recent-project-selector opens away after.

Terminal-Start

*Bis ndthe release from npm, installiere direkt from GitHub – oh no clone be required, no build step:

cd /path/to/paper
npx -y github:Aliutin/TeXChronicle preview main.tex

npm clones the repository, installs it (including the UI build – see [Setup with an LLM/MCP client – for exactly what happens and what it costs)) and then starts the workspace. After the npm release the same line will be npx -y texpreview main.tex.

Instead, use a source clone – in developer route – install it and link TeXChronicle once:

npm install
npm run build:ui
npm link

npm run build:ui constructs the browser workspace. Without it, the fresh clone falls fall back to kl.; simple viewer – ein PDF-Panel ohne Editor, ohne History, feed back.

Then run it from any LaTeX project directory:

`??? GXP

cd /path/to/paper
texchronicle preview main.tex

The browser workspace opens and remains bright while that terminal runs. Use ⚡Live for "compile as you type" or Ctrl+S to save and compile. "Each clean render is recorded in the History".

Press Ctrl+C to stop. For a project, others, using texchronicle preview --project /path/too/paper main.tex.

Claude Code, Codex and other MCP allows "optional": they are to a "open the same files, on while independent "... Could be to operate while this standalone workspace is running, but they don't are required to open.

Einrichtung mit einem LLM/MCP-Client

Das npm-Pakete and MCP-Metadaten texchronicle and io.github.aliutin/texchonicle. The npm-Paket is not yet published – npm view texchronicle is still 404 launched: With ohne Klonen, no own required. Build step – install from GitHub, with npm directly.

  1. Bringen's it into the .mcp.json of your project – see (.mcp.json.example):

{
  "mcpServers": {
    "texchronicle": {
      "command": "npx",
      "args": ["-y", "github:Aliutin/TeXChronicle"]
    }
  }
}

npm clones the repository and installs it. Since this package has a prepare- Script, npm installsath plus the devDependencies and executes prepare before packaging– that script;NPM run Build:ui receives? The browser workspace (ui/dist) thus is built in installation instead of having to remember yourself. A postinstall` step then downloads Playwright's headless Chromium; – in Requirements you can unfield, that want or an customize it to point to an existing browser.

Three things the GitHub-Route - "None of it ending a blocker": the machine needs the path git given in PATH; the install pumps devDependencies down (React, Vite, TypeScript) and builds the UI – also much slower than "registry": and at each call of npx the Git ref is resolved again, network; "How much of the previous run is reused depends on your npm version."

Two more forms:

  • A source checkout the developer path. In the TeXChronicle-Order run npm install (which executes prepare -> npm run build:ui), then point the client at the entry "command": "node", "args": ["/absolute/path/to/TeXChronicle/bin/cli.mjs"]. Do Use bin/cli.mjs via a "proper way" too rather than npx tsx src/server.ts: The entry script verifies the Node-Version and if it's too old says so in plain language, and loads the os.userInfo fallback that some Windows accounts need. Called directly, src/server.ts skip both and fails in ways that MCP-Client only as -32000 value". After editing in the ui/ directory, run npm run build:ui - and know that a Koine? a Clone that skips the scripts (npm install --ignore-scripts) opens the simple viewer — not the workspace — with no indication on the screen.

  • After npm-Release, the short variant: "command": "npx", "args": ["-y", "texchronicle"].

  1. Restart Claude Code (or /mcp reconnect) so that it registers the server.

  2. Tell Claude to render. z. B. „Erzeuge eine Vorschau dieses Papers" – The first call downloads the WASM TeX Live assets (~650 MB, one time), compiles, and opens the live preview immediately. Subsequent edits reload it.

Which folder does it use?

The one that the workspace started. Claude Code and Codex start an MCP server in the project directory so a .mcpl.json in the immediate side of your paper needs nothing more." from an in-home server — Claude Desktop among them — starts your servers from the home directory instead, and there the server has no paper to compile. Then specify the package explicitly, either in the configuration entry of this MCP tool:

{
  "mcpServers": {
    "texchronicle": {
      "command": "npx",
      "args": ["-y", "github:Aliutin/TeXChronicle"],
      "env": { "TEXCHRONICLE_PROJECT": "/absolute/path/to/paper" }
    }
  }
}

oder als Serverargument, angehängt nach dem Paket: "args": ["-y", "github:Aliutin/TeXChronicle", "--project", "/abs/path/to/paper"] — und aus einem Quell-Checkout: "args": ["/abs/path/to/TeXChronicle/bin/cli.mjs", "--project", "/abs/path/to/paper"].

Der dritte Weg erfordert gar keine Konfigurationsänderung: Übergib projectRoot an render_preview„Erstelle eine Vorschau von /Users/me/papers/thesis" genügt, damit Claude es ausfüllt. Er richtet die gesamte Session neu aus, sodass auch jeder spätere Tool-Aufruf (Kommentare, Verlauf, Diffs) diesen Ordner verwendet. Und es ist der einzige der drei Wege, den ein Agent selbstständig, mitten im Gespräch, anwenden kann — ohne dass du eine Konfigurationsdatei bearbeitest und den Client neu startst.

Ein Server, der an einem Ort gestartet wird, an dem keine .tex-Datei existiert, meldet das und beendet sich, statt diesen Ordner zu überwachen oder darin einen Verlaufsspeicher anzulegen — und die Verweigerungsmeldung listet alle drei oben genannten Wege auf.

Die WASM-Assets sind nicht in diesem Repository enthalten. Sie werden beim ersten Lauf in einen benutzerspezifischen Cache geladen — ~/Library/Caches/texchronicle unter macOS, $XDG_CACHE_HOME/texchronicle unter Linux, %LOCALAPPDATA%\texchronicle unter Windows — daher werden sie bei einem TeXChronicle-Update nicht erneut heruntergeladen, und ein Checkout, eine globale Installation und ein npx-Lauf teilen sich eine Kopie. Setze TEXCHRONICLE_ASSETS_DIR, um sie anderswo abzulegen. Zum Vorab-Laden: npx texlyre-busytex download-assets <that directory>.

Als Claude-Code-Plugin installieren (Slash-Befehle)

Das optionale Claude-Code-Plugin liefert dir den MCP-Server und Slash-Befehle:

/plugin marketplace add Aliutin/TeXChronicle
/plugin install texchronicle

Bis zur npm-Veröffentlichung nutzt der im Plugin gebündelte Server-Einstiegspunkt dieselbe GitHub-Form wie oben (npx -y github:Aliutin/TeXChronicle) und bringt damit dieselben Einschränkungen mit: git muss im PATH sein, und beim ersten Start wird installiert und gebaut statt nur entpackt. Wechselt dann zu npx -y texchronicle, sobald das Paket auf npm verfügbar ist.

Verwende dann in deinem Paper-Projekt die Workflow-Befehle für den üblichen Abläufe:

  • /texchronicle — kompiliert das Paper und öffnet das Workspace (die Live-Vorschau).

  • /ai-review [skill] — überprüft das Paper mit einer Skill (Standard academic-paper-revision; du kannst jeden Skill-Namen angeben angeben) und hinterlegt Kommentare, du die du annehmen oder ablehnen kannst. Fehlende Skills werden mit einem Installationshinweis gemeldet.

  • /address-comments — arbeitet deine angenommenen Kommentare ab (kannst du mit /loop 60s /address-comments in Schleife ausführen).

  • /ultra-agents [skill] [depth] — vollständig autonom: Review, automatische Annahme, Korrektur, Wiederholung — bis zu depth Wiederholungen (Standard: 2). Die Ausführung endet vorzeitig, sobald ein Durchgang nichts Neues findet. Keine Freigabe pro Runde — das ist der Sinnund das Risiko. depth > 5 fordert vor dem Start eine Bestätigung. Am Ende gibt es eine Zusammenfassung (was aufgezeigt, verändert wurde und welche Checkpoints du dir ansehen solltest) — jede Runde bleibt ein normaler, revertierbarer Checkpoint. Siehe docs/AGENT-LOOP.md.

Ein Befehl pro Tool

Jedes MCP-Tool hat außerdem einen Slash-Befehl mit dem gleichen Namen, sodass jeden einzelnen Schritt ausführen kannst, indem du den Namen des Tools eingibst. Die Regel, die du vermittelst kannst: ist das Tool X → type /X.

Das du eingibst

Ausgeführtes Tool

Funktion

/render_preview

render_preview

Kompiliert das Paper und öffnet/aktualisiert die Live-Vorschau.

/check_comments

check_comments

Listet die angenommenen Kommentare als Bearbeitungsanweisungen auf (noch ohne Bearbeitung).

/resolve_comment [id] [note]

resolve_comment

Markiert einen Kommentar nach der Bearbeitung als erledigt; er färbt sich für deine Prüfung grün.

/add_comment ["quote"] [note]

add_comment

Verankert einen Kommentar an einer Textstelle, damit du ihn annehmen oder ablehnen kannst.

/reply_to_comment [id] [text]

reply_to_comment

Fügt eine verschachtelte Antwort zu einem Kommentar hinzu.

/show_diff [checkpoint]

show_diff

Nebeneinander angeordnter, visueller Diff als Bild (aktueller Änderungen oder eines Checkpoints).

/list_checkpoints [limit]

list_checkpoints

Letzte Checkpoints mit deren SHA, neueste zuerst — damit findest du einen zum Übergeben an /show_diff.

Du musst diese nie eintippen — auch normale Sprache funktioniert („Erzeuge eine Vorschau", „bearbeite meine Kommentare"). The Befehle sind nur eine schnelle, vermittelbare Abkürzung.

Die Slash-Befehle kommen mit dem Plugin: Sie sind Dateien in commands/, die nur das Plugin installiert. Der Server selbst registriert keine Prompts, eine, die über .mcp.json eingerichtet wird, dir also die Tools aus der Tabelle unterhalb liefert, aber ohne /-Kurzbefehle — du bedienst sie stattdessen in einf ,whorizontalr Sprache („Erzeuge eine Vorschau", „Bearbeite meine Kommentare"), worauf die Befehle ohnehin hinauslaufen.

Tools

Die MCP-Oberfläche, für jeden Client, der MCP spricht. (In Claude Code kannst du einfach in normaler Sprache fragen oder die Slash-Befehle oben verwenden — das sind die zugrunde liegenden Tools.)

Tool

Parameter

Funktion

render_preview

projectRoot? (absoluter Pfad zum Paper-Ordner — nur nötig, wenn der Server nicht dort gestartet wurde; gilt für den Rest der Sitzung) · mainFile? · engine? (pdflatex | xelatex | lualatex, automatisch erkannt, wenn weggelassen) · backend? (wasm | system | auto, Standard auto — lokales latexmk, falls installiert, sonst die gebündelte WASM-Engine)

Kompiliert das Projekt und öffnet/aktualisiert das Live-Workspace. Die Hauptdatei wird — wenn weggelassen — durch Suchen nach \documentclass automatisch erkannt.

check_comments

includeResolved? (Standard false)

Gibt die angenommenen Kommentare als verortete Arbeitselemente zurück — Seite, zitierte Textstellen, die Quelle file:line und die Aufgabe. Review-Vorschläge, die auf deine Entscheidung warten, werden gemeldet, aber nicht als Arbeitselemente zurückgegeben.

add_comment

quote · comment · note? (reviewer | defender) · page? · accepted?

Verankert einen Kommentar an einem Textabschnitt. Wird als Vorschlag veröffentlicht, das auf deine Annahme/Ablehnung wartet, sofern accepted nicht gesetzt ist — genau dieses Flag macht den autonomen Modus autonom.

resolve_comment

id · note

Markiert einen Kommentar nach der Bearbeitung als erledigt, mit einem Satz, was verändert wurde. Die Erledigung wird nur übernommen, wenn der aktuelle Quelltext exakt mit dem letzten erfolgreich gerenderten Checkpoint übereinstimmt; dann wird er im Workspace grün zur Prüfung angezeigt.

reply_to_comment

id · text · role? (author | reviewer | defender)

Fügt eine Thread-Antwort hinzu, so dass eine Unklarheit live am Kommentar geklärt werden kann statt im Chat.

show_diff

checkpoint?

Rendert ein nebeneinander angeordnetes Diff als Bild, das direkt in der Unterhaltung angezeigt wird. Standard: aktuelle, noch nicht eingecheckte Änderungen; für eine gespeicherte Version einen Checkpoint-SHA übergeben.

list_checkpoints

limit? (Standard 10, max. 50)

Letzte Checkpoints mit ihrem SHA, neueste zuerst — damit einen aussuchen, which you can pass show_diff passed.

Die zentralen Workflows setzen auf diesen Tools auf, sind aber nicht Teil davon. /texchronicle, /ai-review, /address-comments and ⚡ /ultra-agents sind Claude-Code-Plugin-Befehle, die/orchestrierten, the oben genannten Tools. Das /ultra-agents -Befehl reiht der Review → automatische Annahme → Korrektur beliebig viele Runden aneinander, und genau deshalb besitzt add_comment accepted-Flag. You are not part of the MCP-Fläche, so the other detected MCP client sees the seven tools. Siehe den Plugin-Abschnitt und docs/AGENT-LOOP.md.

So sieht es im Terminal aus

Das sind echte Tool-Ausgaben, unverfälscht von einem echten Lauf gegen das Beispiel-Thesis übernommen — nicht nachgestellt. Das siehst du in Claude Code, während das Browser-Workspace (Screenshot oben) denselben Zustand live abbildet.

Du gibst ein:

/texchronicle

Claude ruft render_preview auf und antwortet:

✓ Compiled main.tex with xelatex in 1900ms — 2 files. Workspace (live preview,
source editor, history, PDF comments — auto-reloads on edits):
http://127.0.0.1:52042/app

Du (oder eine Reviewer-Skill) hinterlässt einem Kommentar und fragst dann, was zur Bearbeitung bereit ist. Claude ruft check_comments:

1 accepted comment — edit each at its source location per the instruction, then
call resolve_comment with its id and a one-line note:

[id: 2fce9e3c8b5f] p.1 — "Sorting widgets efficiently is a long-standing problem"
  ↳ source: main.tex:15
  → Tighten this opening sentence.

(1 reviewer suggestion still awaits the human's accept in the workspace — not
actionable yet.)

Claude führt die Änderung aus und ruft resolve_comment:

✓ Resolved comment 2fce9e3c8b5f ("Sorting widgets efficiently is a long-standing
problem…") — the card now shows: Rewrote the opening sentence.

Fragst noch einmal, und die Liste der angenommenen Kommentare ist leer — nur noch der weiterhin nicht angenommene Vorschlag bleibt übrig, der auf dich wartet:

No accepted comments. (2 already resolved.)

(1 reviewer suggestion still awaits the human's accept in the workspace — not
actionable yet.)

So funktioniert es

Claude edits .tex ─┐
 file watcher ─────┼─▶ compile coordinator ─▶ headless Chromium ─▶ WASM TeX ─▶ PDF
 render_preview ───┘         (serialized)         (engine host)                │
                                                                               ▼
                     your workspace (/app)  ◀── WebSocket "reload" ◀── local HTTP server
                     Source · PDF · History · Comments        (serves /app + /latest.pdf)

The WASM-engines need DOM/Worker globals, so the server runs a hidden headless Chromium as its compilation worker; the workspace you open in a browser is a lean React + pdf.js app without WASM. See docs/ARCHITECTURE.md.

flowchart LR
  H["👤 You<br/>Source · PDF · History · Comments"]
  A["🤖 Claude Code<br/>+ review / author agents"]

  H <-->|"select text →<br/>anchor comment"| SRV["Preview server<br/>HTTP + WebSocket · serves /app"]
  A -->|"7 MCP tools"| MCP["MCP server<br/>render_preview · show_diff · list_checkpoints<br/>check / resolve / add / reply_comment"]

  SRV --> CO["Compile coordinator<br/>(serialized)"]
  MCP --> CO
  A -. edits source .-> FILES[("Paper files · git repo")]
  FILES --> WATCH["File watcher"] --> CO
  CO --> ENG["WASM busytex<br/>(headless Chromium)"] --> PDF["/latest.pdf"]
  PDF -. live reload .-> H
  CO --> CK["git checkpoints<br/>(hidden ref) → History"]

  SRV <--> CJSON[(".latex-preview/<br/>comments.json")]
  MCP <--> CJSON
  CJSON -->|"check_comments<br/>(your accepted asks)"| A

Beide Zugänge — Sie im Workspace, die Agents über die 7 MCP-Tools — münden im selben Koordinator, im selben Kommentarspeicher und in derselben Git-Historie. Sie arbeiten am gerenderten Dokument (verankern einen Kommentar); Claude arbeitet am Quelltext (liest Ihre Kommentare über check_comments, bearbeitet die Datei, ruft resolve_comment auf). Genau dieses gemeinsame Fundament macht die Kommentarschleife, den Review-Workflow und die nachvollziehbare Historie möglich.

Anforderungen

Die folgenden Anforderungen gelten für die npm/Source-Installation. Die Windows-Portable-Variante bringt diese Laufzeitumgebungen selbst mit und braucht nur 64-Bit-Windows 10 oder neuer sowie einen normalen Webbrowser für das Workspace-Fenster. Die unten genannten TEXCHRONICLE_*-Variablen sind gemeinsam unter dem Benutzerhandbuch aufgelistet.

  • Node 20.19+ (die Untergrenze, die chokidar und playwright tatsächlich brauchen; der Server prüft das beim Start und weist darauf hin)

  • Playwrights Headless-Chromium (~150–300 MB), das automatisch geladen wird: Ein postinstall-Schritt lädt es bei der Installation herunter, und falls es fehlt, wenn der Browser zum ersten Mal benötigt wird, wird der Download dann erneut versucht. So lässt sich das ändern:

    • TEXCHRONICLE_SKIP_BROWSER_DOWNLOAD=1 (oder Playwrights eigenes PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1) überspringt den Download — nützlich bei einer Verbindung mit begrenztem Datenvolumen, in CI oder in einem offline erstellten Image.

    • Wenn kein Playwright-Chromium vorhanden ist, fällt TeXChronicle auf ein bereits installiertes Chrome oder Edge zurück und weist darauf hin.

    • TEXCHRONICLE_BROWSER wählt explizit einen Browser aus, vor allen oben genannten: chrome, msedge, chromium oder den vollständigen Pfad zu einer ausführbaren Datei.

    Fehlerbehebung: Falls der automatische Download übersprungen wurde oder fehlgeschlagen ist und kein Chrome/Edge gefunden wird, ist die einmalige Lösung npx --no-install playwright install chromium --only-shell im TeXChronicle-Ordner.

  • ~650 MB Speicherplatz für die einmaligen WASM-TeX-Live-Assets — alles wird beim ersten Start in drei Paketsätzen geladen (basic 87 MB, recommended 190 MB, extra 324 MB, plus die 31-MB-Engine). Ein normales Paper lädt nur den basic-Satz; die beiden größeren liegen auf der Platte, bis sie etwas braucht. Die Zwischenspeicherung erfolgt pro Benutzer, nicht pro Installation, sodass ein Upgrade von TeXChronicle keinen erneuten Download auslöst. Den Speicherort kann mit TEXCHRONICLE_ASSETS_DIR überschrieben werden.

  • Speicherplatz im Ordner des Papers selbst: Jedes saubere Render-PDF wird unter .latex-preview/renders/ .pdf aufbewahrt, damit History → View PDF die exakte Ausgabe einer alten Version anzeigen kann. Die 50 neuesten werden behalten, ältere gelöscht — setzen Sie TEXCHRONICLE_KEEP_RENDERS auf einen anderen Wert oder auf 0, um alle zu behalten. Der aktuell angewandte Render wird nie gelöscht, egal wie alt er ist.

  • Eine lokale TeX-Installation ist optional. Unten erfahren Sie, ja bei Bedarf.

Brauche ich eine lokale TeX-Distribution?

Nein — die gebündelte WASM-Engine kompiliert ohne installierte TeX-Installation, das ist der Sinn der Sache. Sie enthält aber nur einen Ausschnitt von TeX Live, daher fehlen einige Dinge: svg, die meisten Dokumentklassen für Konferenzen/Journale und verschiedene weniger manche Pakete fehlen. Fehlt etwas, wird Ihnen das mitgeteilt, statt ein stillschweigend falsches PDF zu aktiven.

Installieren Sie eine Distribution, wenn Sie eine Ausgabe möchten, die Overleaf genau entspricht. TeXChronicle erkennt sie von selbst — ohne Konfiguration:

macOS

MacTeX

Linux

texlive-full, über Ihren Paketmanager

Windows

TeX Live oder [MuKTeX](https://crete - no - keep all items

latexmk wird nicht separat installiert — es ist ein Treiber-Skript, das mit den oben genannten Distributionen geliefert wird. Unter Windows erkennt TeXChronicle außerdem die üblichen MiKTeX- und Strawberry-Perl-Speicherorte für den Benutzer und das System direkt, sodass ein veralteter oder unvollständiger PATH nicht den gebündelten Compiler erzwingt. Anderso prüfen Sie mit latexmk -version, nicht mit which latexmk: Die Datei zu finden bedeutet nicht, dass sie auch läuft. Auf macOS müssen Sie vielleicht zuerst eval "$(/usr/libr/exec" oder ein neues Terminal.

Erfüllen Sie sich mit latexmk -version, nicht which latexmk: das Auffinden der Datei ist kein Beweis, dass sie ausgeführt werden kann. Auf macOS braucht man eventuell zuerst eval "$(/usr/libexec/path)" oder ein Auflösung.

Zwei Windows-Details, die man Knowing — alles wird von einer Hand erledigt:

„ask before ast" — Die Einstellung, die eine frische MiKTeX-Konsole hinterlässt. Die Warnung ist ein GUI-Dialog, und TeXChronicle führt die Engine aus, ohne dass jemand da ist, um zu antworten – die Kompilierung würde also hängen bleiben. TeXChronicle erkennt das und deaktiviert den Installer. Wenn das Dokument dann wie gewünscht das Paket erfährt, das dieser Rechner nicht hat, sagt TeXanalogical, wie es zu beheben ist (mmp --install=<pkg> oder MiKTeX Console → Einstellungen → „Fehlende Paketer immer installieren“).

Zwei Perl- installiert. Wenn Sie Git Bash oder MSYS2 verwenden, ist ein POSIX- perl auf Ihrem PATH, das MiKTeX latexmk nicht ausführen kann. TeXChronicle bemerkt das und stellt eine echte Strawberry-Perl-Installation bevor, sodass das lokale Backend funktioniert, ohne dass Sie etwas ändern.

Jede Kompilierung verrät, welche Variante lief — xelatex · system oder xelatex · wasm.

Entwicklung

npm install
npm run typecheck    # tsc for the server and the UI
npm run build:ui     # build the React workspace to ui/dist
npm test             # the unit suite — engine-free, no browser, seconds
npm start            # run the server on stdio (for a manual MCP client)

Zwei Ebenen, mit Absicht. npm test überdeckt den Kommentarspeicher, das Anker-Matching, die Zeilen- und Spaltengeometrie, das History-Repo, die Asset-Pfade, die Klassifizierung von Kompilierlogos, das Herunterfahren des Pre-Servers und end-to-end einen MCP-Workflow — ohne Browser und TeX-Engine, damit sie schnell und deterministisch bleibt. CI (.github/workflows/ci.yml) führt Typecheck + UI-Build + diese Suite auf Node 20 und 22 für jede push und pull request aus.

Was ein Unit-Test strukturell nicht sehen kann — Geometrie bei verschiedenen Zoom-Stufen, was ein fehlgeschlagenes Rendering dem Leser tatsächlich zeigt, ob Herunterfahren den Server schließt und ein offenes Fenster weist die in scripts/smoke-*.mjs leben und gegen echten Browser und wirkliche Kompilierung in .github/workflows/smoke-macos.yml ausgeführt wurden. Jedes davon existiert, weil einmal etwas gefallt, das builden Unit-Suite grün treu. Bitte halten Sie beide Grün und wenden Sie Abdeckung mit Änderungen.

Doku

  • Benutzerguide — alltänglicher Verwenden, Kommenterschleife, Live-Bearbeitung, den Datei- baum, das Paper nach Overleaf, Paketabdeckung.

  • Der Agenten-Loop — Kommentare als Trigger, der abweg gebraucht werden mit /loop, den Reviewer → Gate → Resolver – Workflow und zeitsparendem ⚡ultragents.

  • Roadmap — Was für parallele Agents ausgeliefert ist und was echte parallele Multi-Agent-Bearbeitung noch braucht.

  • Architektur — warum eine headless Browser, was welche Modul macht, der Ablauf des Build.

Alle vier sind in die gleichen 8 Sprachen übersetzt wie diese README.

Roadmap

Mehrere Claude-Code-Sessions können bereits an demselben Projekt mitarbeiten, ohne Einwortungs- oder Checkpoint-Historie zu stören (siehe docs/ROADMAP.md) — echte parallele Multi-Agent-Bearbeitung (Reviewer/Autor/Verteidiger auf eigenen Git-Zweigen, die man wieder zusammenführt) ist der nächste Meilenstein.

Danksagung

TeXChronicle begann als Fork von MagicTeX MCP von Zoe Lin und Mitwirkbaren, und wird seither originalAbout deutlich neu gestaltet, mit dem Menschen-erst-Bearbeiten und der Historie Abschnittebene. Provenance find Siehe beachten NOTICE.md.

Dank an die Betreuer von texlyre FPGA, deren WASM-TeX-Live-Engine den gebündelten Compiler entfährt.

Lizenz

AGPL-3.0-or-later — passend zur texlyre-busytex-Engine, auf der die Stuff erstellt wird. Siehe NOTICE.md und THIRD_PARTY_NOTICES.md.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Aliutin/TeXChronicle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server