Metadata-Version: 2.4
Name: texi-cli
Version: 0.1.0
Summary: An isolated workspace manager for LaTeX projects.
Keywords: latex,texlive,tlmgr,latexmk,workspace
Author: Claudio Spiess
Author-email: Claudio Spiess <claudiovspiess@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Text Editors :: Text Processing
Requires-Dist: typer>=0.26
Requires-Dist: rich>=15
Requires-Dist: pydantic>=2.13.4
Requires-Dist: httpx>=0.28.1,<1.0.0
Requires-Dist: inflect>=7.5.0
Requires-Python: >=3.11
Project-URL: Homepage, https://github.com/claudiosv/texi
Project-URL: Repository, https://github.com/claudiosv/texi
Project-URL: Bug Tracker, https://github.com/claudiosv/texi/issues
Description-Content-Type: text/markdown

# texi

An isolated workspace manager for LaTeX projects.

`texi` wraps `tlmgr` and `latexmk` to give each LaTeX project its own local TeX Live tree (`.texenv/`), so package versions are pinned per-project and system-wide TeX Live is never polluted.

## Features

- **`texi sync`** — reads `texproject.toml`, initialises a local `tlmgr` user-tree in `.texenv/`, and installs declared dependencies into it.
- **`texi build`** — compiles the project with `latexmk`, pointing it at the local `.texenv/` tree via `TEXMFHOME`.

## Installation

```bash
uv tool install texi
```

Or, inside a project with `uv`:

```bash
uv add texi
```

## Usage

1. Add a `texproject.toml` to your LaTeX project root:

```toml
[latexmk]

[latexmk.engines]
pdf_mode = "pdflatex"

[latexmk.directories]
out_dir  = "build/"
aux_dir  = "build/aux/"

dependencies = ["acmart", "biblatex", "geometry"]
```

2. Install dependencies into the local tree:

```bash
texi sync
```

3. Build the project:

```bash
texi build
```

## Development

```bash
uv sync
uv run texi --help
```

Linting and type-checking:

```bash
uv run ruff check .
uv run ruff format .
uv run ty check .
```
