Reddit 会话审查
- 作者仓库星标 8,603
- 作者仓库 claude-code-tips
Reddit Fetch
Method 1: Gemini CLI (Try First)
Use Gemini CLI via tmux. It can browse, summarize, and answer complex questions about Reddit content.
Pick a unique session name (e.g., gemini_abc123) and use it consistently throughout.
Setup
tmux new-session -d -s <session_name> -x 200 -y 50
tmux send-keys -t <session_name> 'gemini -m gemini-3-pro-preview' Enter
sleep 3 # wait for Gemini CLI to load
Send query and capture output
tmux send-keys -t <session_name> 'Your Reddit query here' Enter
sleep 30 # wait for response (adjust as needed, up to 90s for complex searches)
tmux capture-pane -t <session_name> -p -S -500 # capture output
If the captured output shows an API error (e.g., quota exceeded, model unavailable), kill the session and retry without the -m flag (just gemini with no model argument). This falls back to the default model.
How to tell if Enter was sent
Look for YOUR QUERY TEXT specifically. Is it inside or outside the bordered box?
Enter NOT sent - your query is INSIDE the box:
╭─────────────────────────────────────╮
│ > Your actual query text here │
╰─────────────────────────────────────╯
Enter WAS sent - your query is OUTSIDE the box, followed by activity:
> Your actual query text here
⠋ Our hamsters are working... (processing)
╭────────────────────────────────────────────╮
│ > Type your message or @path/to/file │
╰────────────────────────────────────────────╯
Note: The empty prompt Type your message or @path/to/file always appears in the box - that's normal. What matters is whether YOUR query text is inside or outside the box.
If your query is inside the box, run tmux send-keys -t <session_name> Enter to submit.
Cleanup when done
tmux kill-session -t <session_name>
If Gemini fails completely
If retrying without -m also fails, fall back to Method 2 below.
Method 2: curl with Reddit JSON API (Fallback)
Reddit's public JSON API works by appending .json to any Reddit URL. Use this when Gemini is unavailable (quota exhausted, API errors, etc.).
Listing hot/new/top posts
curl -s -L -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
"https://old.reddit.com/r/SUBREDDIT/hot.json?limit=15"
Replace hot with new, top, or rising as needed. For top, add &t=day (or week, month, year, all).
Fetching a specific post + comments
curl -s -L -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
"https://old.reddit.com/r/SUBREDDIT/comments/POST_ID.json?limit=20"
The response is a JSON array: [0] is the post, [1] is the comment tree.
Searching within a subreddit
curl -s -L -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
"https://old.reddit.com/r/SUBREDDIT/search.json?q=QUERY&restrict_sr=on&sort=new&limit=15"
Parsing the JSON
Use jq to extract what you need:
# List posts
curl -s -L -o /tmp/reddit_result.txt -w "%{http_code}" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
'https://old.reddit.com/r/SUBREDDIT/hot.json?limit=15'
jq -r '.data.children[] | .data | "\(.title)\n \(.score) pts | \(.num_comments) comments | u/\(.author) | id: \(.id)\n"' /tmp/reddit_result.txt
# List comments from a specific post (the [1] element has comments)
jq -r '.[1].data.children[] | select(.kind == "t1") | .data | "u/\(.author) (\(.score) pts):\n \(.body[:300])\n"' /tmp/reddit_thread.txt
Key details:
- Fetch to temp file first, then parse - avoids pipe-related encoding issues
-o /tmp/fileand-w "%{http_code}"saves the response and prints the HTTP status (useful for debugging empty responses)-Lfollows redirects (old.reddit.com sometimes redirects)- Single-quoted URL avoids shell interpretation of
&in query strings .body[:300]truncates long comment bodies (jq 1.7+)
Rate limiting
Reddit's JSON API rate-limits aggressively:
- Don't fire parallel requests. Make them sequentially with
sleep 2orsleep 3between each. - If a request returns empty (0 bytes), wait 3-5 seconds and retry.
- If you get HTTP 429, back off for 10-15 seconds.
- A good pattern: fetch one search result listing, parse it, then fetch individual threads one at a time with delays.
- 流狐分类
- 通用
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @ykdojo · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- Windows
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- Shell 执行
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
# Send query and capture output
tmux send-keys -t <session_name> 'Your Reddit query here' Enter
sleep 30 # wait for response (adjust as needed, up to 90s for complex searches)
tmux capture-pane -t <session_name> -p -S -500 # capture output Use Gemini CLI via tmux. It can browse, summarize, and answer complex questions about Reddit content. Pick a unique session name (e.g., geminiabc123) and use it consistently throughout.
Reddit's public JSON API works by appending .json to any Reddit URL. Use this when Gemini is unavailable (quota exhausted, API errors, etc.).
# Reddit Fetch
## Method 1: Gemini CLI (Try First)
Use Gemini CLI via tmux. It can browse, summarize, and answer complex questions about Reddit content.
Pick a unique session name (e.g., `gemini_abc123`) and use it consistently throughout.
### Setup
```bash
tmux new-session -d -s <session_name> -x 200 -y 50
tmux send-keys -t <session_name> 'gemini -m gemini-3-pro-preview' Enter
sleep 3 # wait for Gemini CLI to load
```
### Send query and capture output
```bash
tmux send-keys -t <session_name> 'Your Reddit query here' Enter
sleep 30 # wait for response (adjust as needed, up to 90s for complex searches)
tmux capture-pane -t <session_name> -p -S -500 # capture output
```
If the captured output shows an API error (e.g., quota exceeded, model unavailable), kill the session and retry without the `-m` flag (just `gemini` with no model argument). This falls back to the default model.
### How to tell if Enter was sent
Look for YOUR QUERY TEXT specifically. Is it inside or outside the bordered box?
**Enter NOT sent** - your query is INSIDE the box:
```
╭─────────────────────────────────────╮
│ > Your actual query text here │
╰─────────────────────────────────────╯
```
**Enter WAS sent** - your query is OUTSIDE the box, followed by activity:
```
> Your actual query text here
⠋ Our hamsters are working... (processing)
╭────────────────────────────────────────────╮
│ > Type your message or @path/to/file │
╰────────────────────────────────────────────╯
```
Note: The empty prompt `Type your message or @path/to/file` always appears in the box - that's normal. What matters is whether YOUR query text is inside or outside the box.
If your query is inside the box, run `tmux send-keys -t <session_name> Enter` to submit.
### Cleanup when done
```bash
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Method 1: Gemini CLI (Try First) → Setup → Send query and capture output → How to tell if Enter was sent → Cleanup when done → If Gemini fails completely
要点 -> Enter NOT sent · Enter WAS sent · Don't fire parallel requests. · Use Gemini CLI via tmux. · Pick a unique session name (e.g., geminiabc123) and use it consistently throughout. · Look for YOUR QUERY TEXT specifically. · ⠋ Our hamsters are working... · Note: The empty prompt Type your message or @path/to/file always appears in the box - that's normal.
文件/命令 -> geminiabc123 · gemini · Type your message or @path/to/file · tmux send-keys -t <sessionname> Enter · .json · hot · new · top
内容 SHA-256 -> e5f69f1e2597
方法与流程
适用与边界
原文中的明确线索
geminiabc123、gemini、Type your message or @path/to/file、tmux send-keys -t <sessionname> Enter、.json、hot、new、top