Skip to main content
Glama
hasna
by hasna

Open Feedback

Reusable feedback collection for Hasna-coded apps.

Open Feedback provides a small HTTP API, TypeScript SDK, CLI, MCP server, and local JSONL storage so apps can collect product feedback without standing up a database first. The local project slug is open-feedback; the GitHub repository is hasna/feedback.

Install

bun add @hasna/feedback

For local CLI usage:

bunx @hasna/feedback init
feedback serve --port 8787

Related MCP server: Enhanced Interactive Feedback MCP Server

HTTP API

Start the API:

feedback serve --host 127.0.0.1 --port 8787

Set FEEDBACK_API_TOKEN to require bearer-token auth for API requests:

FEEDBACK_API_TOKEN="$YOUR_TOKEN" feedback serve

Submit feedback:

curl -X POST http://127.0.0.1:8787/v1/feedback \
  -H 'content-type: application/json' \
  -d '{
    "appId": "my-app",
    "message": "The billing screen should show the invoice PDF sooner.",
    "kind": "idea",
    "tags": ["billing"]
  }'

Useful endpoints:

  • GET /health

  • POST /v1/feedback

  • GET /v1/feedback?appId=my-app&limit=50

  • GET /v1/feedback/:id

  • PATCH /v1/feedback/:id with { "status": "triaged" }

  • GET /v1/stats

  • GET /v1/export.jsonl

SDK

import { createFeedbackClient } from "@hasna/feedback";

const feedback = createFeedbackClient({
  baseUrl: "http://127.0.0.1:8787",
  token: process.env.FEEDBACK_API_TOKEN,
});

await feedback.submit({
  appId: "my-app",
  message: "Export fails after selecting a date range.",
  kind: "bug",
  severity: "high",
  context: {
    route: "/reports",
    version: "2026.07.01",
  },
});

For in-process server apps, use local storage directly:

import { LocalFeedbackStore } from "@hasna/feedback/storage";

const store = new LocalFeedbackStore();
await store.createFeedback({
  appId: "my-app",
  message: "Add CSV export.",
});

CLI

feedback init
feedback submit "Add export history" --app my-app --kind idea --tag reports
feedback list --app my-app --limit 20
feedback show <id>
feedback status <id> triaged
feedback stats
feedback export --format jsonl

Use --api-url and --token to target a remote Open Feedback API instead of local JSONL storage.

MCP

Run the MCP server:

feedback-mcp

Available tools:

  • submit_feedback

  • list_feedback

  • get_feedback

  • update_feedback_status

  • feedback_stats

Storage

By default, Open Feedback writes JSONL to:

~/.hasna/feedback/feedback.jsonl

Override the directory with FEEDBACK_DATA_DIR.

App Integration

See docs/app-integration.md for browser, server, CLI, and MCP integration examples.

Development

bun install
bun run typecheck
bun test
bun run build

Security

Open Feedback redacts common credential patterns and sensitive metadata keys before storing feedback. Treat feedback exports as potentially sensitive product data. Do not commit feedback JSONL files or API tokens.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hasna/feedback'

If you have feedback or need assistance with the MCP directory API, please join our Discord server