TLAP is a portable CLI that lets you run TLA+ tools easily from anywhere.
It wraps tla2tools.jar in Docker so you can use tlap without installing Java locally.
- Run TLA+ from any directory (
tlapon your PATH) - Keep host setup minimal (runtime dependency is Docker)
- Use both high-level workflows (
init,run,translate) and raw passthrough
Private repository use is assumed.
- Open Releases: https://github.com/skoya76/tlap/releases
- Download the latest
tlap_linux_amd64binary. - Place it as
~/.local/bin/tlapand make it executable. - Run
tlap -- tlc2.TLC -helpto verify installation.
- Open Releases: https://github.com/skoya76/tlap/releases
- Download
tlap_linux_amd64from the version you want (or latest). - Place the binary at
~/.local/bin/tlap. - Ensure it is executable and that
~/.local/binis on yourPATH.
Run install.sh from a local clone, or set repository explicitly:
export TLA_REPOSITORY="<owner>/<repo>"
export GITHUB_TOKEN="<token-with-repo-read-access>"
./install.shInstaller behavior:
- Downloads a release asset from GitHub Releases
- Installs it as
~/.local/bin/tlap - For private repos, uses
GITHUB_TOKEN(orGH_TOKEN) when provided
Everything after -- is passed through as-is:
tlap -- tlc2.TLC -help
tlap -- pcal.trans sample.tlaUnknown subcommands are also passed through automatically:
tlap tlc2.TLC -helpCreate a new project directory with starter files (.tla, .cfg, sample.tla, .tlactl).
Run PlusCal translation via pcal.trans.
Run TLC, with optional auto-translation when --algorithm is found.
Example:
tlap run MySpec.tla --cfg MySpec.cfg --workers 4 -- -deadlock -cleanupFor TLA+/TLC/PlusCal language and tool semantics, use upstream documentation:
- TLA+ docs wiki: https://docs.tlapl.us/
- TLC docs: https://docs.tlapl.us/using%3Atlc%3Astart
- Official
tla2tools.jarreleases: https://github.com/tlaplus/tlaplus/releases - TLA+ project home: https://dl.tlapl.us/
TLAP focuses on portability and execution ergonomics, while detailed language/tool behavior is delegated to official references.
TLA_DOCKER_IMAGE: Docker image name (default:tlap:latest)TLA2TOOLS_URL: Overridetla2tools.jardownload URL (used when image is built)TLA_DOCKER_BUILD=always: Force image rebuild on every runTLA_REPOSITORY: Release source repository (required unless detected from localgit remote)TLA_RELEASE_ASSET: Override asset name (default:tlap_linux_amd64)TLA_VERSION: Release version (default:latest)GITHUB_TOKENorGH_TOKEN: token used to download assets from private releases
- Installer target platform is currently
linux/amd64only.
At runtime TLAP:
- Ensures the configured Docker image exists (or builds it)
- Mounts your current directory into
/workin the container - Runs
java -cp /opt/tla2tools.jar <tool-class> ...
This keeps usage portable while preserving normal file-based workflows.
This repository includes a GitHub Actions workflow that creates releases on v0.* tags.
git tag v0.1.0
git push origin v0.1.0The workflow builds and uploads:
tlap_linux_amd64
Issues and pull requests are welcome.
Apache License 2.0. See LICENSE for the full text.