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, pull, 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, pull, and push from the Git dropdown in the toolbar. Push commits all changes with a timestamp message, then pushes; pull and push are enabled only when there is something to pull or push.
- 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.4.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.4.0.tar.gz | 76.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gitlatex-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 152.1 kB
Release files / gitlatex-1.4.0.tar.gz
| Download URL | gitlatex-1.4.0.tar.gz |
|---|---|
| Size | 76.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8bf67d42fd22a15a50929ab018942bc3eccaecfcaf3462aa266d0ee7ef86b117
|
|
BLAKE2b-256 checksum How to use checksums |
2232e3106d3a191a2e2754394162b049278c4669fc9b64446ddb78cf569ab01a
|
| 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.4.0-py3-none-any.whl
| Download URL | gitlatex-1.4.0-py3-none-any.whl |
|---|---|
| Size | 75.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
294e1d58398dab35f42c5c0c380e7a93bcdbbf9ed5f8480989ae2a952a112d37
|
|
BLAKE2b-256 checksum How to use checksums |
18f836f5024b75b395d3b2742036cd0f5f32b03b51b8927a868e0de382c09cdb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|