# 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.

- Source: https://verygood.ventures/blog/meet-unicoder/
- Published: 2026-11-04
- Author: Erick Zanardo
- Tags: AI, VGV, Developer Tools, Best Practices

---

![Animation of Unicoder, the VGV AI coding teammate, working on a pull request](/assets/images/blog/meet-unicoder/working.gif)

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](/playground/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](https://github.com/VeryGoodOpenSource) 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](https://github.com/VeryGoodOpenSource/very_good_cli/pull/1766) in Very Good CLI's MCP server.**

[![Unicoder's pull request adding a wall-clock timeout to Very Good CLI's MCP test tool](/assets/images/blog/meet-unicoder/very_good_cli_1766.png)](https://github.com/VeryGoodOpenSource/very_good_cli/pull/1766)

**[A `flutter-version-file` input](https://github.com/VeryGoodOpenSource/very_good_workflows/pull/498) for Very Good Workflows.**

[![Unicoder's pull request adding a flutter-version-file input to Very Good Workflows](/assets/images/blog/meet-unicoder/very_good_workflows_498.png)](https://github.com/VeryGoodOpenSource/very_good_workflows/pull/498)

**[An Android plugin update to the `suspend fun` signature](https://github.com/VeryGoodOpenSource/very_good_templates/pull/642) in Very Good Templates.**

[![Unicoder's pull request updating the Android plugin template to the suspend fun signature](/assets/images/blog/meet-unicoder/very_good_templates_642.png)](https://github.com/VeryGoodOpenSource/very_good_templates/pull/642)

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](/playground/unicoder/#waitlist). We'll reach out as alpha spots open, and we'd like to hear what you hand off first.

## Frequently Asked Questions

### What is Unicoder?

Unicoder is an AI coding teammate from Very Good Ventures that you install in your GitHub repositories as a GitHub App. You assign it issues, mention it in comments, and request its review, and it opens pull requests, reviews code, addresses feedback, fixes CI on its own pull requests, and triages new issues.

### Does Unicoder merge its own pull requests?

No. Every change arrives as a pull request that goes through your team's normal review, and someone on your team decides what gets merged.

### How is Unicoder different from a generic coding agent?

New repositories start with the VGV Best Practices preset, which bundles VGV's open source Claude plugins, installs the Flutter SDK and Very Good CLI, and gives the agent a library of foundations and features. The pull requests it opens follow VGV's layered architecture, Bloc conventions, Very Good Analysis, and testing practices, and teams can adapt every piece of the preset to their own conventions.

### Which model providers does Unicoder support?

You choose the model provider per repository. Claude, Gemini, and opencode are supported today. Every run records its tokens and cost, and a dashboard shows each task, what it did, and what it spent.

### How do I get access to Unicoder?

Unicoder is starting with a limited alpha. Engineering teams can <a href="/playground/unicoder/#waitlist">join the waitlist</a>, and we'll reach out as alpha spots open.
