CLI for creating standalone LaTeX projects from this toolbox.
Project description
LaTeX Forge
Create professional documents. Save. Your PDF appears instantly.
One command creates a ready-to-write document project. Open it in VS Code, start writing, save — your PDF rebuilds and appears in a side panel automatically. No manual compilation, no window switching.
Works for humans and AI agents alike. Every generated project includes an AGENTS.md that briefs any AI assistant on the document structure, so it can contribute immediately.
How it feels
Write on one side. See your document on the other. Every save refreshes the result.
Quick start
# 1 — install
pipx install latex-forge
# 2 — set up your environment (LaTeX + VS Code extensions)
latex-forge setup
# 3 — create a project
latex-forge create --name my-report --template rapport-projet-en
# 4 — open and start writing
code my-report
Requires Python 3.10+. If pipx is not installed: brew install pipx on macOS, or see pipx.pypa.io.
Installation
pipx install latex-forge
First setup
On a fresh machine, run the setup command to verify your environment and install what's missing:
latex-forge setup
This checks for latexmk and lualatex, and offers to install them automatically (brew on macOS, apt on Debian/Ubuntu, winget on Windows). VS Code extensions are installed too if the code CLI is available.
Shell completion
Tab completion for commands, flags, and template names:
bash (~/.bashrc) or zsh (~/.zshrc):
eval "$(latex-forge completion)"
Configuration
# ~/.latex-forge.toml
default_template = "rapport-projet-en"
default_output_dir = "~/Documents/projects"
| Key | Description |
|---|---|
default_template |
Template used when --template is omitted |
default_output_dir |
Output directory used when --output is omitted |
Usage
Interactive mode
$ latex-forge create
Project name: my-report
Available templates:
1. cv-en
2. cv-fr
3. rapport-projet-en
4. rapport-projet-fr
5. research
Choose a template [1-5]: 3
Create project in [/Users/alice/Desktop]:
Project created: /Users/alice/Desktop/my-report
Open project in VS Code? [y/N]
With flags
latex-forge create --name my-report --template rapport-projet-en
latex-forge create --name my-paper --template research --output ~/Desktop
Rename a project
latex-forge rename old-name new-name # from parent directory
latex-forge rename new-name # from inside the project
Built-in templates
| Template | Language | Description |
|---|---|---|
rapport-projet-en |
English | ISO/IEEE project report — requirements, architecture, testing, bibliography |
rapport-projet-fr |
French | AFNOR/ISO project report — cahier des charges, architecture, tests, bibliographie |
research |
English | Two-column research article — related work, methodology, experiments, bibliography |
cv-en |
English | CV / résumé — education, experience, projects, skills |
cv-fr |
French | CV — formation, expérience, projets, compétences |
latex-forge list-templates
Template gallery
More document types are available in the latex-forge-gallery: CVs, theses, articles, presentations, posters, and more.
# install any template directly by URL
latex-forge template install https://github.com/thmsgo18/latex-forge-gallery/tree/main/templates/thesis/clean-thesis
# create a project from it
latex-forge create --template clean-thesis --name my-thesis
# manage installed templates
latex-forge template list
latex-forge template remove clean-thesis
Filling in your project
Open frontmatter/metadata.tex to set the title, authors, and course:
\newcommand{\reporttitle}{Audio Fingerprinting Study}
\newcommand{\coursename}{Machine Learning}
\resetauthors
\addauthor{Alice Martin}{}
\addauthor{Bob Durand}{}
\resetteachers
\addteacher{Dr Example}{}
Save the main .tex file — the PDF rebuilds instantly in VS Code.
Generated project structure
my-project/
├── my-project.tex ← main file (renamed from the project name)
├── frontmatter/
│ ├── metadata.tex ← title, authors, course — start here
│ └── toc.tex
├── sections/ ← one .tex file per section
├── backmatter/ ← acknowledgements, appendices
├── bibliography/
│ └── references.bib
├── figures/
├── images/
├── assets/logos/
├── styles/packages/ ← embedded styles, no external dependency
├── .vscode/ ← pre-configured for live PDF preview
├── AGENTS.md ← AI briefing for this document
└── .gitignore
The project is fully self-contained: styles and assets are copied in at creation time. It compiles, shares, and versions independently — no dependency on this repository.
AI-friendly by design
Every generated project includes AGENTS.md — a self-contained briefing that tells any AI assistant exactly what the project contains, how to compile it, how to add content, and what not to touch. An AI can open a project cold and contribute correctly without any extra context.
Command reference
| Command | Description |
|---|---|
latex-forge create |
Create a project (interactive) |
latex-forge create --name NAME --template TEMPLATE |
Create with explicit arguments |
latex-forge create --output DIR |
Set output directory |
latex-forge rename OLD NEW |
Rename from parent directory |
latex-forge rename NEW |
Rename from inside project |
latex-forge list-templates |
List available templates |
latex-forge setup |
Check and set up the environment |
latex-forge setup --check-only |
Check without installing |
latex-forge setup --install-tex |
Install LaTeX |
latex-forge template install URL |
Install a template |
latex-forge template list |
List all templates |
latex-forge template remove NAME |
Remove an installed template |
latex-forge completion |
Print shell completion code |
latex-forge --version |
Show version |
Versioning
Each project is self-contained — version it independently:
cd my-project
git init
git add .
git commit -m "Initial report"
Contributing
See CONTRIBUTING.md.
Made by thmsgo18
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file latex_forge-0.2.2.tar.gz.
File metadata
- Download URL: latex_forge-0.2.2.tar.gz
- Upload date:
- Size: 209.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
833625c2ceb8247bd61315d75265f995f1a956f8a17b3b7434ea12e7d1d28219
|
|
| MD5 |
935cd155276e1bf4a0fca0979f1dd075
|
|
| BLAKE2b-256 |
9544dc262fa9d201a2ae7cbb9b550370a047c2e668cbee1dd40de294aeba398a
|
Provenance
The following attestation bundles were made for latex_forge-0.2.2.tar.gz:
Publisher:
publish.yml on thmsgo18/latex-forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
latex_forge-0.2.2.tar.gz -
Subject digest:
833625c2ceb8247bd61315d75265f995f1a956f8a17b3b7434ea12e7d1d28219 - Sigstore transparency entry: 1747727067
- Sigstore integration time:
-
Permalink:
thmsgo18/latex-forge@5faf09358437112bec370b7b5657dde67da6befd -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/thmsgo18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5faf09358437112bec370b7b5657dde67da6befd -
Trigger Event:
push
-
Statement type:
File details
Details for the file latex_forge-0.2.2-py3-none-any.whl.
File metadata
- Download URL: latex_forge-0.2.2-py3-none-any.whl
- Upload date:
- Size: 227.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1761a87d9ed9dec79408d9927315aa18fd21a39228e68e6ea24d335abd72f8b
|
|
| MD5 |
7b727d9a9a12bcc908cd2337d9acc122
|
|
| BLAKE2b-256 |
b7916fe5ba66a0cd98f6ffd13488a504a0c57a49bf01fecc71f89c8c96c74035
|
Provenance
The following attestation bundles were made for latex_forge-0.2.2-py3-none-any.whl:
Publisher:
publish.yml on thmsgo18/latex-forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
latex_forge-0.2.2-py3-none-any.whl -
Subject digest:
e1761a87d9ed9dec79408d9927315aa18fd21a39228e68e6ea24d335abd72f8b - Sigstore transparency entry: 1747727241
- Sigstore integration time:
-
Permalink:
thmsgo18/latex-forge@5faf09358437112bec370b7b5657dde67da6befd -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/thmsgo18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5faf09358437112bec370b7b5657dde67da6befd -
Trigger Event:
push
-
Statement type: