360 Secure SkillHub
360 安全技能中心

Tootbot

该 Skill 用 Bun 运行 tootbot.js,通过 Mastodon API 发布一条或多条状态,支持 visibility、language、scheduledAt、quoteApprovalPolicy 与图片媒体附件,凭 MASTODON_URL 与 MASTODON_ACCESS_TOKEN 环境变量认证,并读取输出文本总结给用户。

behrangsa
behrangsa
热度 67.74
最近更新 2026-05-17 11:06:24
分类:营销依赖:代码执行 / 第三方 API / 读写文件应用场景:社交媒体 / API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add tootbot
Metadata
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.