social media crossposting tool. 3rd time's the charm
mastodon
misskey
crossposting
bluesky
1# Services
2
3## Input
4
5Input services ingest data from other websites.
6
7### Bluesky Jetstream
8
9This service uses a [Jetstream](https://github.com/bluesky-social/jetstream) to listen for posts.
10
11```
12{
13 "services": [
14 {
15 "input": {
16 "type": "bluesky-jetstream",
17 "handle": "bsky.app"
18 },
19 "outputs": []
20 }
21 ]
22}
23```
24
25| Key | Description |
26|----------|-----------------------------------------------------------------------|
27| `handle` | Account handle. Used to resolve `did` and `pds`. |
28| `did` | Account identifier. Can be specified instead of a `handle`. |
29| `pds` | Account host. Optional, will be resolved from `did` if not specified. |
30
31### Mastodon WebSocket
32
33Uses a WebSocket to listen to the home timeline.
34
35```
36{
37 "services": [
38 {
39 "input": {
40 "type": "mastodon-wss",
41 "instance": "https://mastodon.social",
42 "token": "***"
43 },
44 "outputs": []
45 }
46 ]
47}
48```
49
50| Key | Description |
51|----------------------|--------------------------------------------------------|
52| `instance` | Account host. |
53| `token` | Account access token. |
54| `allowed_visibility` | Post visibilities that ware allowed to be crossposted. |
55
56#### Getting a token
57
58**Mastodon:**
59
60- Go to Settings -> Development
61- Click "New Application"
62- Set a name (e.g. xpost), allow "read", "write", "profile" perms.
63- Click on the new application and copy "Your access token"
64
65**Non-Mastodon**
66
67Software 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 `)
68
69### Misskey WebSocket
70
71Uses a WebSocket to listen to the home timeline channel.
72
73> [!NOTE]
74> Misskey WSS doesn't support deletes, crossposted posts have to be manually deleted (or look into [bi-directional](./README.md#bi-directional-crossposting) crossposting)
75
76```
77{
78 "services": [
79 {
80 "input": {
81 "type": "misskey-wss",
82 "instance": "https://misskey.io",
83 "token": "***"
84 },
85 "outputs": []
86 }
87 ]
88}
89```
90
91| Key | Description |
92|----------------------|--------------------------------------------------------|
93| `instance` | Account host. |
94| `token` | Account access token. |
95| `allowed_visibility` | Post visibilities that ware allowed to be crossposted. |
96
97#### Getting a token
98
99Use Dev Tools 💔
100
101## Output
102
103### Bluesky
104
105```
106{
107 "services": [
108 {
109 "input": {},
110 "outputs": [
111 {
112 "type": "bluesky",
113 "handle": "bsky.app",
114 "password": "***"
115 }
116 ]
117 }
118 ]
119}
120```
121
122| Key | Description |
123|---------------|---------------------------------------------------------------------------------------------------------|
124| `handle` | Account handle. Used to resolve `did` and `pds`. |
125| `did` | Account identifier. Can be specified instead of a `handle`. |
126| `pds` | Account host. Optional, will be resolved from `did` if not specified. |
127| `password` | Account App Password. |
128| `quote_gate` | Disable ability for others to quote. |
129| `thread_gate` | Limit replies to the post. null - everybody, [] - nobody. accepts "mentioned", "following", "followers" |
130
131#### App Password
132
133Please do not use the main password.
134
135- Go to Settings -> Privacy and Security -> App Passwords
136- Click "Add App Password"
137- Copy the new password (it will not be shown again!)
138
139### Mastodon
140
141```
142{
143 "services": [
144 {
145 "input": {},
146 "outputs": [
147 {
148 "type": "mastodon",
149 "instance": "https://mastodon.social",
150 "token": "***"
151 }
152 ]
153 }
154 ]
155}
156```
157
158| Key | Description |
159|--------------|--------------------------------------------------------|
160| `instance` | Account host. |
161| `token` | Account access token. |
162| `visibility` | What visibility to set for crossposted posts |