Write LaTeX together.
Keep every copy.
TeXLoom is a collaborative LaTeX editor where everyone holds the whole project: in the browser, in the desktop app, or as a plain folder on disk. Edit live with co-authors, keep working offline, and let the server see nothing but ciphertext.
- Free, open-source software (AGPL-3.0)
- No account needed
- Paid storage is optional
- Run your own server
The convenience of an online editor, without handing over your work.
Hosted LaTeX editors keep your paper on someone else’s computer. TeXLoom keeps it on yours, and on your co-authors’, and passes changes between you. It’s free, open-source software under the AGPL-3.0: read the code, run your own server, or use ours.
Local-first
Every collaborator holds a full copy of the project. Work on a train, a plane or a bad conference Wi-Fi; your edits merge automatically when you reconnect.
End-to-end encrypted
Files, file names and PDFs are encrypted on your device with a key that lives only in the link. The server relays and stores ciphertext, and can be told to keep nothing at all.
No accounts
Share a link and you’re collaborating. Give each co-author a personal edit link you can revoke later, or a read-only link for reviewers.
Everything you expect from a LaTeX editor, and some things you don’t.
Live collaboration
See co-authors’ cursors and selections as they type; click an avatar to jump to them. Two files made under one name while apart are both kept.
TeX Live in your browser
Compile with TeX Live 2026 in WebAssembly, or with your own TeX installation. Clickable errors and SyncTeX jumps between source and PDF.
History without git
Automatic and named versions (“the one we submitted”), compare with now, restore a file or everything, and see who wrote each line.
Comments & suggestions
Comment on a selection or suggest a change to it. Collaborators reply, resolve, accept or reject: tracked changes for LaTeX.
Your project is a folder
Sync a project to an ordinary folder and edit it in vim, VS Code or Emacs. Changes flow both ways, live. Chrome and Edge can do it with nothing installed.
Agents as collaborators
An MCP server lets Claude Code or any MCP client read, edit, comment, suggest and compile, visible to everyone by name and cursor. A built-in assistant works with Claude, OpenAI-compatible APIs or a local model.
An editor that knows LaTeX
Completion for commands, environments, files, citation keys and labels; a live preview of the equation under the cursor; a checker for common mistakes with one-click fixes; spell check that skips LaTeX.
Continuous git sync
Keep a GitHub repository in step with a project, both ways. Your git credentials never touch the server.
Bring your projects
Start from templates (article, paper, Beamer, thesis, letter) or import a .zip from Overleaf, a GitHub download or an arXiv paper’s source. Add references from a DOI or arXiv id.
Your projects on every device
Keep your list of projects on the server, encrypted so the server can’t read it. Open it on another browser or computer with a sync link, a passkey or a password.
Preview more than the PDF
Markdown, images and PDFs from the project open in the PDF panel, one click from your compiled document. Markdown updates as you type, with maths and images and no compile.
Phones and tablets
Read, comment and fix a typo from your phone. The layout fits small screens, and a bar above the keyboard has the characters LaTeX needs.
Writing with co-authors, and with agents.
Real screenshots of TeXLoom: two people and Claude, connected through the MCP server, working on one paper.
Review changes before they land
Anyone, including an agent, can comment on a passage or suggest a change to it. Suggestions show inline as tracked changes; collaborators reply, resolve, accept or reject.
Above: Claude suggested a wording change through texloom mcp, and Jonas replied to its comment.
An assistant that asks first
Ask the Assistant to tighten a paragraph or track down an error. It reads your project, compiles to check its work, and shows each change as a diff for you to apply or reject. Use your own API key, or a model running on your own computer.
Above: a staged exchange, to show how it looks.
Every version, and who wrote what
Versions are saved automatically; name the ones that matter, like the draft you sent round or the version you submitted. Compare with now, restore a file or the whole project, and turn on Who wrote this to see each line’s author.
See the maths as you type
Put the cursor in an equation and a preview shows it typeset, using your project’s own macros. Errors and common mistakes are underlined as you go, most with a one-click fix.
A small server that can’t read your paper.
- Every device is a full replica. Edits are CRDT updates (Yjs in the browser, pycrdt in the folder helper), so they merge character by character in any order, even after days offline.
- The key is in the link. It sits after the
#, which browsers never send to servers. Content, file names and compiled PDFs are encrypted with AES-GCM before they leave your device. - Edits are signed. The server and every peer check each write against the owner’s key or a personal key the owner granted, so read-only links can’t edit and revoked links are refused.
- The server is a relay. It passes ciphertext between whoever is online and, if you want, keeps an encrypted copy for when nobody is. It runs happily on a Raspberry Pi.
Important: the web app trusts the server that serves it, and anyone with a link can read the project. Read the security model.
Everything after # stays in the browser.
Use it in the browser, on the desktop, or from the command line.
All three are the same project, in sync. Mix them freely: one co-author in Safari, another in vim, an agent in Claude Code.
Web app
Nothing to install. Works in any modern browser and installs as an offline-capable app. After the first compile, the TeX engine is cached and works offline too.
- Installs as an app and works offline
- Compiles in the browser with TeX Live 2026
- Syncs a real folder on disk in Chrome and Edge
- Any browser: Chrome, Edge, Firefox, Safari
Browser-only copies live in the browser’s storage. Keep a folder copy, or download a .zip, for work that matters.
Desktop app
Keeps all your project folders in sync from the menu bar or system tray. Join a project from a link, share an existing folder, compile with your own TeX, and keep a git repository in step.
The apps aren’t signed yet. On macOS, right-click the app → Open the first time (or System Settings → Privacy & Security → Open Anyway). On Windows, SmartScreen → More info → Run anyway. Signing certificates cost money each year: sponsoring is what will pay for them.
Command line
The texloom helper works on any OS without a browser. Sync folders live, compile with latexmk, keep git in step, or run the MCP server for agents.
# install with uv (or pipx)
uv tool install git+https://github.com/jhudsy/texloom
texloom clone '<link>' ~/papers/demo
texloom run ~/papers/demo --compile
# let Claude Code work on it
claude mcp add texloom -- texloom mcp ~/papers/demo
Your own server
The server is the web app, the encrypted relay and the in-browser TeX files in one small Python process. An install script sets up nginx, Let’s Encrypt and a sandboxed service on Ubuntu or Debian.
git clone https://github.com/jhudsy/texloom
cd texloom && uv sync
cd web && npm install && npm run build
npm run download-tex
cd .. && uv run texloom-server --port 8787
Free to use. Storage is optional.
You never need to pay to use TeXLoom: your projects live on your devices, and the public server at app.texloom.org relays live changes for anyone, free. If you also want an encrypted copy kept on the server, so co-authors can catch up while you’re offline, a yearly storage plan covers the disk it uses. Plans are priced to cover costs, not to make a profit.
Live collaboration, and a little storage to try it with.
- Unlimited projects and collaborators
- Live, end-to-end encrypted relay
- In-browser TeX Live
- 20 MB encrypted storage with a free plan (an email address, no card)
- Co-authors sync without being online at the same time
- Reopen a project from its link on any device
Your papers, waiting on the server for co-authors.
- 2 GB encrypted storage
- Everything in Free
A research group or a course, sharing one allowance.
- 10 GB encrypted storage
- Everything in Free
The free plan is for trying TeXLoom out: one per person, renewed yearly, and without any guarantee that what’s stored is kept safe if the server fails. Keep your own copies (the desktop app’s folders, or the Source download); paid plans are where to put work that matters. Prices are per year, plus VAT or sales tax where it applies. Plans are sold through Polar, which acts as the seller (the “merchant of record”): it takes the payment, handles tax and sends your receipt. They renew yearly, and you can cancel any time from the link in your receipt.
Storage works through creation codes. After you buy a plan you receive a code to enter once in TeXLoom (⚙ Settings → Creation code…), and projects you create with it are stored, encrypted, up to your allowance. If a plan ends, your projects stay on your devices and in sync, new changes simply stop being stored on the server, and the server’s old copies are deleted 30 days later. The server can’t read your files, so it can’t sell, scan or train on them. See the privacy page.
Prefer to run your own? TeXLoom is AGPL-licensed free software. Host it for yourself, your lab or your university on a cheap VPS or a Raspberry Pi, with your own storage limits and creation codes.
Self-hosting guideFree software, with real running costs.
TeXLoom is free and always will be. If it saves you time or makes writing with co-authors less painful, a donation helps with Windows and Apple app signing and server costs.
Donations are gifts: they don’t buy storage or anything else. For storage, see the plans above.
If you’d like to be thanked by name, say so when you donate and you’ll go on the supporters list; otherwise you stay anonymous.
Not in a position to give? That’s fine. Starring the repository, reporting bugs, translating the interface or telling a colleague helps just as much.
Frequently asked
Is TeXLoom free?
Yes. TeXLoom is free, open-source software under the GNU AGPL-3.0: the web app, desktop app, command-line helper and server are all free to use, study, change and share, and you can run your own server. On app.texloom.org, writing and live collaboration are free and need no account.
Storage on our server is optional. A free plan gives you 20 MB (an email address, no card), with no guarantee that it’s kept safe if the server fails; paid storage plans give more, for an encrypted copy of your projects so co-authors can catch up while you’re offline. Donations are welcome but never required.
What if I lose my project list or forget its password?
It can’t be recovered or reset, by anyone. The list is encrypted on your device, and the server never learns your password or the list’s key. If you forget a password, set a new one with your sync link or a passkey. If you lose all of them, the list is gone, but your projects aren’t: each still opens from its own link. Keep your sync link in a password manager.
How is TeXLoom different from Overleaf?
Overleaf keeps your project on its servers and you edit it there. In TeXLoom, every collaborator has the whole project on their own device and changes are passed between you, end-to-end encrypted. You can work offline for as long as you like, edit with any tool through a synced folder, and run the server yourself. There are no accounts: you share links.
Moving over is easy: in Overleaf use Menu → Download → Source, then import the .zip in TeXLoom.
Is it ready for my thesis?
TeXLoom is young: an early release that is being used and improved quickly. It already does a lot, but please keep your own copies of important work (a synced folder, a .zip, or git) and read the security model before relying on it.
Who made it, and how?
TeXLoom was designed and directed by its maintainer (jhudsy on GitHub). Nearly all of its code, tests and documentation were written by an AI assistant (Anthropic’s Claude, working in Claude Code), with the author choosing the design and features and reviewing the work. Its security review was also AI-performed and is not a substitute for a professional audit. The code is all public, and reviews from humans are very welcome.
What can the texloom.org server see?
It sees encrypted data, its size and timing, a project ID, and the IP addresses that connect, which appear in its logs. It cannot see your files, file names, comments, compiled PDFs or the names you use in projects: those are encrypted with a key that is only in your links.
One important caveat: the web app is served by the same server, so you are trusting its operator not to serve modified JavaScript. If that matters to you, use the desktop app or command-line helper, or run your own server. The privacy page has the details.
What happens if I lose a link?
The server can’t read or recover links, because they hold the keys. If you still have the project open in a browser or as a folder, the Share dialog or texloom links shows them again. Otherwise ask a collaborator. A password manager is a good home for links that matter.
What’s the difference between donating and buying storage?
Donations, through GitHub Sponsors or Ko-fi, are gifts towards TeXLoom’s running costs, and don’t come with anything in return. Storage plans are a separate purchase, sold through Polar, which handles the payment and any VAT or sales tax. You don’t need either to use TeXLoom: live collaboration on app.texloom.org is free, and you can always run your own server.
Why do macOS and Windows warn me about the app?
Because the downloads aren’t signed with paid certificates yet. The app is built from the public source by GitHub Actions, so you can check exactly what went into it. Signing costs a few hundred dollars a year; supporting the project is what will make the warnings go away.
Can I use my own TeX installation, or shell escape?
Yes. The desktop app and the texloom helper compile with your local latexmk, and browsers can send their compile requests to it. Because collaborators write the document, compiling is locked down by default: no shell escape, no file access outside the project, no rc files. Lines that need to run programs (minted, for example) must be reviewed and allowed first.