Skip to content

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:

.env
FEEDBOT_API_KEY=fb_live_...

Pull issues into the repo:

Terminal window
npx feedbot pull

This 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:

Terminal window
npx feedbot resolve ISSUE_ID "Fixed Blob download in Safari" --notify

resolve needs a key with the issues:write (or write) scope. --notify emails the users who reported the issue.

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.

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:

  1. gets the issues with get_agent_report, or with npx feedbot pull;
  2. 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;
  3. 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.

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:** …

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.