Hosted for you · LangGraph · any model, via OpenRouter

An autonomous coding agent
that has to prove its work.

DJG Agent was created out of a need for a truly autonomous AI developer you can trust with your repositories. Simply provide a goal in plain English, and the agent independently plans the solution, writes the code, and executes your project’s local test suite. To ensure absolute production safety, a secondary model reviews the code before it ever reaches the main branch. DJG Agent runs on a private server of its own, set up and kept updated for you, and you plug in any model via OpenRouter.

  1. 1Planwrite_todos
  2. 2Buildsandboxed
  3. 3Verifyreal test suite
  4. 4Review gate2nd model
  5. 5Shipon green CI
A task running live — the agent's tool calls and their output, its summary, and the review gate's READY verdict

How a task runs

It’s a loop. The agent does the work, the gate decides whether that work earns a merge, and the gate is allowed to send it back as many times as it takes.

work

It builds in a box that can only see one repo

The agent works inside a throwaway Docker container with just the one repository mounted. A bad shell command can't wander into your other projects or your secrets. When it needs help it hands off to two helpers: one that can only read and investigate, and one that writes tests and has to actually run them before it's allowed to say it's done.

verify_and_ship

Saying “done” doesn't count

I don't trust the agent's word, so the gate re-runs your project's real typecheck, lint and tests itself, the same commands you'd run. Only a pass with an actual diff becomes a commit, on the task's own branch. If the agent left items on its todo list, the commit is held and the task goes back to finish them.

review

A second model reviews it, then you do

A different model reviews the branch against the exact point it forked from, runs the checks again in its own sandbox, and says READY or NEEDS_FIXES with findings. Then it waits for your look. What merges is the exact commit that was reviewed, and main only moves when GitHub Actions is green on it too.

“The agent saying done doesn’t mean it’s done.”

It learns from its own work

Most agents start every task from scratch. This one keeps notes, on each project and on its own mistakes, so the tenth task on a repo goes better than the first.

reflect

It stops and thinks after a miss

When the tests fail or the reviewer sends it back, the agent doesn't just try again. It writes down what failed, why, and the one thing to do differently, and starts the next attempt from that. It also sees what it already tried, so it doesn't repeat itself.

memory

Each project has its own memory

Every finished task leaves a short record: what was asked, what happened, what it cost, what the reviewer said. Once a day the agent reads the recent ones and keeps what held up, like how this repo runs its tests or which mistake keeps coming back, and drops the noise.

recall

“Have we seen this before?”

Months of tasks, transcripts and errors are searchable. When an error looks familiar, the agent can find the time it already solved it instead of starting from zero.

freshness

Memory that knows when it's stale

A remembered fact points at the files it came from. When those files change, the fact gets flagged as possibly out of date, so old knowledge doesn't quietly steer new work.

“A lesson is only trusted once the task that learned it ships.”

The console

Everything happens in one dashboard. You watch tasks and planning live, and if you open it halfway through a task you see what already happened instead of a blank page. It installs on your phone too.

Analytics — spend, outcomes, benchmarks against the previous two weeks, the review gate's own cost, and runs
Planning sessions and tasks share one sidebar, grouped by kind, filterable by repo, with anything waiting on you pinned at the top. Spend, outcomes and fix cycles are up front, then a row that says whether the agent is getting better than it was two weeks ago, and the review gate’s cost counted separately from the agent’s. Your remaining credit turns red under 15%, so you see it coming.
Analytics — per-role model usage with calls, tokens, latency, cost and cache rate, and tool-call reliability

See where the money actually went

Every role's real usage, straight from the router's own per-call ledger: calls, tokens, latency, cost, and how much came from cache. If a role is burning money, you see it here instead of finding out from the bill.

The consolidator's role card, listing the models verified to work and the ones verified to fail

Models get tested before you pin them

Some roles need strict tool calling and a forced response shape, and most models can't do both. Each role says which models passed its probes and which failed, so you find out on this page, not four minutes into a task.

Support roles — the classifier and the summarizer, each on its own cheap model

Cheap jobs get cheap models

Classifying a task or summarising a log doesn't need the model that writes your code, and paying coder prices for it is just waste. Every support role is pinned on its own and says what it actually needs.

The GitHub inbox — security alerts and Dependabot pull requests waiting for a decision

GitHub alerts become tasks

Security alerts, code scanning and Dependabot pull requests land in one inbox. Approve one and it becomes a task; alerts on the same package arrive as one item, not eleven. If the fix didn't close it, it comes back.

Settings — auto mode, with the deletes and questions it still always asks about

Hands-off, with lines it won't cross

Auto mode lets a task finish without you, project by project. It still stops for a delete that would lose work and for a question it needs you to answer, and the review gate and the budget don't change.

New in 0.9

The biggest release so far. Most of it came from actually running it every day on my own projects and fixing whatever got in my way.

It learns from a miss

After a failed attempt the agent writes down what went wrong and what to try next, then starts there. Fewer rounds of the same fix.

It keeps itself updated

Your server updates itself, but only when the agent is idle, so nothing is cut off mid-task.

Signed releases

Every release builds from a tag on a green main, pushes its images once by digest, and signs the list your server pulls from. I approve each one before it ships.

Catching problems before they become problems

The review gate got tougher. If a review didn't actually check the code, it doesn't pass. A task waiting its turn behind other reviews keeps its place instead of timing out, and your approval carries through a rebase that changed nothing.

Less busywork from GitHub

Dependabot alerts on the same package become one task, not eleven, and a task whose alert another fix already closed just says so and stops.

A “Needs you” list

Anything escalated or waiting on your merge approval sits in its own group at the top of the sidebar until it's done.

Planning Chat

Before something gets built, you can talk it through. Planning is its own agent with web search, a real browser and read-only access to your projects, but no way to change anything. When the plan is right, one click hands it to the build pipeline, and what planning cost is carried onto the task.

It picks the model per turn: an everyday one, a stronger one when the question gets hard, and a frontend seat for UI work so the plan is written by the model that will build it. Once a session steps up, a short follow-up won’t quietly drop it back down.

Starting a planning session — choosing the repository and the model route
  • Memory that builds upFinished tasks turn into per-project memory, and past work is found by meaning as well as keywords. A cartographer keeps a map of each codebase current.
  • A dollar cap per turnPlanning used to run uncapped. Then it spent $7 on a single 157-call turn. It has a cap now.
  • Map first, then look aroundIt reads the codebase map before it starts listing folders. One read instead of a dozen.

What the model can’t get around

This thing writes and runs code against your repos. The guardrails aren’t an afterthought, they’re most of the work.

A budget cap on every task

Checked after every model call, on the main agent and every helper, so a loop that goes sideways costs a number you picked, not whatever it wants.

The agent can't push to git

Its shell has no SSH key, no git credentials and no token, so a push from there has nothing to log in with. Only the gate pushes, after review, using a fine-grained GitHub token you create for just the repositories it should touch, handed to that one push and never to the agent.

Work can come straight from GitHub

The inbox picks up Dependabot PRs, security and code-scanning alerts, review comments and failing checks. Propose sends you an approve link; Auto just starts it. Either way it goes through the review gate and waits for your merge approval.

It asks instead of guessing

When it hits something gated, or it's genuinely unsure, the question shows up in the task stream, and your answer goes right back into the paused run.

The server decides what runs

Projects can only come from folders you allowed, checked after symlinks resolve. The commands the gate runs are the ones the server proposed, so nobody can slip a new one in through a request.

Nothing is a dead end

Escalated, stopped, out of budget or cut off by a restart, the whole state is saved, so resume picks up the same run instead of starting over.

Your own DJG Agent, hosted

DJG Agent runs on a private server of its own, in the region closest to you. It’s set up, kept updated and watched for you. You sign in and give it work.

$59.95 / month

What you get

  1. A server that is yours alone, at your own address, over HTTPS
  2. Your choice of region, from the US and Europe to Asia and Australia
  3. Every model through your own OpenRouter key, billed to you at cost
  4. Updates that arrive on their own, only while the agent is idle

Cancel any time · an OpenRouter API key

invite only, for now

How it starts

  1. Ask for an invite, and pick your address and region
  2. Your server is ready in about ten minutes
  3. The email it sends lets you choose a password and add your key
  4. Sign in and give it its first goal

The hosted version is in beta, so people are let in a few at a time.

Questions, ideas, help

There’s a Telegram group for DJG Agent. Ask how something works, get help when something goes sideways, or tell me what it should do next. I read everything in there, and feature requests that come up more than once tend to get built.

What changed, and what’s next

Every release comes with a changelog that says what changed and why. The newsletter is that, plus what I’m building next and what turned out to be a bad idea. I only send it when there’s something worth reading, and I never send anything else to this list.

I keep your name and email to send you the newsletter, nothing else. Never sold, never shared.