contrib.console
local-first contribution console

Stay in the loop on every commit.

contrib.console is a local control panel for steering an AI through real open source contributions. It finds repos, makes one small commit at a time, and stops at each for your review. Your token and the worker never leave your machine.

the gist

A small, reviewed change. Then it stops.

The worker is built to be boring on purpose. Each run does one tiny unit of work and hands it back to you. No batching, no surprise pushes, no AI signature on the commit.

commit size
50 changed lines and 2 files, at most
review
every commit, before the next one
push & PR
manual, opened by you, as you
author
your git identity, no co-author
worker
Claude Code in an embedded terminal
why local

Why it runs on your machine.

Contribution tools that hold your token and push for you ask for a lot of trust. contrib.console keeps the blast radius inside one folder you can see.

token

It stays on disk.

Your token lives in dashboard/.env.local, read only by the dev server. It never reaches the browser or any third party. The repo ships an .env.example, never the real value.

worker

It runs on your hardware.

Claude Code runs in a terminal on your machine as its own process. The dashboard talks to it through plain JSON files in pipeline/, not a remote queue.

git

Nothing leaves until you push it.

Commits stay local and the worker is blocked from any network git call. You read each diff, approve it, and only then does the dashboard push and open the PR with your description.

the loop

Five steps, one of them is you.

Pick languages, approve repos.

Set your target tech and get repo suggestions with good first issues. Approve the ones worth your time.

Queue an issue.

Filter open issues by label, unassigned, and no linked PR. Send one to the worker.

The worker learns the repo.

It clones the repo, builds an architecture map and a contribution profile, then makes one small commit toward the issue.

Read the diff, approve or push back.

Each commit lands with a per-file explanation and an open-in-VS Code link. Request changes and the worker resumes on its own.

You open the PR.

Write the description yourself. The dashboard pushes the branch, forking if needed, and opens the PR as you.

first run

Clone it, add a token, run it.

A Vite app plus a worker host. The only secret you supply is a GitHub token, kept in a local file the build reads server-side.

# clone and install
git clone https://github.com/23f3001304/contrib.console.git
cd contrib.console/dashboard
npm install

# your token, kept local
echo "GITHUB_TOKEN=ghp_your_token" > .env.local

# start the console
npm run dev

Then open localhost:5173, go to the Terminal tab, and run claude. Set a schedule in Settings if you want it to start itself.