txtr (aka texitor) is a terminal LaTeX editor built for speed. It mixes Vim-style modal editing with snippets, autocomplete, citations, compiler tooling, and plugins in one clean TUI.
Under active development. Expect bugs :)
Docs
The full docs are here: txtr.benji.mom
If you only read one extra thing after this README, make it one of these:
Installation
pip install texitor
If your system complains about installing packages globally, use pipx, uv, or a virtual environment instead.
pipx install texitor
uv tool install texitor
python -m venv txtr-env
source txtr-env/bin/activate
pip install texitor
Requires Python 3.11 or later. More install details live in the docs: txtr.benji.mom/installation
What even is LaTeX?
LaTeX is a typesetting system used a lot for maths, science, essays, notes, and papers. It is great once you know it, but it can be pretty slow and bracket-heavy to write by hand.
That is the whole point of txtr: make writing LaTeX in the terminal feel fast instead of annoying.
Quick start
txtr file.tex
If the file does not exist, txtr creates it. On first run txtr seeds config, snippets, commands, and keybind overrides into ~/.config/txtr/.
Never used a Vim-style editor before? This is the tiny version:
ienters Insert mode so you can type (this is how you can actually get text into the editor)Esctakes you back to Normal mode:wsaves:qquits:wqsaves and quits?opens the help menu
Once you are inside txtr:
:opens command mode:snippetsjumps straight to snippet help:config showopens the config panel:plugin listshows installed plugins- typing
\fraopens LaTeX autocomplete Up/Downmoves through autocomplete andEnterorCtrl+Spaceaccepts it- typing a snippet trigger like
//ordocexpands it fast (docstill needsTab)
txtr also remembers where you were in a file when you reopen it by default, so hopping back into longer docs feels way nicer.
If you want the fuller walkthrough, go straight to the quick start docs.
What ships with txtr
- Vim-style modal editing for
.texfiles - LaTeX snippets and completions
- citation autocomplete from
.bibfiles - compiler commands, buildwatch, and PDF build workflows
- file explorer, recents, and multi-buffer workflow
- restore cursor position when reopening files
- built-in plugins:
wordcount- latex-aware word countfreeze- screenshot/export via the freeze CLIzathura- external PDF open + SyncTeX forward search
- installable user plugins on top of the built-ins
- a full docs site with config, snippets, themes, and plugin guides
Built-in plugins ship with txtr, but they are still configured and enabled like normal plugins.
Docs, again because they matter
The README is only the short version. The proper setup/config/snippet/plugin guides live at:
Notes
- requires Python 3.11+
- compiler features expect tools like
latexmkorpdflatexto be installed - system clipboard features rely on platform clipboard tools
- some plugins rely on external tools too, for example
freezeandzathura
Compatibility
- Linux - fully supported and tested
- MacOS - supported but not thoroughly tested
- Windows - not currently supported, but WSL should work fine - txtr will run but do expect errors
If you would like to port txtr to Windows, please open an issue or PR on GitHub. I don't have access to a Windows machine but would be happy to review and merge contributions that add support.
Contributing
txtr is early-stage. If you find a bug or want to add something, open an issue or PR on GitHub.
tl;dr - just make a pr ...
Metadata
Release files for texitor 3.0.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 | Provenance | |
|---|---|---|---|---|
| texitor-3.0.0.tar.gz | 85.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| texitor-3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 189.0 kB
Release files / texitor-3.0.0.tar.gz
| Download URL | texitor-3.0.0.tar.gz |
|---|---|
| Size | 85.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fb7faed349d662d2366648de8802c322d648faa178c6730298fbdc7d0ac2388
|
|
BLAKE2b-256 checksum How to use checksums |
d58f5d84286a638cd296958477ac67ae0672efbfc9b373c46b183bba0062c184
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / texitor-3.0.0-py3-none-any.whl
| Download URL | texitor-3.0.0-py3-none-any.whl |
|---|---|
| Size | 103.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e3f1266197722bc66bfecaa84c64a68ee382b070bab8bb0940c8a6ca64394561
|
|
BLAKE2b-256 checksum How to use checksums |
5fd0a57d05085f8f4d3355d1be7a5bf7c8ac85f6bfcf695dba6b07bfcdf63fe3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Security for texitor 3.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.