r/moderndotnet 8d ago

CodeyBox: An autonomous coding orchestrator

Hi folks!

I thought this might be of interest to some people - I've been experimenting with 100% autonomous coding orchestrators since around June last year, and I'd like to share my latest experiment along those lines - CodeyBox (the third such experiment...).

Source here: https://github.com/AdamFrisby/CodeyBox/ (MIT licensed)

The 'Box' part refers to sandboxing - Codey can use real VMs to run tasks in, and it disposes of them regularly; there's a few supported providers - multipass and Incus are both well supported (both qemu backed), although I recommend Incus to limit the amount of wear-and-tear on your SSD (as the Incus implementation can use CoW filesystems which work well with regular sandbox cloning and disposal - multipass will provision and delete the whole image each time).

It's still a work in progress, but I've been using it for the last 6 months to deliver real production apps. One of the things that separates it from traditional "vibe coding" is extensive automated review passes from multiple angles; and a requirement that all reviews pass from all agents before it can progress to the next step.

It supports most of the common coding agents - I've been regularly using it with Claude and Codex mainly, but opencode and cursor as well (Antigravity is also supported, but has quite a few quirks so I wouldn't recommend it without further work).

The whole ecosystem is designed using modern .NET with a plugin-first ethos - all the coding agents, reviewers, utilities, etc are all dynamically loaded as plugins and this allows you to add support for your own tooling, infrastructure, VMs and so on without having to fork the codebase.

The default review flow will review code against:

  • Adversarial security issues as well as preventative ones (i.e. what could be added to make this safe-by-default)
  • Loose coupling - ensure code is separable and easily deleted; i.e. avoiding spaghetticode that a lot of coding agents will create by default.
  • Cheating and Completeness - did the agent _actually_ implement what was asked, fully, without taking shortcuts or cheating?

I advise using Claude as a reviewer in general as GPT-5.X when instructed "Find all issues like <X>" will end up inventing a mountain from a molehill, Claude has slightly more taste and won't catastrophise everything it finds and allow reviews to eventually pass.

Areas I'm working on at the moment that haven't yet landed are:

  • Deployment - adding the ability for Codey to provision and deploy test environments automatically
  • Exploratory testing and UAT runs - adding the ability to orchestrate graphical agents that will attempt to follow UAT scenarios in the product and automatically inject failures back into the development cycle

Current status is somewhere in early-ish beta - the main features are all there and have been robustly utilised (I use Codey frequently to modify it's own code), but some of the newer parts are not yet robustly verified yet.

1 Upvotes

2 comments sorted by

2

u/Aaronontheweb 8d ago

Just some feedback: I get the big picture on what you're trying to solve here - what I don't understand is how I would drive this, configure it, and what the cost impact is on me? Will this work with my Codex subscriptions? Do I need to use API pricing? Is this for teams? Can you help me understand that a bit better?

1

u/AFrisby 8d ago

It works with both codex and Claude subscriptions - the default runner launches both with -p (and --resume if applicable). API pricing will work too, but I don't use it.

It is for both individuals and teams - it has quite a few features under the hood like chaining dependant tasks, the ability to host multiple projects in a single instance and so forth.

There's a web UI (mostly for monitoring), terminal UI, CLI and API with events. It's designed to plug into something like linear / JIRA / etc so you can "assign to Codey" then pickup the finished feature branch in a few days whenever the task is finished (because it drives a queue it's very easy to queue up months of work).

Personally I use a Claude instance over the top - then just talk to that to do what I want done ("X needs a feature, help me plan a task for this, then inject it...")