GitLaTeX IDE
A simple web-based IDE for LaTeX projects with Git support. Create workspaces, clone repos, edit in a Monaco-powered editor, compile to PDF, and push changes—without Overleaf or the command line.
Installation
Install from PyPI:
pip install gitlatex
Requirements: Python 3.8+, and (for full use) Git and a LaTeX distribution with pdflatex (e.g. TeX Live, MiKTeX).
Quick start
gitlatex
Your browser will open at http://localhost:5000. Create a workspace or clone a repo, then open it to edit, compile, and use Git (status, diff, commit, push) from the toolbar.
Options:
| Option | Description |
|---|---|
--port, -p |
Port (default: 5000) |
--host |
Bind host (default: 127.0.0.1) |
--no-browser |
Do not open the browser on start |
--repos |
Directory for workspaces (default: ./repos in current working directory) |
Example: gitlatex --port 3000 --repos /path/to/my/repos
Features
- Workspaces – Create local folders or clone from a Git URL (e.g. GitHub).
- File tree – Create, rename, move, delete, and upload files and folders.
- Editor – Monaco editor, multiple tabs, resizable panels.
- Compile – Build with
pdflatex, view PDF in-app, see errors in the console. - Git – Status, diff, commit, and push from the Git dropdown in the toolbar.
- Settings – Light/dark theme; optional remote Compiler API (URL + API key) to compile via a web service instead of local
pdflatex.
Workflow
- Run
gitlatexand open the app in your browser. - Add a project – Create a new workspace or clone from a Git URL.
- Open – Click a repo to open the editor.
- Edit – Use the file tree and editor; click Compile to build.
- Git – Use the Git menu for Status, Diff, Commit, Push.
Projects are stored in the repos directory (or the path you set with --repos).
Troubleshooting
- Compile fails – Install a LaTeX distribution and ensure
pdflatexis on your PATH. - Port in use – Use another port:
gitlatex --port 3000. - Windows: "The process cannot access the file... gitlatex.exe" – Another instance is running. Close it, then run
gitlatexagain.
Development
Run from source (no PyPI install): clone the repository, then from its root:
pip install -e .
gitlatex
Or run the package without installing:
pip install flask gitpython
python -m gitlatex
Author Note
This project was introduced to me by Atiq Bro. He was learning node. Then I kinda hijacked his project and made some ui change, added some features and then created another branch to publish it as a python package.
License
ISC
Release files for gitlatex 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gitlatex-1.2.0.tar.gz | 53.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gitlatex-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.0 kB
Release files / gitlatex-1.2.0.tar.gz
| Download URL | gitlatex-1.2.0.tar.gz |
|---|---|
| Size | 53.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3280206de254ad98328020cd41a08ca6afeb8c1dbbb0b73d7c769ec661052f3
|
|
BLAKE2b-256 checksum How to use checksums |
92b2d59460757fe84e2e0950ce26eca64fd808d5359b075c509f08b16e005891
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / gitlatex-1.2.0-py3-none-any.whl
| Download URL | gitlatex-1.2.0-py3-none-any.whl |
|---|---|
| Size | 53.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68f9a887ea48d0ce9c3cbe3b8ff5de2b1890affc32b16ae779babe78d0874152
|
|
BLAKE2b-256 checksum How to use checksums |
36ce23102e372b24e87e88a17e56e2dc9b277d8a7f8c40298604aa3624551737
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|