Plant it in your repo.

Jardinero is a crew of always-on AI engineers. They watch your logs, reproduce what breaks in disposable sandboxes, and ship the fixes.

/ har·dee·NEH·ro / — “gardener,” in Spanish

Jardinero Factory Overview dashboard

The Factory Overview: every machine, every open instance, and the short queue that actually needs a human. If nothing needs you, nothing pings you.

  • Request Router
  • Log Reviewer
  • Linear Implementer
  • Fix Implementer
  • PR Maintainer
What it does?

One gardener, three jobs.

Jardinero runs a factory of small, focused machines. Each one watches a different door into your codebase, and they all ship the same thing: pull requests you can review over coffee.

The Night Watch

It reviews your production telemetry (Grafana logs and metrics) every few minutes, around the clock. Signals are scored against an investigation threshold: noise gets rejected with a reason, and anything real is reproduced in a sandbox and fixed. It even checks whether an open PR already covers the issue before writing a line.

Log Reviewer

The implementer

Assign a Linear issue to Jardinero and it goes to work: it scopes the task, builds it in an isolated sandbox, runs the tests, and hands back a PR that’s ready to review, and posts a link so you can watch it work in real time.

Linear Implementer Fix Implementer

The pruner

Tag @jardinero on a GitHub issue or pull request. It answers review threads with evidence, fixes failing checks, resolves conflicts, follows your repo’s conventions, and knows when a thread doesn’t need one more reply.

PR Maintainer
Always Online

4:03 a.m., on a Wednesday.

Every run reports in where your team already lives. Most end in a considered “nothing needed.” When something is real, you wake up to a fix, not a fire.

Jardinero App
2:07 AM

Log Review: Succeeded

One actionable candidate found: a 2.5× increase in router-state parsing errors after deploy. Two signals rejected as provider noise; one is already covered by open PR #4255.

Jardinero App
2:31 AM

Fix Implementation: Succeeded

Reproduced the router-state errors in a sandbox, patched the parser guard, and opened PR #4271. Focused regression tests: 21/21 passed.

Jardinero App
4:13 AM

PR Maintenance: Succeeded

Updated PR #1240: replied on both review threads, widened the flaky timestamp assertion, pushed. Focused tests green; CI running for the new commit.

Jardinero App
6:58 AM

Linear Implement: Succeeded

Picked up JAR-74 “Webhook retries hammer the ingest worker”: added exponential backoff with jitter, opened PR #4283 linked to the issue, and moved it to In Review. 14/14 tests passed.

When it’s genuinely stuck, it says so, once, and waits for a human. No retry storms, no forty-message threads.

How it works

Plant it once. It keeps growing.

1

Connect

Install the GitHub and Linear apps, hook up your telemetry, and point Jardinero at your repos. Run it on your laptop, or drop it on a server and share it with your team; run reports land in your Discord.

2

Let the machines run

Every job happens in a disposable sandbox (reproduce, fix, test), with a pool of them running in parallel. Nothing touches your branches until the work is green.

3

Review and merge

You stay the gardener-in-chief. Jardinero ships PRs; anything that needs a person (an exhausted retry, a judgment call) waits quietly in a small “requires attention” queue.

Open Source

Yours, root and stem.

Every big lab runs a private fleet of coding agents. Jardinero is the fleet you can fork: the same always-on engineer we run on our own codebase, released in the open.

Self-host anywhere

Your laptop, your server, your rules. Bring your own keys.

Nothing hidden

The prompts, the workflows, the machines: it’s all in the repo.

Built in the open

Issues, roadmap, and contributions welcome under LuxorLabs.

Who’s behind it?

Grown at Tenki.

Jardinero is built by Tenki, part of Luxor, and it tends Tenki’s own codebase every day. It spins up Tenki sandboxes to reproduce and test each change: fast, isolated, and gone when the job is done.