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.

Camp: Orchestration
Author: alliecatowo
Implementation language: Rust
Compilation target: LIR bytecode → register-based VM (~100 opcodes); WebAssembly via lumen-wasm
Licence: MIT
First seen: February 2026
Maturity: working compiler
Site: https://alliecatowo.github.io/lumen/
Repo: https://github.com/alliecatowo/lumen

Agent tooling:
- AGENTS.md (multi-agent dev team config)
- CLAUDE.md
- .opencode/agents/
- LSP server (lumen-lsp) with semantic search
- VS Code extension
- Tree-sitter grammar
- MCP provider crate (lumen-provider-mcp)
- emit-bytecode-as-JSON CLI (lumen emit)

Key idea

Lumen is for humans authoring agent workflows, not for agents to author general code — it earns its place in the catalogue via the orchestration-camp criterion of first-class effect declarations for model calls and agent-coordination primitives. Algebraic effects appear in function signatures after a slash; grants constrain every call to a tool with explicit caps; @deterministic enforces rejection of nondeterministic ops at compile time; pipeline / machine / memory are first-class process kinds. Source is markdown-native — .lm.md files unify code and documentation in one artefact.

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


Tags: ai   language   llvm   orchestration  

Last modified 21 June 2026