cd /news/ai-agents/a-local-open-source-software-factory · home › topics › ai-agents › article
[ARTICLE · art-170121] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

A local, open-source software factory

Culler, an open-source project factory from developer vinchenkov, runs locally on a Mac and coordinates five agent roles — Strategist, Arbiter, Worker, Verifier and Packager — to propose, execute and review work on a user's own repositories through any AI provider. The system runs each agent in a sandbox, keeps host services and a dashboard at 127.0.0.1:7333 on the Mac, and routes model requests through a proxy so AI provider credentials never reach the agents, with a resident daemon dispatching one tick every 60 seconds by default. Culler installs via a curl script from its GitHub repository and stores state in a single SQLite database that only its Go-based Mission Control CLI writes to.

read5 min views3 publishedNov 15, 2026
A local, open-source software factory
Image: Michielbdejong (auto-discovered)

Software factory at home

Culler is a project factory that runs on your own Mac. You own the factory, the code, and the final say. Its agents work toward your vision, on your repositories, through any AI provider.

Features · Install  ·  The factory line  ·  Architecture  ·  Security

Attention is sacred they say. Culler helps build projects with that in mind.

You define a vision that states your project's open-ended, high-level goal and Culler proactively proposes and submits high-leverage work toward your stated intents.

Additionally, you can define new work yourself or with the help of Collie, your Culler assistant.

You can review, propose, reject, and otherwise cull work as agents move tasks along the factory line.

You can import an existing project or start one from scratch.

Five roles run in order, with one agent run at a time for each Project.

  1. Strategist proposes high-leverage task candidates to advance your vision.
  2. Arbiter judges each proposal and promotes the most effective one.
  3. Worker works the task in its own repository copy and submits one commit.
  4. Verifier checks the work against acceptance criteria and asks Worker to correct any gaps.
  5. Packager creates areview packet meant for a human mind.

One packet for each decision.

Proactive work. Culler does work in between your decisions.

Illustrative review packets. Maintain effective command of your projects by never losing picture of them.

Openwiki. Culler creates and maintains a wiki for each project, maintained by a scheduled agent named Scribe. It serves three purposes:

  1. Acts as index into the repository's ground truth for agents to enable more efficient search.
  2. Acts as a knowledgebase to help the Strategist prioritize work.
  3. Provides a viewer so you can re-familiarize yourself with your project as it continually develops.

AgentsView. A trace viewer for agent observability.

Prepared environments. When you start a project, the setup agent prepares the Project dependencies and reports each environment limit.

Tried and trued harnesses. Culler leverages frontier lab and community vetted harnesses (Codex, Claude Code, OpenCode). Any gains they acquire, Culler acquires in subsequent releases.

Multiple Projects. Different Projects run at the same time.

Discord Integration. Keep in tandem when you're away from your work device. Talk with Collie from Discord and get alerts about blocked tasks. Optional.

curl -fsSL https://raw.githubusercontent.com/vinchenkov/Culler/main/install.sh | bash

The terminal setup has four main steps:

  1. Installs dependencies
  2. Connect an Agent
  3. Start Culler
  4. Open your dashboard

Setup asks for your approval before it starts Culler services. Then you add your first Project in the dashboard.

Each agent runs in a sandbox. Host services and the dashboard run on your Mac. A proxy ensures AI provider credentials don't reach agents.

One program writes to the db.

  • mc (Mission Control) is the Go command cli for Culler agents. It owns dispatch, and mission control state management. It is the only writer of the db. It is agent facing, not intended for direct interaction by users.
  • The db is one SQLite database in a Docker named volume. Triggers and CHECK constraints refuse illegal states.
  • The resident is the host daemon. It runs one dispatch tick every 60 seconds by default. It starts the containers that that need to run next. Its provider proxy adds the provider credentials to each model request.
  • The dashboard is the web interface at127.0.0.1:7333 . It runsmc for each db read and write.
  • Agent containers start fresh for each run. The runner starts the agent harness with the Project tools. Each run works in a fresh source workspace of the Project repository at/workspace/source . A container holds a temporary Culler token and no provider credentials. The Project home at/home/agent and the/cache folder carry over between runs.
  • The macOS Keychain holds the provider credentials.mc reads them on the host for the provider proxy.
  • AgentsView shows the trace of each agent session at127.0.0.1:7334 .
  • OpenWiki shows the wiki of each Project. The dashboard serves it at127.0.0.1:7335 .

launchd keeps the three host services alive: the resident, the dashboard, and AgentsView.

All agents run in sandboxed environments via Docker Desktop.

Process isolation — agent containers run in the Docker Desktop Linux virtual machine, with every root privilege dropped.

Filesystem isolation — only Project and Culler administrative folders are mounted into containers. No other host files are touched.

Non-root execution — agents run as the unprivileged user 10002

Per-run containers — each pipeline run and setup operation gets a new container, and each Collie conversation gets its own.

Culler allows for the following at the moment:

  • Agent containers have open internet access.

  • Agent containers can reach any service on the loopback address of your Mac. Culler's own services require a token or a secret path.

  • A Mac with Apple silicon.

  • Docker Desktop, installed and running. Setup checks it but does not install it.

  • Git, mise, and Bun. The installer installs each one that is absent.

Culler is in early release.

For v1 the targets are:

Particularly Strategist/Arbiter and Packager provide most of Culler's distinct agent value.

Benchmark and run GEPA (https://github.com/gepa-ai/gepa) optimization against each agent's directive.

Give agents the ability to query data and leverage capabilities from additional services.

Allow Strategist to seed work from said connected data sources, such as Gmail, Slack, Linear, etc.

Have Scribe use supplemental data sources to help curate the project's OpenWiki knowledgebase over time to better develop strategy.

Instead of Strategist alone proposing work, define custom agent roles. Maybe roles like: Trimmer - to identify unused code, Optimizer - to target performance enhancement, etc.

Just make Culler more pleasant and reliable.

── more in #ai-agents 4 stories · sorted by recency
── more on @culler 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/a-local-open-source-…] indexed:0 read:5min 2026-11-15 · —