Skip to content

Feedback → issues

Issues labelled feedback are where feedback is remembered: each links the original messages, and later messages in the same thread are added as comments.

channel starts an issue added as a comment
Matrix a message that mentions the bot any later message in the same thread
Bluesky thread, mentions any message later messages in the same thread
Bluesky search, author never (read them for the overall mood) —
GitHub Discussions never (agents file what’s actionable) —

Never, on any channel:

  • [agent] messages (accounts listed in agents, or your own 🤖 reports) don’t start an issue, even when they name the bot. They’re still added as comments to an issue that already exists.
  • Private Matrix rooms go into a repo’s issues only if the room’s topic names that repo.

Each issue quotes the messages with author, date and link. Text is made inert: @names don’t ping GitHub users, and HTML comments can’t hide text.

Every quoted message carries a hidden marker (<!-- feedbai:item=… -->). Before filing, feedbai reads the repo’s feedback issues and comments, so a message is never filed twice. Overlapping runs are safe: schedule it as often as you like.

The hosted hub (nothing to run; invite-only for now, ask in #feedbai): install the feedbai GitHub App on the repo (it can write issues and read feedbai.config.json, never your code), and commit feedbai.config.json. Every 10 minutes the hub files from the channels it can read (public Matrix rooms its bot is in, Bluesky threads), using its own accounts. See the hub.

By hand or from an agent:

Terminal window
feedbai issues --dry-run # what would be filed
feedbai issues # file it; default window --since 1d

It needs a GitHub token (GH_TOKEN, GITHUB_TOKEN, or a gh login) and the repo (GH_REPO, GITHUB_REPOSITORY, or the git remote).

GitHub Actions, with your own bot: copy .github/workflows/feedbai.yml (hourly, feedbai issues --since 2h) and add the bot’s secrets to the repository: FEEDBAI_MATRIX_TOKEN, FEEDBAI_MATRIX_USER. For Bluesky mentions, also pass FEEDBAI_BLUESKY_IDENTIFIER and FEEDBAI_BLUESKY_PASSWORD in the workflow’s env. Without a Matrix token the workflow skips, so it doesn’t run alongside the hub.

When a feedback issue is fixed (closed by a pull request or commit, e.g. “Fixes #42”, or labelled fixed), the hub replies once where the feedback was given, in the same thread:

🤖 This is fixed, thank you for telling us: https://github.com/you/repo/issues/42

and notes the reply on the issue. Closing it any other way (answered, duplicate, not planned) sends nothing. It’s the same short text every time, never written by a model or copied from anyone’s message. Matrix for now (the hub’s bot must be in the room, which it is if it filed the message); Bluesky and feedback records next. Only issues closed in the last week are answered, so turning it on never answers old ones in a burst. To turn it off, set "replies": false on the project in feedbai.config.json.

The hub’s automatic filing copies every message that mentions its bot, with no judgment. With an agent in the loop (architecture), the project’s own agent decides what becomes an issue:

Terminal window
feedbai triage > plan.json # a model proposes: kinds, issues to file, ✅ to add
feedbai triage --apply plan.json # plain code acts: files the issues, reacts ✅
  • The model is one slot, any OpenAI-compatible API: OpenRouter, a local model, or a provider’s key (FEEDBAI_TRIAGE_ENDPOINT, FEEDBAI_TRIAGE_MODEL, FEEDBAI_TRIAGE_KEY). Without one, nothing is filed: triage in an agent session instead (feedbai, then feedbai file), with whatever agent you already use.
  • It follows the project’s guidelines, .feedbai/guidelines.md, written by its maintainers (ours).
  • It can’t do anything but propose. It sees numbered messages, never links. Its answer is checked: only messages it was given, no bots’ messages, known kinds, plain-text titles, at most 5 issues per run. Anything else is dropped. Acting on the plan is plain code (feedbai file, feedbai react).
  • In CI, the two steps run in separate jobs with different powers, and with no secrets to create: .github/workflows/feedbai-agent.yml. Read → triage (a model, no secrets) → act (plain code, no model). GitHub provides the token for issues; the model’s key, if any, is the only secret (in the triage job only); for the Matrix room, the read and act jobs prove to the hub which repository they are (a short-lived token signed by GitHub, id-token: write), and the hub’s bot reads and ✅s for them, in rooms whose topic names the repository (github.com/owner/name, the room admins’ consent).
  • Set "filing": "agent" on the project in feedbai.config.json so the hub stops copying mentions for that repo; it still posts the “This is fixed” replies.

Show your project on feedbai’s home page

Section titled “Show your project on feedbai’s home page”

Set "listed": true on the project in feedbai.config.json (public repository, GitHub App installed) and it appears in “The loop, live” on the home page: its name, the kinds of channels it listens to, and how many feedback issues were filed and fixed in the last 30 days, linking to them. Never room names, queries or anything people wrote. Off by default; remove the line to leave.