🐘 Tootbot OpenClaw Skill - ClawHub
Do you want your AI agent to automate Tootbot workflows? This free skill from ClawHub helps with communication tasks without building custom tools from scratch.
What this skill does
Publish content to Mastodon. Use when you need to post a Mastodon status.
Install
npx clawhub@latest install tootbotFull SKILL.md
Open original| name | version | description |
|---|---|---|
| mastodon-publisher | 0.5.0 | Publish content to Mastodon. Use when you need to post a Mastodon status. |
Mastodon Publisher
Publish content to Mastodon. Use when you need to share updates, posts, or media.
Usage
Post one or more statuses to Mastodon
Post a new status to Mastodon with Bun:
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, Mastodon!"}' '{"status": "Goodby, Mastodon!"}'
JSON fields
| Name | Description | Type | Example | Required | Default |
|---|---|---|---|---|---|
status |
The text content of the status | string | "Hello, World" | yes^1 | N/A |
visibility |
Sets the visibility of the posted status | public or private or unlisted or direct |
"private" | no | "public" |
language |
ISO 639-1 language code for this status | ISO-639-1 Language Code | "en" | no | |
scheduledAt |
Datetime at which to schedule a status | RFC3339 date time | "2029-02-03T15:30:45.000Z" | no | |
quoteApprovalPolicy |
Sets who is allowed to quote the status | public or followrs or nobody |
"nobody" | no | "public |
media |
Media to be attached to the status | array of {file, description} objects |
{"file": "/path/to/foo.png", "description" : "Foo"} |
no^2 |
- ^1
statuscan be ommitted when one or--media-pathparameters are present - ^2 one or
mediaobjects must be present ifstatusis ommitted - ^2
media.descriptionis optional
Environment Variables
| Name | Description | Example |
|---|---|---|
MASTODON_URL |
Your Mastodon instance URL | https://mastodon.social |
MASTODON_ACCESS_TOKEN |
Your Mastodon access token | xAyBzC |
Examples
-
Post a new status
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, Mastodon"}'Read the output and summarize it for the user.
-
Post a scheduled status
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, future!", "scheduledAt" : "2030-02-05T13:21:34.000Z"}'Read the output and summarize it for the user.
-
Post a scheduled status with visibility, language, quote approval policy, and a single media attachment
bun {baseDir}/scripts/tootbot.js <<EOF { "status" : "Dorood", "visibility" : "public", "language" : "fa", "scheduledAt" : "2029-02-03T15:30:45.123456789+03:30", "quoteApprovalPolicy" : "followers", "media" : [ { "file" : "/path/to/media.png", "description" : "Nowrooz Pirooz" } ] } EOFRead the output and summarize it for the user.
-
Post a new status with media multiple attachments
bun {baseDir}/scripts/tootbot.js <<EOF { "status" : "Edsger W Dijkstra", "visibility" : "public", "language" : "fa", "scheduledAt" : "2029-02-03T15:30:45.123456789+03:30", "quoteApprovalPolicy" : "followers", "media" : [ { "file" : "/path/to/dijkstra.png", "description" : "Portrait" }, { "file" : "/path/to/signature.png", "description" : "Signature" } ] } EOF -
Post a new status with media attachments and no status text
bun {baseDir}/scripts/tootbot.js <<EOF { "media" : [ { "file" : "/path/to/flower-1.png", "description" : "White Rose" }, { "file" : "/path/to/flower-2.png", "description" : "Red Rose" } ] } EOF
Notes
- Requires
bunto be installed and available in the PATH.