A minimalist, local-first client that puts Bluesky and Mastodon in one browser tab. Read, reply, boost and cross-post without switching apps.
What it does
- One timeline
- Posts from Bluesky and Mastodon interleaved in chronological order, in a single column or in a multi-column deck.
- Explore
- The trending feeds of both networks side by side.
- Notifications
- Mentions, replies, likes, boosts and quotes in one place.
- Write once
- Publish to Bluesky, to Mastodon or to both, with a live character count for each network.
- Rich posts
- Quote posts, media galleries, link previews, a video player (HLS and MP4), polls, content warnings and threads shown inline.
- Theme and language
- Dark and light follow your system. The interface comes in English and Portuguese.

Your computer, your keys.
MastoSky is a Python script and a single HTML file. The server listens on 127.0.0.1 only, so your Bluesky App Password and Mastodon token never leave your machine.
Requests go straight from your computer to Bluesky and to your own Mastodon instance. No middleman, no analytics, no telemetry.
- Python 3 standard library
- No pip, no npm
- MIT licence
Run it
Clone the repository and start the server.
git clone https://github.com/gjmcosta/MastoSky.git cd MastoSky python3 app.py
Open it in your browser.
http://127.0.0.1:8000In the setup window, enter a Bluesky App Password and a Mastodon access token. Use an App Password, never your main one.
Early days.
It works, but it is young. Bug reports, ideas and pull requests are very welcome. Open an issue