Installer here: Release v0.1.0 · UndefeatedOrca/PaperGen
Repo here: UndefeatedOrca/PaperGen
Vibecoded with a combination of Claude Sonnet 4.6 copypasta, and GPT5.6-Luna in Codex

PaperGen

Generates pre-filled academic paper files from templates via a right-click context menu in Windows Explorer. Supports Word (.docx), Typst (.typ), and LaTeX (.tex) templates.

More than just generic templates: this fills in the class info using a single click, saving untold seconds (which turn into minutes eventually). I have not saved time in my life by creating this, but it should save you time in your life to use it :)


Requirements

  • Windows 10 or 11
  • For .typ templates: Typst CLI or app
  • For .tex templates: TeX Live or MiKTeX

Setup

1. Run the installer

Download the latest release and run the .exe.

2. Add templates

Place your .docx, .typ, or .tex template files in %APPDATA%\PaperGen\templates\.

Option A — Use starter templates:
The extension comes preloaded with a number of common used citation formats as template files. I have not confirmed the efficacy of the Latex and Typst formatted files, so if they don’t work, sorry :(.

Option B — Use your own existing templates:
Open each file and replace blank header fields with the placeholders listed below.

3. Set up your profile

Open Configuration (see Usage below) and click Edit Profile to enter your first name, last name, and university. You only do this once — it pre-fills every new class you add.

Example profile and class data are provided in profile.example.json and classes.example.json. Copy them to profile.json and classes.json if you want to try the application with sample data. The runtime JSON files are local user data and are excluded from version control.

To customize generated filenames, copy config.example.json to config.json and edit filename_format. The default is {{last name}}{{title}}, which produces names such as SmithOnFreeWill.typ. Supported tokens are {{last name}}, {{first name}}, {{class code}}, {{class number}}, and {{title}}; title uses the existing punctuation and space stripping logic. The template extension is appended automatically.


Usage

New Paper

Right-click any folder background (not on a file) → New Paper from Template

  1. Select a class from the dropdown
  2. Select a template/style (shows all .docx, .typ, and .tex files in your templates folder)
  3. Enter the paper title
  4. Confirm or change the due date
  5. Click Generate

The output file appears in the folder you right-clicked. By default, the filename format is LastTitleNoSpaces with the same extension as the template (e.g. SmithOnFreeWill.typ). See config.example.json to customize the filename format.

Configuration

Click Configuration from the New Paper window, or run:

python papergen.py --config

The older --manage option remains supported.

  • Add Class — opens a form pre-filled with your profile name and university; fill in the rest
  • Edit — modify a saved class
  • Delete — remove a single class
  • Edit Profile — update your name or university (affects pre-fill for new classes, and the {{name_first}} / {{name_last}} placeholders)
  • Clear Semester — removes all classes at once
  • Filename Convention — set the filename format using {{last name}}, {{first name}}, {{class code}}, {{class number}}, and {{title}}

Placeholders

Place these in your templates where you want fields filled in. They work in .docx, .typ, and .tex files.

PlaceholderSourceExample
{{your_name}}class (pre-filled from profile)Patrick Smith
{{name_first}}profilePatrick
{{name_last}}profileSmith
{{professor_name}}classDr. Jones
{{class_name}}classModern History
{{class_code}}classHIST
{{class_number}}class220
{{class_full}}auto-composedHIST 220
{{school}}classCollege of Arts and Sciences
{{university}}class, falls back to profileState University
{{paper_title}}entered at generation timeThe Fall of Rome
{{due_date}}entered at generation timeSeptember 1, 2026

Note for Word templates: If you type placeholders directly in Word, it may split them across internal formatting runs and prevent replacement. If a field is not being replaced, delete it and retype it fresh in a single unformatted run. You can verify how Word stored it by running:

python -c "
from docx import Document
doc = Document(r'%APPDATA%\PaperGen\templates\your-template.docx')
for p in doc.paragraphs:
    for r in p.runs:
        if r.text.strip(): print(repr(r.text))
"

Each placeholder should appear as a single string like '{{professor_name}}', not split across multiple entries.


Typst Templates

Generated .typ files use {{placeholders}} in the header and are ready to write in immediately. Compile with:

typst compile filename.typ

The starter MLA Typst template (mla.typ) uses the modern-mla package from Typst Universe. Install it with:

typst init @preview/modern-mla

or use the Typst web app.


LaTeX Templates

Generated .tex files use {{placeholders}} in the preamble. Compile with:

pdflatex filename.tex

Run twice for correct page numbers.

The Turabian LaTeX template (turabian.tex) uses the turabian-formatting package, which is included in TeX Live and MiKTeX. The MLA template (mla.tex) uses only standard packages (geometry, setspace, fancyhdr).


Semester Turnover

At the end of each semester, open Configuration and click Clear Semester to remove all classes at once. Your profile (name, university) is preserved.


Uninstalling

Uninstall in the apps menu of settings. Alternatively, delete the registry key in PATH.


Troubleshooting

Nothing happens on right-click — verify pythonw.exe exists at the path in the .reg file. Find the correct path with python -c "import sys; print(sys.executable)" and replace python.exe with pythonw.exe.

“No templates found” — confirm .docx, .typ, or .tex files are in %APPDATA%\PaperGen\templates\.

Placeholder not replaced in Word — see the Note under Placeholders above.

Typst package not found — run typst init @preview/modern-mla in the folder containing your .typ file, or open the file in the Typst web app.

LaTeX package not found — run tlmgr install turabian-formatting (TeX Live) or use the MiKTeX package manager to install turabian-formatting.


License

PaperGen is licensed under the MIT License.