LeafLine

LeafLine is a social media app, combining both Mastodon, and Bluesky, in the same app. It’s only available for Android, and the app is totally free (and always will be). However, and read this carefully, please, the app will ask you once per week to share a random article off WillCycle.
You can decline every time, and there’s no penalty for declining, but it will continue to ask, once per week. I spent a lot of time developing the app, and those links are the only “payment” I’ll ever get for my efforts.

What does LeafLine do?

If you’re on Bluesky, and on Mastodon, you can log in to both those services from the LeafLine app (for Bluesky, you will need to create a app password – see instructions further below). Once logged in, when you type a post, it will be posted to both Mastodon and Bluesky, at the same time. Even better, you don’t have to worry about character length for your posts, as the app will automagically break longer posts up into a thread, with each post being numbered.
You can follow/unfollow people as normal, you can send and receive DMs, and you can like, repost/boost, or reply to messages, same as you’re used to. You can also block,  mute, or report accounts. Replies to posts will only be sent to the social network where the post you’re replying to resides. For example, if you replied to a post on Mastodon, it won’t show up on Bluesky, and vice versa.

What’s the catch?

There isn’t a catch. The app doesn’t track you in any way. It doesn’t require access to the camera, microphone, or location. In fact, the ONLY permission it needs is to show you notifications, at the top of the screen. This is a beta version at the moment, and while it’s perfectly usable, I’d very much appreciate your feedback on the app. Please note though that I won’t necessarily implement any suggestions you might have, or change anything. Serious faults, or lack of functionality I will fix, and generally, I will try and implement good ideas.

How do I install it?

LeafLine isn’t (yet) available via the Play Store. Before I submit it to the Play Store (which would also require me to recruit 14 to 16 beta testers, to use the app over a 14 day period) I would like more peace of mind. As a result, this is really a “pre-beta” test. To install it, ensure you’re viewing this page from your phone, then follow the steps below.

Once downloaded, you will need a one-time permission change on your phone, before you’ll be able to install it. This is completely normal for beta apps and doesn’t affect anything else on your phone.

Step 1: Download the app

Tap this link on your Android phone.

Your phone will download a file called leafline.apk.

Step 2: Allow installs from this source

The first time you try to install it, Android will block it and show a message like “For your security, your phone is not allowed to install unknown apps from this source.” This is Android protecting you from installing things from untrusted sources by default, and it doesn’t mean anything is wrong with LeafLine specifically.

  • Tap Settings on that same warning screen (or go to Settings -> Apps -> Special app access -> Install unknown apps)
  • Find the app you downloaded through (usually Chrome or Files).
  • Turn on Allow from this source.
  • Go back and try installing again.

Exact wording varies slightly by phone manufacturer (Samsung, Pixel, etc.), but it’s always in Settings -> Apps somewhere along those lines.

Step 3: Install

Open the downloaded file and tap Install. You might see a second warning that the app is unrecognized by Play Protect – this is expected for a beta build that isn’t distributed through the Play Store yet. Tap Install anyway.

Step 4: Open LeafLine and sign in

You can connect a Mastodon account, a Bluesky account, or both. LeafLine talks directly to those platforms using your own login – nothing goes through any separate LeafLine server. In fact, there is no LeafLine server!

Adding a Bluesky Account to LeafLine

Bluesky works a little differently from Mastodon when signing in – instead of the usual “log in with your username and password” flow, Bluesky asks you to create a special app password just for LeafLine to use. This is a Bluesky security feature, not something specific to LeafLine: it means LeafLine never sees your actual account password, and you can revoke its access at any time without changing your main password.

It takes about two minutes, in two parts.

Part 1: Create an app password in Bluesky

You’ll do this in the official Bluesky app or at bsky.app, not in LeafLine.

  1. Open Bluesky and go to Settings.
  2. Tap Privacy and Security.
  3. Tap App Passwords.
  4. Tap Add App Password.
  5. Give it a name you’ll recognize later, e.g. LeafLine.
  6. Important: if you want to use LeafLine’s DM (direct message) features, make sure “Allow access to your direct messages” is switched on before you create the password. If you leave this off, everything else in LeafLine will work fine, but Messages won’t load. You can’t change this after the fact, but you’d need to create a new app password with it enabled.
  7. Tap Create App Password.
  8. Bluesky will show you a password that looks like xxxx-xxxx-xxxx-xxxx. Copy this now.  Bluesky only shows it to you once, and there’s no way to view it again later (though you can always create a new one if needed).

Part 2: Add the account in LeafLine

  1. Open LeafLine.
  2. Tap the gear icon (Settings), in the top corner of your Timeline.
  3. Tap Manage Accounts.
  4. Tap Add Account, then choose Bluesky.
  5. Enter your Bluesky handle, the same one you use to sign in normally (e.g. yourname.bsky.social, or your own custom domain if you’ve set one up).
  6. Enter the app password you copied in Part 1. Do not use your regular Bluesky password.
  7. Tap Sign In.

LeafLine will show “Signing in…” briefly, then take you back to your Timeline with your Bluesky account connected. If you also have a Mastodon account connected, LeafLine will show content from both automatically.

Using both a Mastodon and a Bluesky account together

You don’t have to choose one. LeafLine supports having both connected at the same time. Your Timeline shows posts from both platforms together; Search and your own Profile let you switch between the two.

If something goes wrong

  • “Sign in failed” or similar error: double-check you copied the app password exactly (no extra spaces), and that you’re using the app password, not your main Bluesky password.
  • Messages/DMs not loading after signing in: this almost always means “Allow access to your direct messages” wasn’t switched on when you created the app password. Go back to Bluesky’s App Passwords settings, create a new one with that setting enabled, and sign in again in LeafLine with the new password.
  • Want to remove LeafLine’s access later? You can revoke it from either side: simply delete the app password from Bluesky’s own Settings -> App Passwords, or remove the account from LeafLine’s Settings -> Manage Accounts.

Getting updates during the beta

Since this isn’t through the Play Store, updates won’t install automatically. When a new beta build is ready, you’ll get a new download link the same way – just repeat steps 1 and 3 (you shouldn’t need to redo step 2 once it’s been allowed once).

Reporting bugs or feedback

Please simply post a comment on this page. Your comments won’t be published, but I’ll use them to try an make LeafLine better.

Please try to actually use the app across a few different days rather than just installing it once. Real day-to-day use is what will reveal any the bugs that matter most before this goes to a wider release.

A quick note on privacy

In short: nothing you do in the app is collected or sent anywhere except directly to the Mastodon/Bluesky accounts you connect.

LeafLine Privacy Policy

Last updated: 19th of August, 2026

LeafLine is a Mastodon and Bluesky client for Android, developed independently and made available through WillCycle. This policy explains what information LeafLine handles, why, and how it’s kept.

The short version

LeafLine does not collect, sell, or share your personal data with any third party. It does not use advertising or analytics tracking. Everything it stores is kept on your own device, and everything it sends over the network goes directly to the Mastodon or Bluesky servers you’ve connected your own accounts to.

What LeafLine stores on your device

  • Account credentials. When you sign in to a Mastodon or Bluesky account, LeafLine stores the resulting access token (Mastodon) or session token (Bluesky) using Android’s encrypted storage (EncryptedSharedPreferences), so it’s protected by your device’s own security. These tokens let LeafLine act on your behalf on that platform – they are never sent anywhere except to that platform’s own servers.
  • App preferences. Settings such as theme (light/dark) and notification sound preference are stored locally on your device.
  • A small local record of what you’ve already seen, used only to determine what’s “new” in your notification list. This never leaves your device.

What LeafLine sends over the network, and to whom

  • To the Mastodon instance(s) and/or Bluesky account(s) you connect: whatever actions you take in the app – viewing your timeline, posting, replying, liking, reposting, following, messaging, and so on – are sent directly to that platform, exactly as if you’d used their own official app or website. LeafLine does not sit in the middle of or log this traffic.
  • To Tenor (Google’s GIF search service), only if you use the in-app GIF search: your search text is sent to Tenor to return results, the same way it would be if you searched GIFs in any other app that uses Tenor.
  • To willcycle.com, only to occasionally check for a new blog post to optionally suggest sharing – a simple, anonymous request with no personal data attached. WillCycle doesn’t track, or record such requests.

LeafLine does not run its own servers and does not have a back-end that stores or processes your data. Everything above happens directly between your device and the service in question.

Notifications

LeafLine checks periodically in the background for new activity (replies, mentions, direct messages) on your connected accounts, so it can show you an Android notification. This check happens directly against Mastodon/Bluesky’s own APIs, using your own account’s access token – no separate notification server is involved, and no data about your notifications is sent anywhere else.

What LeafLine does not do

  • No advertising, and no ad network integrations.
  • No analytics or usage tracking SDKs.
  • No location access.
  • No access to your photo library beyond the images you explicitly choose via Android’s own system photo picker, which shares only the specific image(s) you select. LeafLine never receives broad access to your gallery. No posts, DMs, or images are ever shared with WillCycle.
  • No sale or sharing of any data with third parties for marketing or any other purpose. In fact, LeafLine was intentionally built to not harvest any such data.

Your data, your accounts

LeafLine is a client for services you already control. Deleting your Mastodon or Bluesky account, revoking LeafLine’s access from that platform’s own security settings, or simply uninstalling LeafLine removes everything LeafLine had stored locally. LeafLine is simply a window to your Mastodon, or Bluesky account. Any content you’ve posted through LeafLine lives on the Mastodon instance or Bluesky’s own servers, governed by that platform’s own privacy policy and terms, not LeafLine’s.

Children’s privacy

LeafLine is not directed at children and does not knowingly collect information from anyone under the age required to hold an account on Mastodon or Bluesky under their respective terms of service.

Changes to this policy

If LeafLine’s data handling changes in a future update – for example, if push notifications move from local polling to a push-notification service – this policy will be updated to reflect that before the change ships, and the “last updated” date above will change accordingly.

Contact

Questions about this policy or how LeafLine handles data can be posted simply by commenting on this page.