Blame Today

today.blame由 blame.today 发布官方发布者v3.0.0更新于 Nov 2, 2026

Blame things on blame.today, the anonymous 'who do you blame today' board. Nostr, no account.

已验证Streamable HTTP可网页运行开发者工具沟通与协作

概览

AI 生成的概览

返回在 blame.today 匿名“今天你怪谁”看板上发布目标与投票的自助配方,由助手自行执行。

可以做什么
  • 获取 blame.today 配方:一段在客户端签名并发布 Nostr 事件的简短代码片段,以及所用中继列表。
  • 获取分数与 COUNT 统计配方,以及看板的“家规”。
  • 服务器本身不执行任何操作:助手需自行运行该片段,服务器不会代为发布或读取。
适用场景
当用户希望助手向 blame.today 看板发布匿名指责目标或投票,或想了解其计数与中继机制,又不想安装完整客户端时适用。
运行要求
位于 blame.today 的远程 streamable HTTP 端点;未声明需要账号、API 密钥、环境变量或请求头。助手需能运行返回的客户端代码片段,并能通过网络访问 Nostr 中继。
安装前请注意
配方生成的代码片段会签名并发布公开的 Nostr 事件,发布内容在开放看板上可见且无法撤回。该看板是开放的信息流,仅靠内容过滤把关,其计数为中继估算值,并非经过验证的投票统计。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Blame Today,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/today.blame%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "blame-today": {
      "type": "http",
      "url": "https://blame.today/mcp"
    }
  }
}

README

blame-web

The blame.today web client — the "raw firehose." A client-side Svelte + Vite app that talks straight to nostr relays: the vote path has no backend, no auth, no rate limit (events go direct to relays). A thin Cloudflare Worker fronts the static site to force https, redirect www -> apex, and serve the MCP pointer at /mcp. This is the open, canonical realization of blame; the iOS app lives in the sibling blame-ios repo.

Split out of blame-today/blame-mobile (the old iOS app + worker repo) so each surface is honestly its own thing — they share a brand and the pureblameapp nostr tag, but no code, build, or deploy.

check it out - blame.today

what it is

  • a blame target is a nostr kind 1 event tagged pureblameapp; a vote is a kind 7 reaction tagged e:<targetId> + pureblameapp. throwaway key per event.
  • the leaderboard is built from relay COUNTs (all-time + a 24h "hot" window), not by fetching events.
  • the News tab mines today's headlines client-side (compromise) into clickable suggestions.
  • content filter (profanity / PII / gibberish) is the only gate — it's an open firehose.

dev

Votes are signed once per click and retried with the same event id. A new target must be acknowledged before its opening vote is sent. After five failed attempts the board offers a retry with that same signed event. Queued and failed deliveries live only in the current tab; keep it open until pending votes finish.

Counts are relay estimates: the second-highest fresh report from distinct configured relays, separately for each target and window. Fewer than two reports means unavailable, shown as an ellipsis rather than zero. A live event or acknowledgement requests a new snapshot; it never adds to the snapshot, so overlapping delivery cannot count twice. A relay can correct its estimate downward. Samples older than 90 seconds are removed on a new reply or the next 45-second resync, including during silence. This is not an exact union across relays. NIP-45 filters the application tag and event kind but cannot filter reaction content. Incoming board events are separately checked for shape, application tag, canonical id and signature.

COUNT responses are unsigned relay claims. One dishonest relay cannot raise the estimate above every honest reported count; it can still influence the result within that range. Two dishonest relays can corroborate a false count. Partial coverage and unlimited signed voting remain part of this open board, so these estimates are not a verified vote census. One relay can accept a vote while its count awaits another response. Mine preserves the submitted topic. Old cached totals are discarded on reload; saved topics and ownership remain.

Each tab retains at most 1,000 remote targets plus its owned targets. New targets replace the oldest unowned remote target, so a full cached board still receives live topics. Incoming frames are limited to 128 KiB, with at most 1,024 frames / 1 MiB waiting for verification per relay. A relay that overflows that queue is disconnected and retried. Unanswered COUNT requests are capped at 12,000 across the pool and superseded requests are removed. These are client resource limits; they do not change which events relays accept.

npm installnpm run dev      # vite dev servernpm test         # vitest unit testsnpm run test:e2e # playwrightnpm run build    # -> dist/

deploy

Push to main → .github/workflows/deploy-web.yml builds dist/ and runs wrangler deploy, publishing to the Cloudflare Worker (blame-today, Workers + Static Assets) that serves blame.today. The worker (worker/index.js) serves dist/ as static assets, force-upgrades http → https, redirects www → apex, and serves the MCP inline at /mcp (worker/mcp.js). Needs CLOUDFLARE_API_TOKEN (Workers:Edit) + CLOUDFLARE_ACCOUNT_ID repo secrets. The /about prose lives in public/about/ and Vite copies it into dist/about/.

Migrated off GitHub Pages 2026-06-16 — the zone is on Cloudflare now and blame.today is a custom domain on the worker. A push touching only scripts/** or infra/** skips the rebuild.

infra (the Cloudflare config around the worker)

The CF "clicky layer" — DNS records, zone settings (HSTS, Always Use HTTPS), the www → apex redirect rule, and email routing (*@blame.today → gmail) — is declarative IaC in infra/ (OpenTofu). wrangler owns the worker code + the apex custom domain; OpenTofu owns everything else, each resource with exactly one owner. See infra/README.md.

来源:README.md,提交 7a104a9

工具

1

get_blame_recipe

Get the self-serve blame recipe

Get the self-serve recipe for blame.today, the anonymous 'who do you blame today' board. Returns a short client-side snippet (sign + publish a Nostr event) plus the relays, the score/COUNT recipe, and the house rule. You run it yourself — this server does not blame or read on your behalf.

无需输入参数。

版本历史

1
  1. v3.0.0最新Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。