PostNitro
Create on-brand social media carousels, single-image posts, and short videos, and schedule them to LinkedIn, Instagram, TikTok, and Threads from a single command. Turn a topic, article, or X thread into a finished multi-slide post, image, or video (with an optional audio track) — or import your own
Rank
62
Safety
84
Downloads
975
Updated
Oct 11, 2026
Version
1.3.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 975 downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 975 downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.3.0release · observed Aug 18, 2026
- Handshake status
- UNKNOWNsecurity
What changed
Newest first. Only changes that point at a source are listed.
Release 1.3.0release
**PostNitro 1.3.0 adds video creation and import.** - Added support for short video creation: generate or import slides as video scenes, with optional audio and MP4 output. - Introduced the `video generate` and `video import` commands. - Clarified output options: videos support `MP4` (single file) or `DESIGN` modes only. - Updated documentation to reflect video features and new CLI usage examples. - Added a video import example file. - Removed the old skill card markdown file.
Observed Aug 18, 2026 · source
Install and run
Setup complexity: low.
clawhub skill install s17fhdpk451rztcqhmqcbkjwas885q1k:postnitro- Install using `clawhub skill install s17fhdpk451rztcqhmqcbkjwas885q1k:postnitro` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/iammuneeb/postnitro before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-iammuneeb-postnitro/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
149,482 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: postnitro
description: Create on-brand social media carousels, single-image posts, and short videos, and schedule them to LinkedIn, Instagram, TikTok, and Threads from a single command. Turn a topic, article, or X thread into a finished multi-slide post, image, or video (with an optional audio track) — or import your own content — then publish or draft it automatically. Fully scriptable (JSON in, JSON out), so an AI agent can run the entire create-to-schedule workflow. Use this skill whenever the user wants to create a carousel, image post, video, reel, slide post, or multi-slide content, repurpose an article, blog post, or X thread into slides or a video, or automate and schedule social media posts. Use it to create and schedule content through PostNitro, not as a general social-media strategy advisor. Requires a PostNitro API key.
homepage: https://postnitro.ai
metadata: {"openclaw":{"emoji":"🎠","primaryEnv":"POSTNITRO_API_KEY","requires":{"bins":[],"env":["POSTNITRO_API_KEY"]}}}
---
# PostNitro — Create & Schedule Social Posts
PostNitro creates on-brand social media posts — multi-slide carousels, single images, and short videos — and schedules them across LinkedIn, Instagram, TikTok, and Threads. This skill drives it from the command line, so an agent can take a topic, article, or your own content and produce a finished, scheduled post in one workflow. Every command is JSON in / JSON out — safe to script and chain.
## Setup
1. Install the CLI:
```bash
npm install -g @postnitro/cli
```
2. Sign up at https://postnitro.ai and subscribe to a plan — the Embed API requires a **paid subscription** (no free tier). Then generate an API key at account settings → **Embed** → Generate API Key.
3. Authenticate (in order of precedence: `--api-key` flag → env var → saved config):
```bash
postnitro auth set-key pn-xxxx # persists to ~/.postnitro-cli/config.json
export POSTNITRO_API_KEY="pn-xxxx" # or use an env var
```
4. Save defaults so you don't repeat template/brand/preset IDs on every call (the CLI's alternative to per-call flags — no env vars needed):
```bash
postnitro defaults set --template-id <id> --brand-id <id> --preset-id <id> --response-type PDF
```
| Env var | Required | Purpose |
|---------|----------|---------|
| `POSTNITRO_API_KEY` | Yes* | API key (*unless passed via `--api-key` or saved with `auth set-key`) |
> **Key rule:** `carousel generate`/`import` return an **`embedPostId`** (the async job). To *schedule* the result you need its **`designId`** (from the `--wait` output or `carousel output`). Never pass an `embedPostId` to `schedule`.
> **Security:** `auth set-key` stores your API key in plaintext at `~/.postnitro-cli/config.json`. Restrict its file permissions and avoid shared or untrusted machines; run `auth clear` to remove it. This skill runs **no background processes, cron jobs, or startup scripts** — the only local state is the API key and saved defaults, both disclosed ab_meta.json
{
"ownerId": "kn75qwv6mp7qy963qgzggb2qrn815sm8",
"slug": "postnitro",
"version": "1.3.0",
"publishedAt": 1787091069440
}references/cli-reference.md
# PostNitro CLI — Command Reference
Complete reference for `@postnitro/cli`. Every command prints JSON on stdout (exit 0) or a
`{ "success": false, "error": { "message": ... } }` object on stderr (exit 1).
## Global options
Available on every command:
| Flag | Purpose |
|------|---------|
| `--api-key <key>` | API key (overrides env/saved config) |
| `-V, --version` | Print version |
| `-h, --help` | Help for any command/subcommand |
## auth
```
postnitro auth set-key <key> # save to ~/.postnitro-cli/config.json
postnitro auth status # { configured, source, apiKey (masked) }
postnitro auth clear # remove saved key
```
> **Security:** `auth set-key` stores the API key in **plaintext** at `~/.postnitro-cli/config.json`. Restrict its file permissions (`chmod 600`), avoid shared or untrusted machines, and run `auth clear` to remove it. In CI, prefer `--api-key` or the `POSTNITRO_API_KEY` env var over the saved file.
## defaults
```
postnitro defaults get
postnitro defaults set [--template-id <id>] [--brand-id <id>] [--preset-id <id>] [--response-type PDF|PNG|DESIGN]
```
Requires at least one field. Resolution order per field: explicit flag → saved default → auto-select (when exactly one candidate exists).
## template / brand / preset (discovery)
```
postnitro template list [--page <n>] [--limit <n>]
postnitro preset list [--page <n>] [--limit <n>]
postnitro brand list [--page <n>] [--limit <n>]
postnitro brand get <id>
postnitro brand create (--name --handle --image [--company-detail] [--no-show-name|--no-show-handle|--no-show-image]) | --data <json> | --file <json>
postnitro brand update <id> ...same as create...
```
`--data` (inline JSON object) overrides `--file`, which overrides the individual flags.
## carousel
```
postnitro carousel import-template # prints the slide schema + rules
postnitro carousel generate --context <text> [--type text|article|x] [--instructions <text>]
[--template-id] [--brand-id] [--preset-id] [--response-type PDF|PNG|DESIGN]
[--requestor-id <id>] [--wait]
postnitro carousel import (--slides <json> | --file <path>)
[--template-id] [--brand-id] [--response-type] [--requestor-id] [--wait]
postnitro carousel status <embedPostId> # progress + step logs
postnitro carousel output <embedPostId> # file URL(s) + designId + editorUrl
```
- `--type`: `text` (topic/text), `article` (article URL), `x` (X post URL).
- `--response-type`: `PDF` (default) | `PNG` | `DESIGN`. `DESIGN` skips rendering — no file is produced, output has `designId` + `editorUrl` only.
- `--wait`: poll to completion; returns final output incl. `designId` and `editorUrl`.
- `--slides` (inline JSON) overrides `--file`; accepts a bare array or `{ "slides": [...] }`.
- AI images: add `--generate-images` (+ optional `--image-placement`/`--image-strategy`/`--image-context`) — see [AI image generation](#ai-imageexamples/EXAMPLES.md
# PostNitro CLI — Skill Examples Ready-to-use files for the `postnitro` skill. Authenticate first (`postnitro auth set-key pn-...` or `export POSTNITRO_API_KEY=pn-...`). ## Files | File | What it is | Use with | |------|------------|----------| | [import-default.json](import-default.json) | Basic 4-slide import (starting / body / body / ending) | `carousel import` | | [import-infographics.json](import-infographics.json) | Import with `grid` and `cycle` infographic body slides | `carousel import` | | [import-video.json](import-video.json) | 4-scene video import — background image, inline image, and an infographic scene (same slide array as a carousel) | `video import` | | [schedule-post.json](schedule-post.json) | A full `schedule` body (designId + accounts + caption + LinkedIn settings) | `schedule create --file` | ## Import a carousel ```bash # From a file postnitro carousel import --file examples/import-default.json --wait # With infographic slides postnitro carousel import --file examples/import-infographics.json --wait # Same JSON inline (overrides --file) postnitro carousel import --slides "$(cat examples/import-default.json)" --wait ``` ## Import a video Scenes use the same slide array as a carousel — one slide per scene. `--video-duration` is required when you want the rendered MP4 back. ```bash # Rendered MP4, silent postnitro video import --file examples/import-video.json \ --response-type MP4 --video-duration 30 --wait # With an audio track (IDs come from `postnitro audio list`, never a URL) AUDIO=$(postnitro audio list | jq -r '.audios[0].id') postnitro video import --file examples/import-video.json \ --response-type MP4 --video-duration 30 --audio-id "$AUDIO" --wait # Design only — no render; set the duration later in the video maker postnitro video import --file examples/import-video.json --wait ``` A scene holds anything a carousel slide does — `image`, `background_image`, and `layoutType: "infographic"` all work, which is why this example uses one of each. **Want actual motion?** Point an `image` or `background_image` at a **`.gif`** (or use a template whose elements carry animations). The API renders those through its enhanced video pipeline, which captures the movement; without a GIF or animations you get a static scene-by-scene video. Expect the enhanced render to take longer than the 15-45s a plain one does. ## Generate with AI (no JSON file needed — flags only) ```bash postnitro carousel generate --context "5 LinkedIn growth tips" --type text --wait postnitro carousel generate --context "https://yourblog.com/post" --type article --wait postnitro carousel generate --context "https://x.com/user/status/123" --type x --wait # A video instead — each AI-written slide becomes a scene postnitro video generate --context "3 habits that make remote teams faster" \ --response-type MP4 --video-duration 30 --wait ``` ## Schedule a finished design Edit `schedule-post.json` (set a real `designId` from the import/gener
skill-card.md
## Description: PostNitro helps an agent create, import, render, and schedule on-brand carousels, single-image social posts, and short videos across LinkedIn, Instagram, TikTok, and Threads using the PostNitro CLI. This skill is ready for commercial/non-commercial use. ## Publisher: [iammuneeb](https://clawhub.ai/user/iammuneeb) ### License/Terms of Use: MIT-0 ## Use Case: External users, marketers, developers, and agents use this skill to turn topics, articles, X threads, or structured slide JSON into draft or scheduled PostNitro social posts and videos. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: The skill depends on the external @postnitro/cli package and a PostNitro API key with access to connected social accounts. Mitigation: Install only when the package and account access are trusted, and prefer a scoped, temporary, or environment-provided API key. Risk: Saved authentication can store the PostNitro API key in plaintext on the local machine. Mitigation: Prefer the POSTNITRO_API_KEY environment variable or --api-key flag on shared machines, restrict saved config file permissions, and clear saved auth when it is no longer needed. Risk: SCHEDULED actions can publish live social content to selected accounts at the configured time. Mitigation: Confirm the target accounts, post content, and scheduled time before scheduling, and use DRAFT when the user is unsure. ## Reference(s): - [PostNitro Skill Page](https://clawhub.ai/iammuneeb/skills/postnitro) - [PostNitro Homepage](https://postnitro.ai) - [CLI Reference](references/cli-reference.md) - [Skill Examples](examples/EXAMPLES.md) ## Skill Output: **Output Type(s):** [text, markdown, shell commands, configuration, guidance] **Output Format:** [Markdown guidance with bash commands and JSON payloads] **Output Parameters:** [1D] **Other Properties Related to Output:** [Outputs may include PostNitro CLI commands that create, render, draft, or schedule social media content through a connected PostNitro account.] ## Skill Version(s): 1.3.0 (source: server release metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
- Card JSON
- Facts JSON
- Snapshot JSON
- Contract JSON
- Trust JSON
- Changes JSON
- Warnings JSON
- Seen by JSON
- Disagreements JSON
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/iammuneeb/skills/postnitro",
"sourceUrl": "https://clawhub.ai/iammuneeb/skills/postnitro",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T23:35:32.750Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-iammuneeb-postnitro/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-iammuneeb-postnitro/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T23:35:32.750Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "975 downloads",
"href": "https://clawhub.ai/iammuneeb/postnitro",
"sourceUrl": "https://clawhub.ai/iammuneeb/postnitro",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T23:35:32.750Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.3.0",
"href": "https://clawhub.ai/iammuneeb/postnitro",
"sourceUrl": "https://clawhub.ai/iammuneeb/postnitro",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-18T22:11:09.440Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-iammuneeb-postnitro/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-iammuneeb-postnitro/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.3.0",
"description": "**PostNitro 1.3.0 adds video creation and import.** - Added support for short video creation: generate or import slides as video scenes, with optional audio and MP4 output. - Introduced the `video generate` and `video import` commands. - Clarified output options: videos support `MP4` (single file) or `DESIGN` modes only. - Updated documentation to reflect video features and new CLI usage examples. - Added a video import example file. - Removed the old skill card markdown file.",
"href": "https://clawhub.ai/iammuneeb/postnitro",
"sourceUrl": "https://clawhub.ai/iammuneeb/postnitro",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-18T22:11:09.440Z",
"isPublic": true
}
]
}Record generated Oct 12, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust, changes, warnings, seen by, disagreements.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-iammuneeb-postnitro/run-check
