{
  "schemaVersion": "1.0",
  "item": {
    "slug": "stegstr",
    "name": "Stegstr",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/brunkstr/stegstr",
    "canonicalUrl": "https://clawhub.ai/brunkstr/stegstr",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/stegstr",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=stegstr",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "install.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/stegstr"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/stegstr",
    "agentPageUrl": "https://openagent3.xyz/skills/stegstr/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stegstr/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stegstr/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Stegstr",
        "body": "Stegstr hides Nostr messages and arbitrary payloads inside PNG images using steganography. Users embed their feed (posts, DMs, JSON) into images and share them; recipients use Detect to load the hidden content. No registration, works offline."
      },
      {
        "title": "When to use this skill",
        "body": "User wants to decode (extract) hidden data from a PNG that contains Stegstr data.\nUser wants to embed a payload into a cover PNG (e.g. Nostr bundle, JSON, text).\nUser mentions steganography, Nostr-in-images, Stegstr, hiding data in images, or secret messages in photos.\nUser needs programmatic access for automation, scripts, or AI agents."
      },
      {
        "title": "CLI (headless)",
        "body": "Build the CLI from the Stegstr repo:\n\ngit clone https://github.com/brunkstr/Stegstr.git\ncd Stegstr/src-tauri\ncargo build --release --bin stegstr-cli\n\nBinary: target/release/stegstr-cli (or stegstr-cli.exe on Windows)."
      },
      {
        "title": "Decode (extract payload)",
        "body": "stegstr-cli decode image.png\n\nWrites raw payload to stdout. Valid UTF-8 JSON is printed as text; otherwise base64:<data>. Exit 0 on success."
      },
      {
        "title": "Detect (decode + decrypt app bundle)",
        "body": "stegstr-cli detect image.png\n\nDecodes and decrypts; prints Nostr bundle JSON { \"version\": 1, \"events\": [...] }."
      },
      {
        "title": "Embed (hide payload in image)",
        "body": "stegstr-cli embed cover.png -o out.png --payload \"text or JSON\"\nstegstr-cli embed cover.png -o out.png --payload @bundle.json\nstegstr-cli embed cover.png -o out.png --payload @bundle.json --encrypt\n\nUse --payload @file to load from file. Use --encrypt so any Stegstr user can detect. Use --payload-base64 <base64> for binary payloads."
      },
      {
        "title": "Post (create kind 1 note bundle)",
        "body": "stegstr-cli post \"Your message here\" --output bundle.json\nstegstr-cli post \"Message\" --privkey-hex <64-char-hex> --output bundle.json\n\nCreates a Nostr bundle; use stegstr-cli embed to hide it in an image."
      },
      {
        "title": "Example workflow",
        "body": "# Create a post bundle\nstegstr-cli post \"Hello from OpenClaw\" --output bundle.json\n\n# Embed into a cover image (encrypted for any Stegstr user)\nstegstr-cli embed cover.png -o stego.png --payload @bundle.json --encrypt\n\n# Recipient detects and extracts\nstegstr-cli detect stego.png"
      },
      {
        "title": "Image format",
        "body": "PNG only (lossless). JPEG or other lossy formats will corrupt the hidden data."
      },
      {
        "title": "Payload format",
        "body": "Magic: STEGSTR (7 bytes ASCII)\nLength: 4 bytes, big-endian\nPayload: UTF-8 JSON or raw bytes (desktop app encrypts; CLI can embed raw or --encrypt)\n\nDecrypted bundle: { \"version\": 1, \"events\": [ ... Nostr events ... ] }. Schema: bundle.schema.json."
      },
      {
        "title": "Links",
        "body": "agents.txt: https://www.stegstr.com/agents.txt\nFor agents: https://www.stegstr.com/wiki/for-agents.html\nCLI docs: https://www.stegstr.com/wiki/cli.html\nDownloads: https://github.com/brunkstr/Stegstr/releases/latest"
      }
    ],
    "body": "Stegstr\n\nStegstr hides Nostr messages and arbitrary payloads inside PNG images using steganography. Users embed their feed (posts, DMs, JSON) into images and share them; recipients use Detect to load the hidden content. No registration, works offline.\n\nWhen to use this skill\nUser wants to decode (extract) hidden data from a PNG that contains Stegstr data.\nUser wants to embed a payload into a cover PNG (e.g. Nostr bundle, JSON, text).\nUser mentions steganography, Nostr-in-images, Stegstr, hiding data in images, or secret messages in photos.\nUser needs programmatic access for automation, scripts, or AI agents.\nCLI (headless)\n\nBuild the CLI from the Stegstr repo:\n\ngit clone https://github.com/brunkstr/Stegstr.git\ncd Stegstr/src-tauri\ncargo build --release --bin stegstr-cli\n\n\nBinary: target/release/stegstr-cli (or stegstr-cli.exe on Windows).\n\nDecode (extract payload)\nstegstr-cli decode image.png\n\n\nWrites raw payload to stdout. Valid UTF-8 JSON is printed as text; otherwise base64:<data>. Exit 0 on success.\n\nDetect (decode + decrypt app bundle)\nstegstr-cli detect image.png\n\n\nDecodes and decrypts; prints Nostr bundle JSON { \"version\": 1, \"events\": [...] }.\n\nEmbed (hide payload in image)\nstegstr-cli embed cover.png -o out.png --payload \"text or JSON\"\nstegstr-cli embed cover.png -o out.png --payload @bundle.json\nstegstr-cli embed cover.png -o out.png --payload @bundle.json --encrypt\n\n\nUse --payload @file to load from file. Use --encrypt so any Stegstr user can detect. Use --payload-base64 <base64> for binary payloads.\n\nPost (create kind 1 note bundle)\nstegstr-cli post \"Your message here\" --output bundle.json\nstegstr-cli post \"Message\" --privkey-hex <64-char-hex> --output bundle.json\n\n\nCreates a Nostr bundle; use stegstr-cli embed to hide it in an image.\n\nExample workflow\n# Create a post bundle\nstegstr-cli post \"Hello from OpenClaw\" --output bundle.json\n\n# Embed into a cover image (encrypted for any Stegstr user)\nstegstr-cli embed cover.png -o stego.png --payload @bundle.json --encrypt\n\n# Recipient detects and extracts\nstegstr-cli detect stego.png\n\nImage format\n\nPNG only (lossless). JPEG or other lossy formats will corrupt the hidden data.\n\nPayload format\nMagic: STEGSTR (7 bytes ASCII)\nLength: 4 bytes, big-endian\nPayload: UTF-8 JSON or raw bytes (desktop app encrypts; CLI can embed raw or --encrypt)\n\nDecrypted bundle: { \"version\": 1, \"events\": [ ... Nostr events ... ] }. Schema: bundle.schema.json.\n\nLinks\nagents.txt: https://www.stegstr.com/agents.txt\nFor agents: https://www.stegstr.com/wiki/for-agents.html\nCLI docs: https://www.stegstr.com/wiki/cli.html\nDownloads: https://github.com/brunkstr/Stegstr/releases/latest"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/brunkstr/stegstr",
    "publisherUrl": "https://clawhub.ai/brunkstr/stegstr",
    "owner": "brunkstr",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/stegstr",
    "downloadUrl": "https://openagent3.xyz/downloads/stegstr",
    "agentUrl": "https://openagent3.xyz/skills/stegstr/agent",
    "manifestUrl": "https://openagent3.xyz/skills/stegstr/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/stegstr/agent.md"
  }
}