The short version

Last Light is not uniquely "the self-hosted autonomous one". OpenHands got there first and is the bigger project by every measure that counts: more users, more integrations, a larger community, and a cloud option if you ever want to stop self-hosting.

Its Resolver does exactly the event-driven thing. Label an issue, and a sandboxed runtime spins up, edits code, runs tests, and opens a pull request. That is the same loop as Last Light's build line. If that loop is your requirement, OpenHands is the more proven and lower-effort path, and this page is not going to pretend otherwise.

Where Last Light differs is coverage. It is not one pipeline: it is a triage sweep, a PR reviewer, a build cycle, a weekly security pass, a health report and a Slack chat surface, all as YAML on one engine, with a hardened network boundary as the default posture rather than something you assemble.

Side by side

Last LightOpenHands
Licence MIT, free Open source, free
Hosting Self-hosted only Self-hosted, or OpenHands Cloud / Enterprise
Model choice BYO across providers Full BYOM
Autonomous trigger Many webhook types, Slack, cron sweeps, CLI Issue label via Resolver, or headless mode
Built-in workflows Triage, review, build, security, health, explore, verify, chat One issue→PR pipeline you extend
Isolation Docker / micro-VM sandbox, default-deny egress firewall Sandboxed runtime
Token scoping Four downscoped per-run App token profiles Standard token
Approval gates Mid-run, wired to GitHub, Slack and dashboard In the loop, or review the PR
Interactive use None. It is a service, not a pair programmer Yes, CLI and IDE
Ecosystem Small and young Large, mature, well known

Where each one wins

What OpenHands does better

  • Maturity and scale. A much larger project, with the community, documentation and battle-testing that comes with it.
  • General purpose. It is an agent you can point at almost anything, not a repo-maintenance service.
  • Interactive and autonomous. Use it at your desk through the CLI or IDE, then run the same thing headless.
  • A managed cloud option if self-hosting stops being worth the effort.
  • A simpler mental model for the core job: label an issue, get a PR.
  • Broader integrations across tools and platforms.

What Last Light adds on top

  • A suite of distinct workflows, not one pipeline. Triage, PR review, the full build cycle, weekly health, weekly security, explore, verify, demo and chat, forkable out of the box.
  • Multi-source event routing. Many GitHub webhook types, Slack, and cron sweeps through one deterministic router, rather than a single issue-label trigger.
  • Approval gates as a built-in, mid-run primitive, wired to GitHub, Slack and the dashboard, and to the workflow graph itself.
  • An ownership-grade security boundary by default: a default-deny egress firewall plus four downscoped per-run token profiles.
  • Everything in the box, including the agent. Reasoning, bash, file I/O and network egress all sit behind one perimeter.

Which should you pick?

Choose OpenHands when

your need is "label an issue, get a PR, self-hosted", or you want one agent that works both at your desk and in automation. It is the more proven, lower-effort path, and a bigger project to bet on.

Choose Last Light when

you want the whole repo-maintenance suite as one purpose-built service rather than something you compose, and you want the sandbox, egress policy and token scoping to be the default posture rather than your integration work.

If you like the philosophy of one, evaluate the other. These are adjacent projects solving overlapping problems, and OpenHands has the longer track record.

Compare against something else