Small Go CLI that samples recent Bluesky posts, scores sentiment, and prints an ASCII trend chart for the last hour.
By default it uses a lightweight local word-list model (zero API cost). Optional Claude relabeling is available only for uncertain posts, with strict per-run call limits.
- Local sentiment pass on all posts first.
- Only low-confidence posts are sent to Claude.
- Batches multiple posts into one Claude call.
- Hard cap with
--claude-max-calls. - Text is truncated before sending to Claude.
go run .Example output includes:
- Sample size in past hour
- Overall positive/neutral/negative counts
- 6 buckets of 10-minute sentiment bars (
+positive,=neutral,-negative)
Set your key and enable relabeling:
export CLAUDE_API_KEY="your_key_here"
go run . --use-claude --claude-model claude-3-5-haiku-latest --claude-max-calls 2--queries "the,and,that,this,with"sample terms used for public search--window 60minutes of data to include--limit 30posts per query term--max-posts 180total deduped posts cap--uncertain-cutoff 1local score threshold to escalate--claude-batch-size 20posts per Claude call--claude-max-calls 3max Claude calls per run
- This script uses Bluesky public search API as a lightweight approximation of "current mood".
- It is intentionally small and cheap, not a production firehose analytics pipeline.
go test ./...