Metadata-Version: 2.4
Name: tlaplus-cli
Version: 0.8.1
Summary: TLA+ tools: download TLC, compile custom modules, run model checker
Author-email: Denis Nikolskiy <codeomatics@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/nikolskiy/tlaplus-cli
Project-URL: Repository, https://github.com/nikolskiy/tlaplus-cli
Project-URL: Issues, https://github.com/nikolskiy/tlaplus-cli/issues
Project-URL: Changelog, https://github.com/nikolskiy/tlaplus-cli/blob/main/CHANGELOG.md
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer<1.0.0,>=0.22.0
Requires-Dist: requests<3.0.0,>=2.31.0
Requires-Dist: pyyaml<7.0,>=6.0
Requires-Dist: platformdirs<5.0,>=4.0
Requires-Dist: pydantic<3.0.0,>=2.12.5
Requires-Dist: truststore<1.0.0,>=0.9.0
Requires-Dist: rich<14.0.0,>=13.7.0
Dynamic: license-file

# TLA+ CLI

Command-line tool for working with TLA+ specifications and the TLC model checker.

## Project Goals

1. Simplify managing TLA+ tools such as TLC, community modules, custom modules, etc.
2. Run TLA tools in a single CLI interface.
3. Manage and display the tool outputs.

## Quick Start & Usage

### 1. Toolset Management (`tla tools`)
* `tla check-java`: Verify Java installation and compatibility.
* `tla tools list`: List available and installed toolset versions (`tla2tools.jar`).
* `tla tools install [vX.Y.Z]`: Download and install a toolset version.
* `tla tools pin <version>`: Set default toolset version for TLC runs.

### 2. Model Checking (`tla tlc`)
* `tla tlc <spec>`: Execute TLC model checker on a specification.
* `tla tlc <spec> --show-command`: Inspect exact JVM command before execution.

### 3. Custom Java Modules (`tla modules`)
* `tla modules add <path>`: Compile Java operator overrides and register module in CLI cache.
* `tla modules list`: Display cached custom modules.
* `tla modules remove <name>`: Remove custom module from cache.

For complete, runnable specifications and Java module examples, see [docs/examples](docs/examples/).

## Quick Installation

### Via `uv tool`
```bash
uv tool install tlaplus-cli
```

### Via Nix Flakes
```bash
nix profile install github:nikolskiy/tlaplus-cli
```
