agentlanguages.dev
orchestration camp

Lumen.

Markdown-native source (.lm.md). Algebraic effects, grants for tool and model calls, @deterministic compile-time enforcement, and pipeline / machine / memory process kinds. A language for humans authoring agent workflows.

authoralliecatowo
implementationRust
targetLIR bytecode → register-based VM (~100 opcodes); WebAssembly via lumen-wasm
licenceMIT
first seenFebruary 2026
maturityworking compiler
markdownlumen.md

The thesis.

Lumen is a language for humans, but its target is the substrate above the model rather than the model itself. The catalogue’s nominal inclusion bar is “designed for LLMs to author code”; Lumen earns its place via the orchestration-camp criterion of first-class effect declarations for model calls and agent-coordination primitives. The vocabulary is the giveaway: cell (function), effect, grant, agent, pipeline, machine, memory are all language keywords. Functions declare effects in the return type after a slash (cell main() -> String / {Log}); tools must be granted with explicit caps (grant Chat max_tokens 1024 temperature 0.7); the runtime can be locked into @deterministic true mode that rejects nondeterministic operations at compile time, not at runtime.

Build deterministic agent workflows with static types, first-class AI primitives, and markdown-native source files.

The distinctive move is making the source file the same artefact as the documentation. Three source extensions ship: .lm.md (markdown with fenced Lumen blocks), .lm (raw source), and .lumen (markdown-native). The compiler’s first pipeline stage is markdown extraction — code and prose share one file, and the model writing one writes the other. Where Boruna does deterministic-workflow enforcement at the bytecode VM via policy-gated effects and hash-chained evidence, Lumen does it at the type system via algebraic effects, grants, and the @deterministic annotation. Same orchestration-camp diagnosis, different layer.

What it looks like.

effect Log
  cell info(msg: String) -> Unit
end

cell main() -> String / {Log} perform Log.info(“Starting”) return “Done” end

handle main() with Log.info(msg) -> resume(unit) print(“LOG: {msg}”) end

The / {Log} in the return type declares the effect. perform invokes it; handle ... with ... discharges it. One-shot delimited continuations under the hood. cell is the function keyword — Lumen does not use fn.

Distinctive moves.

Maturity.

v0.1.10 (February 2026), 352 commits, ~5,300 passing tests across all crates (AGENTS.md figure; the README’s 1,365+ is at a different cut). MIT-licensed, written in Rust (96.5% of the source), compiles to LIR bytecode for a register-based VM with ~100 opcodes, 32-bit fixed-width encoding, and COW collections via Rc::make_mut. The workspace contains 12+ crates covering compiler, VM, runtime, CLI, LSP, JIT codegen, WebAssembly bindings, tensor operations, and provider integrations. Single-author at the human level (alliecatowo); AGENTS.md notes that “only the Delegator agent commits code” — the contributors listing reflects agent runs of the project’s own multi-agent dev team.

Agent tooling.

The agent-facing surface is unusually elaborate. AGENTS.md declares a multi-agent development team — Delegator (Gemini 3 Pro), Auditor, Debugger (Claude Opus 4.6), Coder (Claude Sonnet 4.5), Worker (Claude Haiku 4.5), Tester, Task Manager, Performance, Planner — each with a defined role and only the Delegator authorised to commit. CLAUDE.md and .opencode/agents/ provide further orientation. The LSP includes semantic search; the VS Code extension covers .lm.md files; a tree-sitter grammar ships at tree-sitter-lumen/. The CLI’s lumen emit mode outputs bytecode as JSON for downstream agent consumption.

design DNA
  • Boruna orchestration Closest design relative. Both target deterministic AI workflows. Boruna enforces at the bytecode VM via policy-gated effects and hash-chained evidence bundles; Lumen enforces at the type system via algebraic effects, grants, and a compile-time @deterministic annotation. Both ship MCP integration. Lumen targets humans authoring workflows; Boruna targets auditable execution.
  • Plumbing adjacent Plumbing wires agents (typed channels, copy-discard symmetric monoidal category); Lumen is what runs inside a single node of that wiring. Complementary substrates rather than competitors.
  • AILANG verification Cross-camp on effect systems. AILANG's row-polymorphic Hindley-Milner with capability categories (IO/FS/Net/Clock/AI) is the verification cousin of Lumen's effect-row syntax. Different mechanism, same diagnosis: model calls must be visible in the signature.