makethisbetter
User feedback in your terminal. Your agent reads it, fixes it, ships it.
makethisbetter.dev ·
The bridge between your users and your agent's todo list.
Users submit feedback through the widget. AI triages it on the platform. This CLI pulls it into your terminal where you or your coding agent pick it up, fix it, and resolve it. The user gets notified when the fix ships.
User reports bug --> AI triage --> CLI pulls it --> Agent fixes it --> User notified
Install
npm (recommended)
npm install -g @makethisbetter/cli
Installs the precompiled binary for your platform (macOS/Linux/Windows, arm64/x64).
GitHub Releases
Download a prebuilt binary from GitHub Releases:
curl -f matters here: without it a wrong asset name writes GitHub's 404 page to
disk, and the next two commands cheerfully install it onto your PATH.
# macOS (Apple Silicon)
curl -fL https://github.com/makethisbetter/cli/releases/latest/download/makethisbetter-darwin-arm64 -o makethisbetter
chmod +x makethisbetter && sudo mv makethisbetter /usr/local/bin/
# Linux (x64)
curl -fL https://github.com/makethisbetter/cli/releases/latest/download/makethisbetter-linux-amd64 -o makethisbetter
chmod +x makethisbetter && sudo mv makethisbetter /usr/local/bin/
Assets: makethisbetter-{darwin,linux}-{amd64,arm64} and makethisbetter-windows-{amd64,arm64}.exe.
Go
go install github.com/makethisbetter/cli@latest
mv $(go env GOPATH)/bin/cli $(go env GOPATH)/bin/makethisbetter
go install names the binary cli (from the module path). The mv gives you makethisbetter.
Morning Routine
makethisbetter login # one-time OTP via email, no password
makethisbetter feedback list --project acme # what came in overnight?
makethisbetter feedback pick acme/FB-1 # claim it, get the full context
makethisbetter feedback pick acme/FB-1 --takeover # replace the current assignee
# ... your agent codes the fix ...
makethisbetter feedback resolve acme/FB-1 --summary "Fixed Safari export downloads." # mark shipped
Your Agent Reads JSON, Not Tables
Every command supports --json for machine-readable output. Point your agent at it:
makethisbetter feedback list --project acme --status received --json
[
{
"id": "FB-1",
"reference": "acme/FB-1",
"number": 1,
"project_id": "acme",
"project_handle": "acme",
"status": "received",
"labels": ["Bug"],
"priority": "high",
"description": "The checkout button does nothing when I tap it on my phone.",
"ai_structured_summary": {
"board_summary": "Checkout button unresponsive on mobile",
"summary": "Mobile reporters cannot complete checkout from the product page."
},
"page_url": "https://example.com/checkout"
}
]
ai_structured_summary is the full AI triage object; only two of its keys are
shown above. Every field the API returns is passed through verbatim.
makethisbetter feedback show acme/FB-1 --json # full detail + AI triage
makethisbetter feedback show acme/FB-1 --md # server-rendered markdown, cheapest tokens for agents
makethisbetter feedback pick acme/FB-1 --json # claim + return context
For native tool integration (no shell parsing), see:
- MCP Server -- Claude Code and Cursor call tools directly
- Skills --
/makethisbetter list, /makethisbetter pick inside Claude Code
Commands
makethisbetter login
Authenticate via email OTP. No password. Saves token to ~/.makethisbetter/config.json.
makethisbetter login
# Enter email: you@example.com
# Check inbox for login code
# Enter code: 123456
# Logged in
makethisbetter info
Current account and auth status.
makethisbetter feedback list
makethisbetter feedback list --project acme
makethisbetter feedback list --project acme --status received --label Safari --priority high
makethisbetter feedback list --project acme --sort priority
makethisbetter feedback list --project acme --limit 100
makethisbetter feedback list --project acme --json
| Flag |
Values |
--status |
received, in_progress, pending_release, closed |
--label |
Any AI-selected Project label name from the system pool |
--type |
Deprecated compatibility alias for --label |
--priority |
critical, high, medium, low |
--sort |
priority, created, updated |
--project |
Project handle (required) |
--limit |
Maximum feedback items to return, 1 to 200 (default: 50) |
--json |
JSON output |
makethisbetter feedback show <handle/FB-n>
Full details including AI triage analysis. --md prints the server-rendered
markdown (single source of truth, ideal for agents); --json prints the raw
fields.
makethisbetter feedback pick <handle/FB-n>
Claim a feedback item. Status becomes in_progress. Returns the full context so your agent knows what to fix. If another team member already owns it, the command returns a conflict; add --takeover to replace that assignee.
makethisbetter feedback dismiss <handle/FB-n>
Close with a reason.
makethisbetter feedback dismiss acme/FB-1 --reason not_planned
makethisbetter feedback dismiss acme/FB-2 --reason duplicate --canonical acme/FB-1
duplicate requires a Canonical Feedback in the same Project. not_planned
closes the Feedback without sending a Reporter Update.
makethisbetter feedback resolve <handle/FB-n>
Mark as shipped only after the change is available to reporters. A factual
Resolution Summary is required; --pr can additionally record the Pull Request.
makethisbetter feedback resolve acme/FB-1 \
--summary "Fixed Safari export downloads." \
--pr https://github.com/you/app/pull/87
When the Feedback has a Reporter Email, the platform generates a short Closing
Comment and sends the Reporter Update automatically.
makethisbetter project list
makethisbetter project list
makethisbetter project list --json
makethisbetter project show <handle>
Project details, including the widget api_key and board_url. signing_secret is only included for account admins; other roles see a (admin only) note instead.
makethisbetter project create <name>
makethisbetter project create "Acme" --handle acme --domain acme.com
--handle and --domain are both required. --domain is the bare hostname the
widget will run on (acme.com), not a URL and not a path.
Prints the new project, including its api_key and signing_secret. Requires account admin.
Configuration
~/.makethisbetter/config.json
{
"api_token": "token_xxx",
"api_url": "https://makethisbetter.dev/api/v1"
}
| Field |
Default |
Description |
api_token |
-- |
Set by makethisbetter login |
api_url |
https://makethisbetter.dev/api/v1 |
API endpoint |
Self-Hosting
Point api_url at your own instance:
{
"api_token": "token_xxx",
"api_url": "https://feedback.yourcompany.com/api/v1"
}
The platform backend is not open source yet — self-hosting docs will come with it. The hosted service lives at makethisbetter.dev.
Development
go build -o makethisbetter .
go test ./...
go vet ./...
License
MIT