very fast at protocol indexer with flexible filtering, xrpc queries, cursor-backed event stream, and more, built on fjall
rust fjall at-protocol atproto indexer
60
fork

Configure Feed

Select the types of activity you want to include in your feed.


title: filter management#

  • GET /filter: get the current filter configuration.
  • PATCH /filter: update the filter configuration.

filter mode#

the mode field controls what gets indexed:

mode behaviour
filter auto-discovers and backfills any account whose firehose commit touches a collection matching one of the signals patterns. you can also explicitly track individual repositories via the /repos endpoint regardless of matching signals.
full index the entire network. signals are ignored for discovery, but excludes and collections still apply.

fields#

field type description
mode "filter" | "full" indexing mode (see above).
signals set update NSID patterns (e.g. app.bsky.feed.post or app.bsky.*) that trigger auto-discovery in filter mode.
collections set update NSID patterns used to filter which records are stored. if empty, all collections are stored. applies in all modes.
excludes set update set of DIDs to always skip, regardless of mode. checked before any other filter logic.

set updates#

each set field accepts one of two forms:

  • replace: an array replaces the entire set, eg. ["app.bsky.feed.post", "app.bsky.graph.*"]
  • patch: an object maps items to true (add) or false (remove), eg. {"app.bsky.feed.post": true, "app.bsky.graph.*": false}

NSID patterns#

signals and collections support an optional .* suffix to match an entire namespace:

  • app.bsky.feed.post: exact match only
  • app.bsky.feed.*: matches any collection under app.bsky.feed