social media crossposting tool. 3rd time's the charm
mastodon misskey crossposting bluesky

Services#

Input#

Input services ingest data from other websites.

Bluesky Jetstream#

This service uses a Jetstream to listen for posts.

{
    "services": [
        {
            "input": {
                "type": "bluesky-jetstream",
                "handle": "bsky.app"
            },
            "outputs": []
        }
    ]
}
Key Description
handle Account handle. Used to resolve did and pds.
did Account identifier. Can be specified instead of a handle.
pds Account host. Optional, will be resolved from did if not specified.

Mastodon WebSocket#

Uses a WebSocket to listen to the home timeline.

{
    "services": [
        {
            "input": {
                "type": "mastodon-wss",
                "instance": "https://mastodon.social",
                "token": "***"
            },
            "outputs": []
        }
    ]
}
Key Description
instance Account host.
token Account access token.
allowed_visibility Post visibilities that ware allowed to be crossposted.

Getting a token#

Mastodon:

  • Go to Settings -> Development
  • Click "New Application"
  • Set a name (e.g. xpost), allow "read", "write", "profile" perms.
  • Click on the new application and copy "Your access token"

Non-Mastodon

Software like iceshrimp/akkoma can either use https://getauth.thms.uk/?client_name=xpost&scopes=read%20write%20profile or get the token using dev tools on any web client. (any /api/v* request, the authorization header, copy the value besides Bearer )

Misskey WebSocket#

Uses a WebSocket to listen to the home timeline channel.

NOTE

Misskey WSS doesn't support deletes, crossposted posts have to be manually deleted (or look into bi-directional crossposting)

{
    "services": [
        {
            "input": {
                "type": "misskey-wss",
                "instance": "https://misskey.io",
                "token": "***"
            },
            "outputs": []
        }
    ]
}
Key Description
instance Account host.
token Account access token.
allowed_visibility Post visibilities that ware allowed to be crossposted.

Getting a token#

Use Dev Tools 💔

Output#

Bluesky#

{
    "services": [
        {
            "input": {},
            "outputs": [
                {
                    "type": "bluesky",
                    "handle": "bsky.app",
                    "password": "***"
                }
            ]
        }
    ]
}
Key Description
handle Account handle. Used to resolve did and pds.
did Account identifier. Can be specified instead of a handle.
pds Account host. Optional, will be resolved from did if not specified.
password Account App Password.
quote_gate Disable ability for others to quote.
thread_gate Limit replies to the post. null - everybody, [] - nobody. accepts "mentioned", "following", "followers"

App Password#

Please do not use the main password.

  • Go to Settings -> Privacy and Security -> App Passwords
  • Click "Add App Password"
  • Copy the new password (it will not be shown again!)

Mastodon#

{
    "services": [
        {
            "input": {},
            "outputs": [
                {
                    "type": "mastodon",
                    "instance": "https://mastodon.social",
                    "token": "***"
                }
            ]
        }
    ]
}
Key Description
instance Account host.
token Account access token.
visibility What visibility to set for crossposted posts