One binary · zero ceremony
Git deps, runner, build tool, test runner, scaffolder, and task runner — in one binary.
$ brew install abogoyavlensky/tap/lgx
Declare your project in one small lgx.edn and let go...
Pin libraries straight from git by tag or sha. Transitive deps are resolved too, with first-wins conflict handling.
{:deps
{tiny-cli
{:git/url "https://github.com/..."
:git/tag "v0.2.0"}}}
lgx run fetches deps and runs your entrypoint with everything on the source path. lgx nrepl runs an nREPL server on a random port for your editor.
$ lgx run $ lgx nrepl
lgx build bundles your app into a single executable — resources embedded, nothing to install on the target machine.
$ lgx build $ ./bin/myapp
lgx test discovers every test file under `test/` dir and runs each `deftest`. No harness to maintain. Beautiful and informative output.
$ lgx test ✓ 24 assertions, 0 failures
lgx new starts a project from the built-in base or cli templates — or from any git repo you point it at.
$ lgx new myapp $ lgx new mycliapp -t cli
Replace your Makefile with tasks in lgx.edn, complete with shell commands, .lg-scripts and typed positional args. Add a custom context layer to extend deps and paths.
{:tasks
{check {:doc "Run all checks"
:do [{:sh "cljfmt check"}
{:run "scripts/check.lg"}]}}}
Prebuilt binaries for macOS and Linux. Pick whichever fits your setup.
macOS and Linux.
brew install abogoyavlensky/tap/lgx
Globally, or pinned per project in .mise.toml.
mise use -g github:abogoyavlensky/lgx@latest
Latest release to ~/.local/bin/lgx.
curl -fsSL https://raw.githubusercontent.com/abogoyavlensky/lgx/master/scripts/install.sh | bash
Requires let-go.
lgx drives the lg binary (≥ 1.10.0), so it needs lg on your PATH — plus git for fetching deps.