Git With Intent
v0.10.0 — AI-powered CLI for PR automation with approval gating
GWI automates the boring parts of pull requests. Merge conflict resolution, code review, issue-to-code generation, complexity scoring — with approval gating so nothing ships without your explicit say-so. Every destructive operation is hash-bound: if the patch changes after you approve, the approval is invalidated.
npm install && npm run build
export ANTHROPIC_API_KEY="..."
gwi autopilot <pr-url>
Every team has the same bottlenecks. Merge conflicts that take an hour to untangle. PRs sitting in review queues. GitHub issues that could be a working PR in minutes if someone would just write the code.
Copilot helps you write code in your editor. GWI operates at the repo level — it reads the issue, generates a branch, writes the code, opens the PR, and waits for you to approve. Or it resolves conflicts that have been blocking your PR for a week. Or it reviews your local changes before you even push.
Local review (gwi review --local) works without any API key — it's deterministic static analysis. No cost, no latency, no secrets required.
| Tool | What It Does | GWI Difference |
|---|---|---|
| GitHub Copilot | Suggests code in editor | Generates PRs from issues, resolves conflicts at repo level |
| Cursor / Windsurf | AI coding assistants | Repo-level automation, not editor plugins |
| Linear / Jira | Project management | Actually writes the code from issue descriptions |
| SonarQube | Static analysis | Fixes issues, not just reports them |
| Dependabot | Dependency updates | Full semantic conflict resolution, not just bumps |
graph TD
subgraph Input["Input Sources"]
issue["GitHub Issue"]
pr["Pull Request"]
conflict["Merge Conflict"]
local["Local Changes"]
end
subgraph CLI["gwi CLI"]
triage["triage"]
resolve["resolve"]
review["review"]
itc["issue-to-code"]
autopilot["autopilot"]
gate["gate"]
end
subgraph Engine["Workflow Engine"]
orchestrator["Orchestrator"]
runner["Step Runner"]
approval["Approval Gate"]
end
subgraph Agents["AI Agents"]
triageA["Triage Agent"]
coderA["Coder Agent"]
resolverA["Resolver Agent"]
reviewerA["Reviewer Agent"]
end
subgraph Storage["Storage"]
firestore[("Firestore")]
sqlite[("SQLite")]
end
issue --> itc
pr --> triage
pr --> resolve
pr --> review
pr --> autopilot
conflict --> resolve
local --> review
local --> gate
triage --> orchestrator
resolve --> orchestrator
review --> orchestrator
itc --> orchestrator
autopilot --> orchestrator
gate --> orchestrator
orchestrator --> runner
runner --> triageA
runner --> coderA
runner --> resolverA
runner --> reviewerA
runner --> approval
triageA --> firestore
coderA --> firestore
resolverA --> firestore
reviewerA --> firestore
orchestrator --> sqlite
Simple tasks route to fast/cheap models. Complex tasks escalate to powerful ones. A PR scoring 3/10 uses Gemini Flash. One scoring 8/10 gets Claude Opus.
| Agent | Model | Purpose | Complexity |
|---|---|---|---|
| Orchestrator | Gemini Flash | Workflow coordination | ○ 1-10 |
| Triage | Gemini Flash | Fast complexity scoring | ● 1-3 |
| Coder | Claude Sonnet/Opus | Code generation | ◆ 4-10 |
| Resolver | Claude Sonnet/Opus | Conflict resolution | ◆ 4-10 |
| Reviewer | Claude Sonnet | Review summaries | ◆ 3-7 |
| Foreman | Coordinator | Workflow management | ○ all |
| Slop Detector | Quality gate | Catches low-quality output | ◆ all |
| Infra | Infrastructure | Deployment operations | ◆ all |
| Command | What It Does | Needs API Key? |
|---|---|---|
gwi triage <url> | Score PR complexity 1-10 | ● Yes |
gwi resolve <url> | Resolve merge conflicts semantically | ● Yes |
gwi review <url> | Generate review summary | ● Yes |
gwi review --local | Deterministic local review | ○ No |
gwi review --local --ai | AI-powered local review | ● Yes |
gwi issue-to-code <url> | Create a PR from a GitHub issue | ● Yes |
gwi autopilot <url> | Full pipeline: triage, resolve, review, approve | ● Yes |
gwi gate | Pre-commit approval gate | ○ No |
gwi triage --diff HEAD~3 | Score complexity of recent commits | ○ No |
gwi explain <id> | Explain AI decisions for a run | ○ No |
gwi run list | List recent runs | ○ No |
gwi run approve <id> | Approve pending changes | ○ No |
stateDiagram-v2 [*] --> Pending : Run created Pending --> Running : Start execution Running --> AwaitingApproval : Patch ready AwaitingApproval --> Approved : User approves AwaitingApproval --> Rejected : User rejects Approved --> Committed : Push to remote Committed --> [*] Rejected --> [*] Running --> Failed : Error Failed --> [*]
- Read repo data
- Analyze patterns & complexity
- Generate patches
- Post review comments
- Commit changes
- Push to remote
- Merge pull requests
- Delete branches
SPIFFE ID for identity. Full audit trail at .gwi/runs/<runId>/audit.log.
Five Cloud Run services, all scale-to-zero (no traffic = no cost). Infrastructure managed by OpenTofu. Deploys via GitHub Actions only.
| Service | Purpose | Runtime |
|---|---|---|
gwi-api | REST API | ○ Cloud Run |
gwi-gateway | Agent-to-agent coordination | ○ Cloud Run |
gwi-webhook | GitHub webhook handler | ○ Cloud Run |
gwi-worker | Background jobs | ○ Cloud Run |
gwi-mcp-server | MCP tool server | ○ Cloud Run |
| Firestore | Operational database | ◆ Managed |
| Firebase Hosting | Web dashboard | ◆ Managed |
View full monorepo structure
cligwi commandapiREST APIgatewayA2A coordinationgithub-webhookwebhook handlermcp-serverMCP toolswebhook-receivergeneric webhooksworkerbackground jobsregistryworkflow templateswebReact dashboard
corestorage, billing, securityagentsAI implementationsengineworkflow orchestrationintegrationsGitHub connectorconnectorsdata connectorsforecastingTimeGPTsandboxsecure executionsdkTypeScript SDK
infra/OpenTofu (22 .tf files).github/CI/CD workflowsscripts/arv/20 readiness gatestest/contracts, goldens, e2e000-docs/internal documentation