Release v0.6.2

David Cruz · February 21, 2026

NOTE: This article was written before the rename from lpm to lde

bin field in lpm.json

You can now set a bin field in your lpm.json to declare the entrypoint used by lpm run and lpm x. This is useful for packages that expose both a library and a CLI entrypoint as separate files.

{
	"name": "my-tool",
	"bin": "cli.lua"
}

lpm bundle --bytecode

lpm bundle --bytecode now compiles the entire output file to LuaJIT bytecode, producing a bytecode blob instead of a Lua source file. This reduces file size and improves startup time.

Previously, it only stored each individual file that was dynamically loaded as bytecode.

Bug fixes

  • Fixed lpm run with an external engine (e.g. "engine": "lua" in lpm.json) not inheriting stdout/stderr — output was silently swallowed instead of being shown to the user.
  • Fixed lpm run with the lpm engine not setting the working directory to the project’s directory when running build scripts.
  • Fixed lpm x running tools with the working directory set to the package location instead of where the user invoked the command.