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.3.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.3.0.tar.gz | 63.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gitlatex-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.3 kB
Release files / gitlatex-1.3.0.tar.gz
| Download URL | gitlatex-1.3.0.tar.gz |
|---|---|
| Size | 63.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
22f6c807a329a54f4e3cbe7ab330f2dc57b3db7f1683c454fe71697532d411d5
|
|
BLAKE2b-256 checksum How to use checksums |
a7e54922192840c2e6848fd2f881ee0101d8e20611d5e06469df1210ffcec1fb
|
| 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.3.0-py3-none-any.whl
| Download URL | gitlatex-1.3.0-py3-none-any.whl |
|---|---|
| Size | 62.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c13aaf1c942f4a7c48bf0054efb8fbd1c3a1c5990b307ecf52c358c3fc516653
|
|
BLAKE2b-256 checksum How to use checksums |
5f506c08ab558161e4edd523c039198e6460a007ea86ea90b6d76f0d56dccf8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|