texchronicle
TeXChronicle — abschnittsbewusste LaTeX-Historie und Live-Bearbeitung
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 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_commentsals 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/lolaufen – siehedocs/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 logoder 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. Siehedocs/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.
IEEEtronist 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-launcherAferward 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.texnpm 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 linknpm 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.texThe 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.
Bringen's it into the
.mcp.jsonof 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 executesprepare->npm run build:ui), then point the client at the entry"command": "node", "args": ["/absolute/path/to/TeXChronicle/bin/cli.mjs"]. Do Usebin/cli.mjsvia a "proper way" too rather thannpx tsx src/server.ts: The entry script verifies the Node-Version and if it's too old says so in plain language, and loads theos.userInfofallback that some Windows accounts need. Called directly,src/server.tsskip both and fails in ways that MCP-Client only as-32000value". After editing in theui/directory, runnpm 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"].
Restart Claude Code (or
/mcpreconnect) so that it registers the server.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 texchronicleBis 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 (Standardacademic-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-commentsin Schleife ausführen).⚡
/ultra-agents [skill] [depth]— vollständig autonom: Review, automatische Annahme, Korrektur, Wiederholung — bis zudepthWiederholungen (Standard: 2). Die Ausführung endet vorzeitig, sobald ein Durchgang nichts Neues findet. Keine Freigabe pro Runde — das ist der Sinnund das Risiko.depth > 5fordert 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. Siehedocs/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 |
|
| Kompiliert das Paper und öffnet/aktualisiert die Live-Vorschau. |
|
| Listet die angenommenen Kommentare als Bearbeitungsanweisungen auf (noch ohne Bearbeitung). |
|
| Markiert einen Kommentar nach der Bearbeitung als erledigt; er färbt sich für deine Prüfung grün. |
|
| Verankert einen Kommentar an einer Textstelle, damit du ihn annehmen oder ablehnen kannst. |
|
| Fügt eine verschachtelte Antwort zu einem Kommentar hinzu. |
|
| Nebeneinander angeordnter, visueller Diff als Bild (aktueller Änderungen oder eines Checkpoints). |
|
| Letzte Checkpoints mit deren SHA, neueste zuerst — damit findest du einen zum Übergeben an |
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.jsoneingerichtet 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 |
|
| Kompiliert das Projekt und öffnet/aktualisiert das Live-Workspace. Die Hauptdatei wird — wenn weggelassen — durch Suchen nach |
|
| Gibt die angenommenen Kommentare als verortete Arbeitselemente zurück — Seite, zitierte Textstellen, die Quelle |
|
| Verankert einen Kommentar an einem Textabschnitt. Wird als Vorschlag veröffentlicht, das auf deine Annahme/Ablehnung wartet, sofern |
|
| 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. |
|
| Fügt eine Thread-Antwort hinzu, so dass eine Unklarheit live am Kommentar geklärt werden kann statt im Chat. |
|
| 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. |
|
| Letzte Checkpoints mit ihrem SHA, neueste zuerst — damit einen aussuchen, which you can pass |
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:
/texchronicleClaude 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/appDu (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)"| ABeide 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
chokidarundplaywrighttatsä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 eigenesPLAYWRIGHT_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_BROWSERwählt explizit einen Browser aus, vor allen oben genannten:chrome,msedge,chromiumoder 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-shellim 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/.pdfaufbewahrt, damit History → View PDF die exakte Ausgabe einer alten Version anzeigen kann. Die 50 neuesten werden behalten, ältere gelöscht — setzen SieTEXCHRONICLE_KEEP_RENDERSauf einen anderen Wert oder auf0, 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 | |
Linux |
|
Windows | TeX Live oder [MuKTeX](https://crete - no - keep all items |
latexmkwird 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ändigerPATHnicht den gebündelten Compiler erzwingt. Anderso prüfen Sie mitlatexmk -version, nicht mitwhich latexmk: Die Datei zu finden bedeutet nicht, dass sie auch läuft. Auf macOS müssen Sie vielleicht zuersteval "$(/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.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityCmaintenanceEnables Claude and AI agents to read and edit Overleaf documents in real time, with support for project listing, document manipulation, LaTeX compilation, and live collaboration.1038MIT
- FlicenseBqualityCmaintenanceEnables AI agents to interact with Overleaf projects directly, including creating projects, managing files, and editing documents in real-time using Overleaf's native Operational Transformation protocol.10
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read, edit, and compile LaTeX documents in Overleaf projects with tracked changes via the Model Context Protocol.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to read, write, and compile LaTeX projects locally, view PDF pages as images, and manage project files, with live updates reflected in a web-based editor.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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