🧪 Skills

Tootbot

--- name: mastodon-publisher description: Publish content to Mastodon. Use when you need to post a Mastodon status. author: Behrang Saeedzadeh version: 0.5.0 triggers: - "post to mastodon" - "publ

v0.5.0
❤️ 0
⬇️ 2.3k
👁 1
Share

Description


name: mastodon-publisher description: Publish content to Mastodon. Use when you need to post a Mastodon status. author: Behrang Saeedzadeh version: 0.5.0 triggers:

  • "post to mastodon"
  • "publish status to mastodon" metadata: { "clawdbot": { "emoji": "🐘" }, "requires": { "bins": ["bun"] } }

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 status can be ommitted when one or --media-path parameters are present
  • ^2 one or media objects must be present if status is ommitted
  • ^2 media.description is 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"
        }
      ]
    }
    EOF
    

    Read 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 bun to be installed and available in the PATH.

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs