The AI git toolbelt & terminal workstation.

Commits, changelogs, reviews, PRs, and a 16-view keyboard workstation — one binary. Seven AI providers including fully local Ollama. Works on every major platform.

npx git-coco@latest init
$ coco ui~/project
coco ui — browsing history, opening diffs, and chord-switching views
see workstation
~/coco $ features

Key Features

Start with the map, then jump into the workflows that matter to you

commands

AI-Powered Git Commands

Each command solves a specific problem: intelligent commits, automated changelogs, code recaps for standups, AI code reviews, and commit splitting for clean history.

$commit$changelog$recap$review$split
agent tools

Works with your AI assistant

Add coco to Kiro, Cursor, Claude Desktop, or VS Code and your assistant can draft commits, review changes, and write changelogs on its own. Read-only, bound to the repo you opened.

coco mcp4 tools
coco agent reviewjson
read-only · repo-bound
workstation

Terminal Workstation

A keyboard-driven Git workstation with 16 views — including a full stash workflow, tactile hunk staging, conflict resolution, reflog recovery, bisect, and recursive submodule drill-in — that works at any terminal width and brings every tool together in one surface.

coco ui
coco workstation — history view with commit graph and inspector
model routing

Dynamic Model Routing

Task-aware model selection picks the right model for each job. Fast models for commits, thorough models for reviews.

commit
fast
review
deep
changelog
deep
providers

Multi-Provider AI

Seven providers: OpenAI, Anthropic, Gemini, Mistral, Azure OpenAI, AWS Bedrock, and Ollama. Run fully local for complete privacy and zero API costs. coco itself collects no telemetry, and any usage stats it keeps stay local on your machine.

OpenAIconnected
Anthropicconnected
Geminiconnected
Mistralconnected
Azure OpenAIconnected
AWS Bedrockconnected
Ollamalocal
forge support

Multi-forge Git workflows

PRs, issues, and the triage workstation work across GitHub, GitHub Enterprise, GitLab, and Bitbucket Cloud. coco detects your forge and drives the matching CLI or API behind one consistent workflow.

GitHubgh
GitHub Enterprisegh
GitLabglab
Bitbucket CloudAPI

Conventional Commits & Commitlint

First-class support for Conventional Commits with automatic commitlint validation and intelligent retry logic.

type-enum
scope-case
subject-max-length
auto-retry on failure

Instant Boot & Disk Cache

The workstation paints in under 100ms. A per-repo disk cache serves history from the first frame.

<100ms
cachedcold
~/coco $ --help

Every command, intentionally crafted

Each command solves a real problem on its own. Pick the one you need, or use them all.

commit

Write your commits with AI

Generate intelligent commit messages from staged changes with optional Conventional Commits support and automatic commitlint validation.

$ coco commit

Key flags

  • -i, --interactiveOpen editor for review and editing
  • -s, --stage-allStage all changes and commit in one step
  • --conventionalForce conventional commits mode
  • --append [text]Add content to end of commit message
  • -t, --append-ticketAuto-append Jira/Linear ticket from branch
  • --open-in-editorOpen message in editor before committing

Dynamic model routing

coco supports dynamic model routing which selects the best model per task — a fast model for commits, a thorough one for changelogs and reviews. Works across fifteen providers: OpenAI, Anthropic, Gemini, Mistral, Azure OpenAI, AWS Bedrock, Ollama for fully local operation, plus OpenAI-compatible presets (DeepSeek, Groq, xAI, Together, Fireworks, OpenRouter, LM Studio, vLLM).

stdio MCP · 5 tools · read-only
~/coco $ coco mcp

Let your AI assistant use coco

Commit messages, code review, changelogs, and recaps, exposed as tools an agent can call. Two ways in: connect it to your editor over MCP, or pipe JSON to it from a script.

Pick the one that describes you

most people

You code with an AI assistant

Kiro, Cursor, Claude Desktop, VS Code with Copilot, Windsurf. Add coco once and your assistant discovers five tools it can call on its own.

$ coco mcp

add to your editor's MCP config

You're writing a script or a CI job

Send a JSON request on stdin, read a JSON envelope on stdout. No editor, no MCP client, no interactive prompts to work around.

$ coco agent review

reads stdin, writes one JSON envelope

Add it to your editor

One entry, no repository path. coco reads the workspace folder your editor is already reporting, so the same config works in every project you open.

~/.kiro/settings/mcp.json
{
  "mcpServers": {
    "coco": {
      "command": "coco",
      "args": ["mcp"]
    }
  }
}
coco mcp

coco MCP server started

coco_commit_draft
coco_review
coco_changelog
coco_recap
coco_condense_diff

Your assistant now calls these directly. Nothing else to wire up.

Then just ask

You talk to your assistant normally. It picks the tool and gets back structured data, not terminal output it has to guess at.

Commit what I just staged.

A title and body written from the real diff, already checked against your commitlint rules.

coco_commit_drafttitlebodyformattedvalidationErrors

Review this before I push it.

Structured findings with a severity, a file, and a line, so your assistant can act on them instead of parsing prose.

coco_reviewfindings[]

What shipped since the last tag?

Release notes grouped by theme, built from the commit range you name.

coco_changelogtitlecontent

Summarize what I worked on this week.

A written summary of a time window or a working tree, for standups and status updates.

coco_recaptitlesummary

Condense this large diff so I can reason about it.

A structurally condensed diff within a token budget. No LLM call, no API key needed in structural mode.

coco_condense_diffcondensedmetricsfilesIncludedfilesOmitted

What it will not do

It reads. It never writes.
No commits, no file edits, no pushes, no comments on your PRs. Every tool is annotated read-only, so your client can show you that too.
It stays inside the repo you opened.
One server binds to one Git root, checked against the workspace folders your editor actually exposes. Requests for anything outside it fail.
Every answer says where it came from.
Results carry a SHA-256 digest of their input and a provenance marker, so you can tell a real diff from context an agent handed over.

Scripting it instead? Start with the schema.

coco agent schema --task review prints the exact request and response shape. The guide covers every parameter, error code, and safety boundary.

Read the guide
~/coco $ ui

One surface for everything

A keyboard-driven Git workstation that lives in your terminal. All your tools, all your views, one screen.

coco ui — switching between history, status, branches, and diff views via chord navigation
chord nav

Keyboard-driven navigation

g + key chord navigation across all views — no mouse required.

16 specialized views

History, status, diff, compose, branches, tags, stash, worktrees, pull-request, PR triage, issues, conflicts, reflog, bisect, submodules, and changelog. Drill into any submodule with Enter — every view re-scopes to it.

Tactile hunk staging

Stage hunk by hunk with ● / ○ badges and ↑/↓ navigation — precise control over every commit, never the whole file by accident.

AI-assisted commits

Draft commit messages with AI right from the compose view.

PR workflows

Merge, approve, and comment on pull requests without leaving the terminal.

Fits any terminal

Down to an 80×24 tmux split, the panes fold to a single full-width view you Tab between — press v to peek the sidebar and snap back.

See the full workstation
~/coco $ prs

One workflow across every forge

coco detects your remote and dispatches through one forge adapter — gh for GitHub and GitHub Enterprise, glab for GitLab, and the REST API for Bitbucket Cloud, Bitbucket Server, Gitea, and Codeberg. Commands and workstation actions stay consistent across all seven.

Forge detection

No flags to set. coco reads your remote and selects the right CLI or API.

GitHub

Works out of the box — nothing changes.

gh
GitHub Enterprise

Same gh CLI, pointed at your instance.

gh
GitLab

Uses glab for merge requests and issues.

glab
Bitbucket Cloud

Uses the REST API — no extra CLI required.

API
Bitbucket Server

Self-hosted (Data Center). Map via forgeHosts config.

API
Gitea / Forgejo

Self-hosted instances auto-detected or mapped via forgeHosts.

API
Codeberg

Auto-detected from codeberg.org remotes. No config needed.

API

PRs & merge requests

coco prs lists and filters PRs/MRs with --json for pipelines. coco pr create opens a PR/MR with an AI-generated title and body.

Issues

coco issues lists, filters, and acts on issues across supported forges — same flags, same --json output.

Triage workstation

The full coco ui workstation — PR/issue triage, inspectors, and every per-row action — dispatches through the detected forge adapter.

AI descriptions

PR and MR titles and bodies are generated from your diff, so the same compose flow works wherever you push.

coco ui — GitLab merge-request triage
coco ui GitLab merge-request triage — browsing merge requests with a live inspector showing pipeline checks, approvals, and comments

GitLab merge-request triage in coco ui — draft, pipeline, and approval state with a live inspector. The same workflow and keys carry across all supported forges.

~/coco $ init

Get started

Get up and running in seconds. One command installs and configures everything.

Homebrew — no prerequisites
brew install gfargo/tap/coco
curl
curl -fsSL https://coco.griffen.codes/install.sh | sh
npm — or try it with npx, no install
npx git-coco@latest init

Then run any of these

One smart entry point, plus a sharp tool for each job.

$cocoSmart entryopens the workstation in a repo, the setup wizard on a fresh install
$coco commitAI commit messages from your staged changes
$coco changelogGenerate changelogs for any branch or range
$coco reviewCatch issues before you push
$coco uiThe full workstation — every tool, one screen
$coco initSetup wizard — pick a provider, set preferences
~/coco — coco ui
coco ui booting up — the workstation loads a repo's history, branches and diffs the moment you launch it

coco ui — your repo, the moment it boots

~/coco $ community

Community

Drop us a line on Discord or open an issue on GitHub. We're always open to feedback and suggestions.