Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.rocksky.app/llms.txt

Use this file to discover all available pages before exploring further.

Teal.fm publishes plays as AT Protocol records, so Rocksky mirrors them through a single Jetstream subscription to fm.teal.alpha.feed.play. No polling, no API keys — your ATProto DID is the only identifier needed.

Prerequisites

  • A Rocksky account (signed in with the same ATProto identity you use on Teal.fm)
  • An active Teal.fm account publishing play records

Setup

1

Open the Mirrors page

Sign in to Rocksky and open rocksky.app/mirrors. Select the Teal.fm tab.
2

Enable mirroring

Flip the Mirror enabled toggle on. There are no credentials to enter — Rocksky filters the Jetstream firehose for play records whose did matches yours.

How it works

  • One process-wide WebSocket connection subscribes to fm.teal.alpha.feed.play on Jetstream.
  • Enabling mirroring adds your DID to an in-memory set; the next play record from that DID gets normalised and re-published as a Rocksky scrobble.
  • Disabling removes your DID from the set — within seconds, no further events are processed.
Because there’s no polling, plays show up within a couple of seconds of Teal.fm broadcasting them to the relay.

Dedup behaviour

Each event runs through the same ±120-second dedup check as the polled sources. If you also scrobble to Rocksky from another client at the same time, only one record lands.
Teal.fm mirroring relies on the AT Protocol relay being reachable. If the Jetstream connection drops, Rocksky reconnects automatically — but any plays broadcast during the gap may be missed. Use Last.fm or ListenBrainz mirroring alongside it if you need polled redundancy.