malachite
web v0.2.0 cli v0.9.3

Open source · Runs in your browser

Your listening history,
on ATProto.

Malachite imports your Last.fm scrobbles and Spotify plays into Teal — the open music layer for the AT Protocol.

Last.fm

Import your full scrobble history from a Last.fm CSV data export.

Spotify

Import extended streaming history from Spotify's JSON data export.

Combined

Merge both sources together with smart deduplication to avoid double-counting plays.

Sync

Only import records not already in Teal — safe to re-run any time.

Deduplicate

Find and remove duplicate records already in your Teal account.

How it works

  1. 1
    Choose a mode

    Pick Last.fm, Spotify, combined, sync, or deduplicate.

  2. 2
    Sign in with ATProto

    Use your Bluesky handle and an app password. Nothing is stored.

  3. 3
    Upload your export

    Drop in your CSV or JSON files — everything is processed locally in your browser.

  4. 4
    Import

    Malachite publishes your records to your PDS with automatic rate-limit handling.

Ready?

No account needed. No data leaves your browser except to your own PDS.

Open the import tool