Agent reports & CLI
Not every agent speaks MCP. Feedbot gives you two file-based options that work with any agent. Both use the API, so they are available on Pro and Business.
The CLI is the feedbot npm package (Node 18+, no dependencies). Create an API key in Settings → API & MCP and put it in .env or .env.local, export it, or pass it with --key:
FEEDBOT_API_KEY=fb_live_...Pull issues into the repo:
npx feedbot pullThis writes one Markdown file per issue to .feedbot/issues/ (named <title>-<first 8 characters of the id>.md) and a README.md with the full agent-ready report. Files for issues that are no longer open are removed on the next pull.
pull only deletes files it wrote itself. It lists them in .feedbot-manifest.json in the folder and removes only stale entries from that list (in a folder pulled by an older CLI, without a manifest, only files matching the <title>-<id8>.md pattern). If the folder already has a README.md that the CLI did not write, the report goes to FEEDBOT-REPORT.md instead. Your own notes and any other files in the folder are never touched, so --dir can safely point at an existing folder. Older CLI versions deleted every .md file in the folder; update with npx feedbot@latest. Point your agent at the folder, for example: “Fix the issues in .feedbot/issues/README.md one by one and run npx feedbot resolve <id> "<what changed>" after each fix.”
When an issue is fixed:
npx feedbot resolve ISSUE_ID "Fixed Blob download in Safari" --notifyresolve needs a key with the issues:write (or write) scope. --notify emails the users who reported the issue.
Commands
Section titled “Commands”| Command | Scope | Description |
|---|---|---|
pull |
read |
Write issues to .feedbot/issues/. Flags: --bot, --dir, --status. |
issues |
read |
List issues. Flags: --bot, --status, --type, --json. |
report |
read |
Print the agent-ready report to stdout, e.g. npx feedbot report > feedback.md. Flags: --bot, --status. |
resolve <id> ["note"] |
issues:write |
Mark an issue fixed. Flags: --status (fixed, in_progress, wontfix, open; default fixed), --note, --notify. |
bots |
read |
List your bots and their ids. |
leads |
leads:read |
List leads. Flags: --bot, --q, --anonymous, --json, --csv (the CSV export, e.g. npx feedbot leads --csv > leads.csv). |
lead <id> lead|not-lead |
leads:write |
Mark a visitor as a lead (also sends it to your CRM webhook) or not a lead. |
tickets |
tickets:read |
List tickets. Flags: --bot, --status (open, in_progress, done, all), --type, --json. |
ticket <id> |
tickets:read |
Show a ticket with its comments and conversation link. |
ticket comment <id> "text" |
tickets:write |
Add an internal team comment. |
ticket resolve <id> ["reply"] |
tickets:write |
Close a ticket. With a reply, it is sent to the customer’s chat; --email also emails it, --close also closes the conversation. |
read and write keys work for every command (write includes everything). See scopes.
| Flag | Description |
|---|---|
--bot <id> |
Only one bot. |
--status <status> |
Issues: open, in_progress, fixed, wontfix or all; default open and in_progress. Tickets: open, in_progress, done or all; default open and in_progress. |
--dir <dir> |
Output folder for pull. Default: .feedbot/issues. |
--json |
Print JSON instead of a table. |
--key <key> |
API key. Default: FEEDBOT_API_KEY. |
--api <url> |
API URL. Default: FEEDBOT_API_URL or https://api.feedbotai.com. |
ticket resolve with a reply writes to a real customer. If an agent runs it, have it show you the reply first. The CLI sends an Idempotency-Key, so a retried command never sends the reply twice.
Add .feedbot/ to .gitignore if you don’t want issues in version control.
Claude Code plugin
Section titled “Claude Code plugin”The Feedbot Claude Code plugin bundles the MCP server (it reads FEEDBOT_API_KEY from your environment) and a feedbot skill. Ask Claude Code to “check Feedbot” or “fix what users report”, and the skill:
- gets the issues with
get_agent_report, or withnpx feedbot pull; - fixes them in report order with the smallest change that meets the acceptance criteria, and says so when an issue shouldn’t be fixed in code;
- after the fix is committed or confirmed, marks the issue fixed. It asks before notifying the users who reported it.
The skill can also work through tickets: it lists them, reads the conversation, drafts a reply and leaves notes as comments. It never resolves a ticket with a reply to a customer until you approve the exact text.
Agent-ready report
Section titled “Agent-ready report”GET /v1/reports/agent.md returns one Markdown document written as instructions for an agent. It takes the same filters as /v1/issues: botId, status, type, since, limit.
In the dashboard, use Copy for coding agent or Download agent.md on the Issues page or on a single issue.
The report starts with a short “How to use” note and a summary table, then each issue has:
- ID, type, status, number of reports with first and last dates, affected pages and a tracker link if you set one;
- a description;
- up to 5 user quotes with links to the source conversations;
- acceptance criteria.
## 1. CSV export fails in Safari
- **ID:** 3f6c…- **Type:** Bug (bug)- **Status:** open- **Reports:** 7 (first 2026-09-20, last 2026-09-27)- **Pages:** /app/reports
**What users said:**> "I click Export and nothing happens" [conversation](https://app.feedbotai.com/c/…)
**Acceptance criteria:** …Issue trackers
Section titled “Issue trackers”Each issue has a free-text external ref field. Put a GitHub or Linear issue URL there (in the dashboard, or with PATCH /v1/issues/{id} and externalRef) and it appears as the tracker link in the report.