Drive it from code
Lunen’s programmatic surface today is deliberately small and points in two directions: into Lunen through webhook triggers that start Task Agent runs, and out of Lunen through MCP — any server you build or host becomes tools your organization’s agents can call under policy.
Start a Task Agent run from your systems — bearer or HMAC, JSON payload in, run out.
ExtendCustom MCP serversAnything that speaks MCP over HTTP becomes governed agent tooling.
TrackChangelogDated notes on what changed.
Triggering: webhooks in
Every Task Agent can expose webhook triggers — authenticated endpoints your CI, alerting, or internal services call to start a run, optionally handing it a JSON payload the plan consumes as run input. The run that results is a normal run: same policy, same approvals, same audit trail.
Extending: MCP out
The integration surface is the Model Context Protocol . Build a server exposing your internal systems as MCP tools, host it anywhere Lunen can reach over HTTPS, and an administrator adds it to the registry — OAuth, custom headers, or open. From that point your tools are indistinguishable from catalog ones: per-tool allow/approve policy, scoped credentials, and every call in the audit log.
What there isn’t (yet)
There is no public REST API, no API keys, and no outbound event subscriptions — the API page states the current surface plainly so you don’t design against endpoints that aren’t there.