Agent skill

Bluesky Zeitgeist Sampler

by oaustegard in oaustegard/claude-skills

Deprecated sampler that captures short windows of the Bluesky firehose, clusters trending terms and builds an HTML report; replaced by the browsing-bluesky skill.

MITAuto-check passedData & Analytics

Install Bluesky Zeitgeist Sampler

skills CLI
$ npx skills add oaustegard/claude-skills --skill sampling-bluesky-zeitgeist -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install oaustegard/claude-skills sampling-bluesky-zeitgeist --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sampling-bluesky-zeitgeist .claude/skills/sampling-bluesky-zeitgeist && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sampling-bluesky-zeitgeist
GitHub stars
150
Token cost
~1.4k tokens
SKILL.md length
534 words
Files
6 (incl. scripts, references, assets)
Skills in repo
67
Repo updated
First seen
Licence
MIT

At a glance

Deprecated sampler that captures short windows of the Bluesky firehose, clusters trending terms and builds an HTML report; replaced by the browsing-bluesky skill.

  • Works in 5 steps: Setup → Run Sample Windows → Analyze & Build DATA Object → …
  • Maintaining older setups that still reference this skill
  • SKILL.md covers Legacy Documentation, Workflow, Output Format and Refresh Workflow, plus 3 more sections
  • Runs JavaScript scripts from its folder; calls node and npm

What it does

The skill's own header says it has been folded into `browsing-bluesky`, which offers firehose sampling through a `sample_firehose()` function, and the rest is legacy documentation. The legacy workflow installs `ws` and `https-proxy-agent` with npm, then runs three consecutive 10-second samples with `scripts/zeitgeist-sample.js`, each saved as JSON.

The agent then aggregates the windows: total posts, posts per second, merged top words, phrases and entities, and per-minute rates. Related terms are grouped into named clusters with a search query, mention counts, a trend marked up, down or stable by a 30 percent change between the first and last window, and a few sample posts. Finally it copies an HTML template from `assets/`, injects the data object following the schema in `references/artifact-template.md`, and summarizes the dominant clusters in prose.

When your agent uses it

  • Maintaining older setups that still reference this skill
  • Seeing how the legacy firehose sampling and clustering workflow worked
  • Finding out which skill replaced it

Example prompts

  • “What's happening on Bluesky right now? Sample the firehose.”
  • “Show me Bluesky trends from three short firehose windows.”
  • “Which skill replaced sampling-bluesky-zeitgeist?”

Requirements

  • Node.js with the `ws` and `https-proxy-agent` packages
  • Network access to the Bluesky firehose

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Setup
  2. Run Sample Windows
  3. Analyze & Build DATA Object
  4. Identify Content Clusters
  5. Create Artifact via Template

What it can do on your machine

Read from SKILL.md and the folder at commit 90b0f1b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bluesky Zeitgeist Sampler loads about 1.4k tokens when it runs, and up to ~2k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 534 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from oaustegard/claude-skills at commit 90b0f1b, republished under its MIT licence (© oaustegard). 534 words, ~1,427 tokens.

Download SKILL.mdSave it as .claude/skills/sampling-bluesky-zeitgeist/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
sampling-bluesky-zeitgeist
description
DEPRECATED - Use browsing-bluesky skill instead. Sample and analyze Bluesky firehose to identify trending topics and content clusters. Use when user asks about "what's happening on Bluesky", "Bluesky trends", "zeitgeist", "firehose analysis", or wants to see real-time topic clusters from the network.
metadata.version
0.1.1
metadata.deprecated
true
metadata.superseded_by
browsing-bluesky

Sampling Bluesky Zeitgeist

⚠️ DEPRECATED: This skill has been consolidated into the browsing-bluesky skill.

Use browsing-bluesky for firehose sampling via the sample_firehose() function.


Legacy Documentation

Capture and analyze multiple windows of Bluesky firehose data, identify content clusters, and present results showing both individual sample windows and aggregate trends.

Workflow

1. Setup

Install dependencies:

bash
cd /home/claude && npm install ws https-proxy-agent 2>/dev/null
2. Run Sample Windows

Execute 3 consecutive 10-second samples:

bash
node /mnt/skills/user/sampling-bluesky-zeitgeist/scripts/zeitgeist-sample.js --duration 10 > /home/claude/sample1.json 2>/dev/null
node /mnt/skills/user/sampling-bluesky-zeitgeist/scripts/zeitgeist-sample.js --duration 10 > /home/claude/sample2.json 2>/dev/null
node /mnt/skills/user/sampling-bluesky-zeitgeist/scripts/zeitgeist-sample.js --duration 10 > /home/claude/sample3.json 2>/dev/null
3. Analyze & Build DATA Object

Parse each JSON file and aggregate:

  • Sum totalPosts, calculate avgPostsPerSecond
  • Merge topWords, topPhrases, entities across windows
  • Calculate per-minute rates: (count / totalDurationSec) * 60
  • Detect trends by comparing window counts
4. Identify Content Clusters

Group related terms into thematic clusters. For each cluster:

  • name: Descriptive label
  • emoji: Visual identifier
  • terms: Keywords that belong to this cluster
  • searchQuery: OR-joined terms for Bsky search (e.g., "trump OR republican OR congress")
  • totalMentions: Sum across all windows
  • mentionsPerMin: (totalMentions / totalDurationSec) * 60
  • trend: "up" if last window > first by 30%, "down" if <30%, else "stable"
  • samples: 2-3 example posts matching cluster
5. Create Artifact via Template

Copy template and inject DATA:

bash
cp /mnt/skills/user/sampling-bluesky-zeitgeist/assets/zeitgeist-template.html /mnt/user-data/outputs/zeitgeist.html

Then use str_replace to inject the DATA object:

old_str: const DATA = {"aggregate":{"totalPosts":0,"totalDurationSec":30,"avgPostsPerSecond":0,"timestamp":""},"windows":[],"clusters":[],"entities":[],"phrases":[],"languages":{}};
new_str: const DATA = {YOUR_ACTUAL_DATA_OBJECT};

See references/artifact-template.md for the complete DATA schema.

Output Format

Present the artifact link, then provide a brief prose summary:

  • What's dominating the conversation (top 1-2 clusters)
  • Any notable velocity spikes
  • Interesting patterns (e.g., "Japanese-language posts spiking around [topic]")

Keep the summary brief — the artifact is the main deliverable.

Refresh Workflow

When user asks to refresh/update/sample again:

  1. Run new sample windows (same 3x10s pattern)
  2. Update the DATA object with new results
  3. Use str_replace to swap the DATA line in the existing artifact
  4. Report what changed: "Trump mentions up 20% from last sample, M23 discussion fading"

For comparison, track previous aggregate totals and show delta:

Previous: trump 50/min → Current: trump 62/min (+24%)

Topic Monitoring Workflow

When user specifies a topic to monitor (e.g., "track the Lakers game", "what's happening with the drone sightings"):

Option A: Filtered Sampling

Run samples with the --filter flag to capture only matching posts:

bash
node zeitgeist-sample.js --duration 15 --filter "lakers" > /home/claude/topic1.json 2>/dev/null

This gives deeper analysis of a specific topic but misses broader context.

Show full SKILL.md (201 more words)Show less

Run general samples, then:

  1. Calculate topic-specific velocity from the results
  2. Add a dedicated "Monitored Topic" cluster at the top
  3. Include sample posts matching the topic

In the DATA object, add a monitoredTopic field:

json
{
  "monitoredTopic": {
    "query": "lakers",
    "totalMentions": 45,
    "mentionsPerMin": 90.0,
    "trend": "up",
    "windowCounts": [12, 15, 18],
    "samples": ["Lakers up by 10 in the 4th!", "LeBron with another triple double"]
  }
}
Responding to Topic Requests

At start of conversation:

  • "What's happening with the drone sightings?" → Run general sample, highlight drone-related content as monitored topic
  • "Track mentions of Claude AI" → Same approach, focus on that term

Mid-conversation:

  • "Can you focus on the M23 conflict?" → Re-run samples, add M23 as monitored topic
  • "What about Japanese content specifically?" → Filter for lang:ja or highlight existing Japanese cluster

Follow-up pattern: User: "refresh but focus on the game" → Run new samples, keep monitored topic, update all data

Error Handling

If WebSocket connection fails:

  • Check that *.bsky.network is in allowed domains
  • Retry once with shorter duration (5s)
  • If still failing, report the error and suggest user check network settings

If sample returns zero posts:

  • Likely network/proxy issue
  • Report and do not create artifact

Customization Options

User may request:

  • Longer samples: Increase duration per window or add more windows
  • Topic focus: After initial sample, run filtered samples for specific clusters
  • Comparison: Run samples at different times and compare

© oaustegard, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references, assets) in sampling-bluesky-zeitgeist of oaustegard/claude-skills.

  • SKILL.md
  • CHANGELOG.md
  • README.md
  • assets/zeitgeist-template.html
  • references/artifact-template.md
  • scripts/zeitgeist-sample.js

Open the folder on GitHubat commit 90b0f1b

Compare with similar skills

Bluesky Zeitgeist Sampler next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bluesky Zeitgeist Sampler compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bluesky Zeitgeist Sampler this skilloaustegard/claude-skills150—~1.4kAutomated safety check: PassMIT
Twitter Searchsundial-org/awesome-openclaw-skills663—~2.3kAutomated safety check: PassNone
Web3 Data Explorerinternet-court/internet-court-skill6.6k1 repos~2kAutomated safety check: PassMIT
Social Pulse Monitoraaron-he-zhu/aaron-marketing-skills2.9k—~3.3kAutomated safety check: PassApache-2.0
Meridian MMM Model Buildinggoogle/meridian1.6k—~2.5kAutomated safety check: PassApache-2.0
13 Data Analysis Globalminhnv0807/ai-business-skills609—~4kAutomated safety check: PassMIT

Similar skills

  • Twitter Search

    sundial-org/awesome-openclaw-skills

    Advanced Twitter search and social media data analysis. An agent skill from sundial-org/awesome-openclaw-skills.

    663 GitHub stars~2.3k tokensUpdated 7 mo ago
    Data & AnalyticsAuto-check passed
  • Web3 Data Explorer

    internet-court/internet-court-skill

    Queries on-chain data with the Chainbase CLI and tracks crypto social trends: token holders and prices, wallet balances, ENS names, narratives and KOL signals.

    6.6k GitHub starsUsed in 1 repo~2k tokens
    Data & AnalyticsAuto-check passed
  • Social Pulse Monitor

    aaron-he-zhu/aaron-marketing-skills

    A skill your agent uses when the user asks to "monitor brand mentions", "set up social listening", "did anything spike about us this week", or "watch these accounts for buying triggers"; runs…

    2.9k GitHub stars~3.3k tokensUpdated today
    Marketing & SEOAuto-check passed
  • Official

    Takes a user through building a Meridian marketing mix model, from loading CSV data and mapping columns to running EDA, fitting and saving the model.

    1.6k GitHub stars~2.5k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • 13 Data Analysis Global

    minhnv0807/ai-business-skills

    A skill your agent uses when raw data exists — Meta, Google, TikTok, GA4, Shopify, a CRM export, or a spreadsheet — and has to become insight and decisions: descriptive, diagnostic, predictive, and…

    609 GitHub stars~4k tokensUpdated 28 days ago
    Data & AnalyticsAuto-check passed
  • Jibs Contribution Framing

    franklee16/academic-research-skills

    A skill your agent uses when turning results into an explicit contribution to international-business theory for a Journal of International Business Studies (JIBS) manuscript — stating what the field…

    223 GitHub starsUsed in 1 repo~946 tokens
    Data & AnalyticsAuto-check passed

More from oaustegard/claude-skills

All 67 skills in this repo
  • Vega-Lite Interactive Charts

    oaustegard/claude-skills

    Builds interactive Vega-Lite charts from uploaded data: analyzes the fields, picks five to ten fitting chart types, and produces a React artifact with the data embedded inline.

    150 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Single-File HTML Composer

    oaustegard/claude-skills

    Builds self-contained single-file HTML pages such as reports, decks, postmortems, flowcharts and prototypes from a small spec using a bundled Python composer and templates.

    150 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Deciding With Confidence

    oaustegard/claude-skills

    Routes, triages, flags and rates a piece of text with a probability for every option: which department or queue a ticket goes to, which intent a message expresses, whether a yes/no condition holds…

    150 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Declauding

    oaustegard/claude-skills

    Rewrites model-sounding prose into plain technical writing and checks that every claim survives, for PR text, docs, commit messages and similar drafts.

    150 GitHub stars~5.2k tokensUpdated today
    Auto-check passed
  • Preact Developer

    oaustegard/claude-skills

    Guides building standards-based Preact apps with native-first choices, HTM syntax, import maps and vendored ESM, from single-file demos to larger builds.

    150 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Adversarial Review Before Shipping

    oaustegard/claude-skills

    Has a fresh-context adversary attack a blog post, recommendation, analysis brief or piece of code before you ship it, using a profile suited to that kind of artifact.

    150 GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Bluesky Zeitgeist Sampler

What does Bluesky Zeitgeist Sampler do?

Deprecated sampler that captures short windows of the Bluesky firehose, clusters trending terms and builds an HTML report; replaced by the browsing-bluesky skill. The skill's own header says it has been folded into `browsing-bluesky`, which offers firehose sampling through a `sample_firehose()` function, and the rest is legacy documentation.js`, each saved as JSON.

When should I use Bluesky Zeitgeist Sampler?

Bluesky Zeitgeist Sampler fits situations like: maintaining older setups that still reference this skill; seeing how the legacy firehose sampling and clustering workflow worked; finding out which skill replaced it.

How do I install Bluesky Zeitgeist Sampler in Claude Code?

Run `npx skills add oaustegard/claude-skills --skill sampling-bluesky-zeitgeist -a claude-code`. Or copy the skill folder (sampling-bluesky-zeitgeist in oaustegard/claude-skills) into .claude/skills/sampling-bluesky-zeitgeist in your project. Claude Code loads it when a task matches its description.

How do I install Bluesky Zeitgeist Sampler in Codex?

Run `npx skills add oaustegard/claude-skills --skill sampling-bluesky-zeitgeist -a codex`. Or copy the skill folder (sampling-bluesky-zeitgeist in oaustegard/claude-skills) into .agents/skills/sampling-bluesky-zeitgeist in your project. Codex loads it when a task matches its description.

Can I use Bluesky Zeitgeist Sampler in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oaustegard/claude-skills --skill sampling-bluesky-zeitgeist -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sampling-bluesky-zeitgeist, .gemini/skills/sampling-bluesky-zeitgeist, .github/skills/sampling-bluesky-zeitgeist and .opencode/skills/sampling-bluesky-zeitgeist in your project.

What does Bluesky Zeitgeist Sampler need to run?

Going by SKILL.md and its folder, Bluesky Zeitgeist Sampler needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npm). Our summary lists: Node.js with the `ws` and `https-proxy-agent` packages; Network access to the Bluesky firehose.

Does Bluesky Zeitgeist Sampler access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Bluesky Zeitgeist Sampler safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Bluesky Zeitgeist Sampler use?

Bluesky Zeitgeist Sampler is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bluesky Zeitgeist Sampler use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 542 tokens, read only when the agent opens those files.

What are the alternatives to Bluesky Zeitgeist Sampler?

Skills that share tags, products or a category with Bluesky Zeitgeist Sampler: Twitter Search (sundial-org/awesome-openclaw-skills, 663 stars), Web3 Data Explorer (internet-court/internet-court-skill, 6.6k stars), Social Pulse Monitor (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and Meridian MMM Model Building (google/meridian, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bluesky Zeitgeist Sampler?

oaustegard (a GitHub user) maintains it in oaustegard/claude-skills, which has 150 GitHub stars. The repository holds 67 skills in this directory. The repository was last updated on October 9, 2026.

Source: oaustegard/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.