AshLua exposes your Ash domains and resources to Lua scripts, with a consistent actor, tenant, and context attached to every call. Scripts can read records, mutate them, and invoke generic actions — all through the same authorization, validation, and types your application already uses elsewhere.
It ships with a manifest-driven documentation surface (AshLua.Docs) designed
to feed an MCP search_docs / get_docs tool, so an LLM client can discover
and call your API without prior knowledge.
Add ash_lua to your list of dependencies in mix.exs:
def deps do
[
{:ash_lua, "~> 0.1.0"}
]
endThen run the installer:
mix igniter.install ash_luaSee the getting started guide for a walkthrough.
The current 0.1.x line is functional but a few pieces are still missing.
- Configurable input/output naming. Domain and resource names are
overridable today via
lua do name "..." end; field-level renames are planned.
Issues / ideas welcome at ash-project/ash_lua/issues.