Listen to GitHub

CastReader reads GitHub issues, pull requests, READMEs, and discussions aloud with natural voices — skipping diffs, timeline events, and automated bot noise.

100% FreeIssues · PRs · READMEs · DiscussionsWord-Level Highlighting40+ Languages
github.com / acme/api-gateway
Open#1283 · 并发压力下限流器误拦截正常请求
kevin-merge added labels `bug` `high-priority` · 3h ago
Kktanelicommented 2h ago

我追到了 token-bucket 实现的问题 —— Redis INCR 与过期重置不是原子操作, 高并发下两个请求都认为自己拿到了最后一个 token。修复要么用 Lua 脚本, 要么改用带 TTL 保护的 INCRBY 重写。

rate-limiter.ts · 4 additions, 1 deletion
- await redis.incr(key);
+ await redis.eval(TOKEN_BUCKET_LUA, 1, key, now);
1.5x

只读评论正文 — 跳过代码 diff 和时间线事件

How CastReader Works with GitHub

Built for the way developers actually read — comments first, code on demand

Diffs Announced, Not Read

🔊 Code Blocks Get a Beat, Not a Spelling Bee

GitHub comments mix prose and code constantly — diff blocks, inline code spans, shell commands. CastReader announces 'code diff, 4 additions 1 deletion' once and moves on, instead of reading every bracket and semicolon. Your ears thank you.

Code diff handling

Timeline Events Skipped

Reads Comments — Not 'Added labels bug, high-priority'

Issues and PRs are half timeline noise: label changes, assignees, merge events, bot comments, CI status updates. CastReader's GitHub extractor reads only the human comment bodies in chronological order.

Timeline events skipped

Works on All Views

Issues, PRs, Discussions, READMEs

Same one-click Listen button on issue pages, PR conversations, PR diffs (reads review comments), Discussions, and rendered READMEs. Works on github.com and most GitHub Enterprise Server instances.

GitHub view coverage

Per-Comment Listen

Pick a Single Comment, Not the Whole Thread

Sometimes you want that one long design comment read aloud, not 47 replies. CastReader puts a Listen button next to every comment body — click one to hear just that one.

Per-comment Listen button

Frequently Asked Questions

Everything you need to know about listening to GitHub with CastReader

Does GitHub have a built-in read-aloud feature?

No. GitHub has no text-to-speech for issues, PRs, or READMEs. CastReader adds a 🔊 Listen button on every comment and README so you can hear any discussion read aloud for free.

Does it read code diffs out loud?

No — and that's on purpose. Reading a diff character-by-character ('plus await redis dot eval open paren...') is useless. CastReader announces 'code diff, N additions M deletions' and moves on. The surrounding review comment, which is what you actually want to hear, reads normally.

Does it skip bot comments and timeline events?

Yes. Dependabot, GitHub Actions summaries, 'added labels', 'assigned to', 'merged into main' — all filtered out by default. You can toggle individual categories on in CastReader settings if you want them read.

Does it work on private repos and GitHub Enterprise?

Yes for private repos — CastReader reads the rendered page in your logged-in browser, so any repo you can access normally, it can read. GitHub Enterprise Server (on-premises) typically works too, since the HTML structure is the same as github.com.

Can it read a rendered README?

Yes. Open any repo's README view and click Listen — CastReader reads the rendered markdown: headings, paragraphs, lists, and link text. Code fences are announced and skipped just like in comments.

What about PR review comments embedded in the diff?

On PR Files Changed view, CastReader reads the review comment threads that appear inline with the diff. The diff itself is skipped, the review prose is read.

Is it free?

Completely free. No API key, no usage limits, no account required. Install the Chrome extension and start listening.

Start Listening Now

Completely free. No signup. No limits. Install and start listening to GitHub discussions.