Meet Unicoder: An AI Coding Teammate for Your GitHub
An AI coding teammate that opens pull requests the way a VGV engineer would. The waitlist for the limited alpha is open today.

Every engineering team has the same pile of issues. A screen needs a new empty state. A repository method needs pagination. A test suite needs coverage for an edge case someone found in production. Each one is clear and small. Each one still costs an engineer a context switch, a branch, a round of CI, and a review.
Coding agents promise to take that pile off your plate. In our experience, the hard part was never getting an agent to write code. The hard part is getting code back that your team would have written. That gap is why we built Unicoder. Today we’re introducing it and opening the waitlist ahead of a limited alpha.
What Unicoder is
Unicoder is an AI coding teammate that lives in your GitHub repositories. You install it as a GitHub App, and from then on you work with it the way you work with anyone else on the team.
- Assign it an issue. It reads the issue, the repository, and your conventions, then opens a pull request that closes it.
- Mention it in a comment. Describe the change in plain language and it drafts the work.
- Request its review. It leaves inline comments tied to the diff. Once every thread it opened is resolved, it approves.
- Ask it to address feedback. It works through the open review comments and pushes new commits.
- Let it handle the upkeep. It can fix failing CI on its own pull requests, rebase branches when the base moves, and run a first-pass triage on newly opened issues.
Before Unicoder pushes anything, it runs your safeguards. Teams configure the commands that matter to them, such as dart format, flutter analyze, and flutter test. When a check fails, the agent gets the output and tries again. If it still can’t get the check green, it stops and tells you why on the pull request.
Unicoder also respects your budget. You choose the model provider per repository, with Claude, Gemini, and opencode supported today. Every run records its tokens and cost, and a dashboard shows each task the bot has run, what it did, and what it spent.
What Unicoder is not
We’ve worked with enough engineering teams to know that clear limits build more trust than broad promises. So here is where Unicoder stops.
It is not a replacement for your engineers. Unicoder takes on well-scoped work so your team can spend its attention on the problems that need judgment. Someone on your team still decides what gets built and what gets merged.
It is not another tool to learn. There is no new editor, no chat window, and no prompt library to maintain. If your team knows how to assign an issue and request a review, they already know how to use Unicoder.
It does not merge its own work. Every change arrives as a pull request that goes through your normal review. Unicoder fixes CI only on pull requests it opened, and it only updates a teammate’s branch when someone asks or when your team turns that on.
It is not a generic coding agent with a nicer wrapper. This is the part that matters most.
The difference is the playbook
A general-purpose coding agent knows a lot about code in general. It knows nothing about how your team builds software. Left alone, it will happily put business logic in a widget, skip the tests, or invent a state management pattern your codebase has never seen. The code compiles. Then your senior engineers spend their review time teaching the same lessons over and over.
Very Good Ventures has spent years building Dart and Flutter apps alongside product teams of every size, from startups to global brands. Over that time, we wrote down what works. Layered architecture with a clear boundary between data, domain, and presentation. Bloc conventions that keep state predictable and testable. Strict static analysis through Very Good Analysis. Thorough tests as a default, not an afterthought. That playbook is how every VGV engineer works on every client project.
Unicoder carries that playbook into every pull request it opens. New repositories start with the VGV Best Practices preset already in place. The preset bundles our open source Claude plugins, which encode VGV practices as skills and review agents. It installs the Flutter SDK and Very Good CLI so the agent can format, analyze, and test its own work. It also gives the agent a library of foundations and features, so it reuses battle-tested code instead of writing every building block from scratch.
The effect shows up in review. When Unicoder opens a pull request, the structure looks familiar. The bloc follows the conventions. The tests exist and cover the cases a VGV engineer would cover. The reviewer’s job shifts from correcting the approach to checking the details.
Your codebase has its own conventions too, and Unicoder adapts to them. Every piece of the preset can be trimmed or replaced per repository. Teams can define specialized agents with their own instructions and tooling, such as a Flutter agent for the app and a docs agent for the documentation. A configuration file on a branch can override the setup for a single run. The VGV playbook is the starting point, and your team decides how far to take it.
Built by the team that uses it
We build Unicoder with Unicoder. It reviews our pull requests, keeps our branches current, and fixes our red checks when we ask. Many of the features on the list above exist because we hit the friction ourselves and wanted the bot to absorb it.
Unicoder also works on our open source projects today. Since late May, it has opened 123 pull requests across 13 repositories in the Very Good Open Source organization, and our maintainers merged 115 of them. The work spans the tools many Dart and Flutter teams already depend on. A few examples:
A wall-clock timeout for test runs in Very Good CLI’s MCP server.
A flutter-version-file input for Very Good Workflows.
An Android plugin update to the suspend fun signature in Very Good Templates.
Every one of those pull requests went through the same public review as any contribution from our team. You can read the diffs, the review threads, and the follow-up commits for yourself.
That daily use shaped what we chose to leave out as much as what we put in. We kept humans in charge of merging because we want to own what ships. We put cost on every run because we wanted to know what each task was worth. We made the playbook the default because generic code was the first thing we got tired of reviewing.
Join the waitlist
Unicoder isn’t open for sign-ups yet. A limited alpha comes first, with broader availability to follow. Starting today, engineering teams can register their interest and secure a place in line. We’re looking for teams who want an extra pair of hands on their backlog and care about the quality of what comes back.
Join the waitlist. We’ll reach out as alpha spots open, and we’d like to hear what you hand off first.
Get our insights
Get the next post in your inbox, written by the team that shipped the work.
From the VGV unicorns










