name: "spacedust"
description: "Connect to the Spacedust real-time interactions firehose for AT Protocol. Use when building live notifications, real-time counters, activity feeds, or any feature that needs to react to interactions as they happen."
createdAt: "2026-09-11T15:59:52.665257+00:00"
repoUrl: "https://skillz.supply/skills/did:plc:xbtmt2zjwlrfegqvch7fboei/protopack.spacedust/SKILL.md"
# spacedust — real-time interactions firehose
Streams link events from the entire AT Protocol network over WebSocket with client-side filtering.
**Live docs:** https://spacedust.microcosm.blue
**Source:** https://github.com/at-microcosm/microcosm-rs/tree/main/spacedust
## connecting
```
wss://spacedust.microcosm.blue/subscribe?wantedSources=...&wantedSubjectDids=...
```
Sources use the same `collection:path` format as Constellation.
## filter params
| parameter | what it filters | max values |
|-----------|----------------|-----------|
| `wantedSubjects` | specific AT-URIs | 50,000 |
| `wantedSubjectDids` | DIDs (all interactions with their content) | 10,000 |
| `wantedSubjectPrefixes` | URI/DID prefixes | 100 |
| `wantedSources` | interaction types | 1,000 |
| `instant` | bypass 21-second delay buffer | boolean |
**Filter logic:** subject params are **OR**. Sources are **AND** with subjects. So `wantedSubjectDids=X&wantedSources=app.bsky.feed.like:subject.uri` = "likes on X's content."
## message format
```json
{"kind":"link","origin":"live","link":{"operation":"create","source":"app.bsky.feed.like:subject.uri","source_record":"at://did:plc:.../app.bsky.feed.like/3lv4ouczo2b2a","source_rev":"3lv4ouczp1x2a","subject":"at://did:plc:.../app.bsky.feed.post/3lgwdn7vd722r"}}
```
The current (lightweight) version emits only `operation: "create"` — it keeps no history, so it cannot emit `delete` events and offers no replay window (`origin` is always `"live"`). A future overhaul adds a full forward-link index with hydrated deletes and replay.
## dynamic filter updates
Send JSON on the open connection to replace filters without reconnecting:
```json
{"type": "options_update", "payload": {"wantedSubjectDids": ["did:plc:..."], "wantedSources": ["app.bsky.graph.follow:subject"]}}
```
## quick start
```bash
# watch for new followers of bsky.app
websocat "wss://spacedust.microcosm.blue/subscribe?wantedSources=app.bsky.graph.follow:subject&wantedSubjectDids=did:plc:z72i7hdynmk6r22z27h6tvur"
```
## notes
- events are buffered 21 seconds to filter quickly-undone interactions; `instant=true` bypasses this
- unauthenticated, no API key needed