agentCLAWHUBUnverified

postnext-social-manager

Manage social media through PostNext - schedule, publish, and analyze posts across Twitter/X, Instagram, LinkedIn, Threads, YouTube, TikTok, and Bluesky via the PostNext public API. Use when the user wants to draft, schedule, or publish social posts, upload media for posts, check what is queued, cancel a scheduled post or delete a post from PostNext, read social analytics (engagement, best time to post, audience growth) or refresh them with an analytics sync, and has a PostNext account and API key. Publishing, scheduling, cancelling, deleting and uploading always preview first and need the user's approval.

OpenClaw

Rank

62

Safety

84

Downloads

3.2k

Updated

Oct 9, 2026

Version

0.1.5

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 3.2K downloads reported by the source. Last updated 10/9/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 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
3.2K downloadsadoption · observed Oct 9, 2026
Latest release
0.1.5release · observed Oct 6, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17bd5rjn15fnxx5tdp2322sax8az52p:postnext-social-manager
  1. Install using `clawhub skill install s17bd5rjn15fnxx5tdp2322sax8az52p:postnext-social-manager` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/postnextio/postnext-social-manager before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-postnextio-postnext-social-manager/snapshot"

Documentation

CLAWHUB

146,202 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: postnext-social-manager
description: Manage social media through PostNext - schedule, publish, and analyze posts across Twitter/X, Instagram, LinkedIn, Threads, YouTube, TikTok, and Bluesky via the PostNext public API. Use when the user wants to draft, schedule, or publish social posts, upload media for posts, check what is queued, cancel a scheduled post or delete a post from PostNext, read social analytics (engagement, best time to post, audience growth) or refresh them with an analytics sync, and has a PostNext account and API key. Publishing, scheduling, cancelling, deleting and uploading always preview first and need the user's approval.
allowed-tools: Bash(./postnext:*), Bash(curl:*), Bash(jq:*), Read
metadata:
  requires:
    bins: [bash, curl, jq]
    env: [POSTNEXT_API_KEY]
---

# PostNext Social Manager

Drive a PostNext account programmatically: connect channels, upload media, compose and schedule or publish posts across platforms, and read analytics. Wraps the PostNext public REST API with an API key.

## Setup

1. The user creates an API key at https://postnext.io/account/api-keys (shown only once).
2. Export it: `export POSTNEXT_API_KEY=<key>`
3. Base URL is `https://api-app.postnext.io`. Auth header on every request: `x-api-key: $POSTNEXT_API_KEY`.

Two ways to use this skill:
- **Helper (recommended where a shell is available):** the bundled `postnext` script (needs `curl` + `jq`). It handles the fiddly, error-prone parts for you. Run `./postnext help`.
- **Raw curl (works anywhere, including no-filesystem sandboxes):** every operation has a copy-paste curl recipe in `references/`.

## The core loop

1. **Connect** (one-time, done by the user in the PostNext web app - there is no API to connect a channel). Confirm what is connected: `postnext channels`.
2. **Upload media** if the post has an image or video: `postnext upload ./clip.mp4` prints an asset URL (or pass the file straight to `--media` in step 3).
3. **Compose + publish now** or **schedule**:
   - `postnext post --provider twitter --text "..." --media ./a.png`
   - `postnext schedule --provider instagram --text "..." --media ./a.jpg --at 2026-07-25T14:00:00Z`

   Every command that changes the account (`post`, `schedule`, `cancel`, `delete`, `upload`) first prints a **preview and sends nothing** (exit code 3). Show the preview to the user. Only after they approve it, run the identical command again with `--confirm <code>` from the preview. The code covers that exact operation: if the text, media, time or target changes, preview again and get a fresh approval.
4. **Measure**: `postnext analytics overview`, `postnext analytics best-time twitter`, `postnext results`.

## Safety

- The API key acts on the user's real social accounts. Use a dedicated key, and never paste it into posts, logs or URLs.
- Confirm with the user before any publish, schedule, cancel, delete or upload. The helper enforces this: without the `--confirm` code from its own preview it sends nothi

README.md

# postnext-social-manager

A Claude Agent Skill for managing social media through [PostNext](https://postnext.io). It lets an agent connect-aware, upload media, compose, schedule, and publish posts across Twitter/X, Instagram, LinkedIn, Threads, YouTube, TikTok, and Bluesky, and read analytics - all via the PostNext public API with a single API key.

## Install

Copy this directory into your skills location (for Claude Code, a `skills/` directory the harness scans), then set your key:

```bash
export POSTNEXT_API_KEY=<your key>   # create at https://postnext.io/account/api-keys
```

The bundled `postnext` helper needs `curl` and `jq`. In an environment with no shell (for example claude.ai), the skill still works: every operation has a raw curl recipe in `references/`.

## Quick start

```bash
./postnext channels                                   # what is connected
./postnext post --provider twitter --text "Hello" --media ./hero.png   # prints a preview, sends nothing
./postnext post --provider twitter --text "Hello" --media ./hero.png --confirm <code>   # after the user approves
./postnext schedule --provider instagram --text "Launch" --media ./a.jpg --at 2026-07-25T14:00:00Z
./postnext analytics best-time twitter
```

Run `./postnext help` for the full command list. `post`, `schedule`, `cancel`, `delete` and `upload` always preview first and need the `--confirm` code from that preview to run. `bash tests/confirm.sh` checks this offline.

## What is in here

| Path | What |
|------|------|
| `SKILL.md` | Skill entry point: setup, the core loop, and a router to the references. |
| `postnext` | Bash helper (curl + jq) that handles the API's error-prone parts. |
| `references/` | Per-area docs with raw curl recipes: posts, media, channels, analytics, errors. |
| `tests/confirm.sh` | Proves the five account-changing commands send nothing without a matching `--confirm` code. |
| `docs/` | Design spec. |

## Scope

Covers the PostNext social publishing and analytics loop. Out of scope (use the PostNext MCP at `mcp.postnext.io` or the web app): connecting channels, WordPress/blog posts, brand-profile edits, and team management.

## License

MIT. See `LICENSE`. Not affiliated with post-bridge; inspired by the shape of its social-manager skill.

_meta.json

{
  "ownerId": "kn7cy875pa1wnbqcte11mew4kd8ay84v",
  "slug": "postnext-social-manager",
  "version": "0.1.5",
  "publishedAt": 1791268438875
}

references/analytics.md

# Analytics

All analytics endpoints return `{success, data}`. Several require a paid tier (noted). Metrics exist only for **PUBLISHED** posts - per-post calls error on drafts or scheduled posts.

## Freshness

Stored metrics are periodically snapshotted. To pull fresh numbers on demand:

`POST /api/v1/analytics/sync` (paid) -> `{synced, summary:{twitterSnapped, instagramSnapped, tiktokSnapped, linkedinSnapped}}`. Rate-limited and bounded by per-platform caps. Call it before reading if you need current data.

## Endpoints

| Endpoint | Purpose | Params |
|----------|---------|--------|
| `GET /api/v1/analytics` | last-7-day counts of posts/ideas/assets | - |
| `GET /api/v1/analytics/overview` | totals (impressions, reach, likes, comments, engagementRate) + vsPrevious | `channel`, `period` |
| `GET /api/v1/analytics/posts` | per-post rows | `channel`, `period`, `sort=engagement|impressions|likes|recent` |
| `GET /api/v1/analytics/daily` | per-day activity counts | `days` (1-60) |
| `GET /api/v1/analytics/audience-growth` | follower time series | `channel`, `period` |
| `GET /api/v1/analytics/engagement-over-time` (paid) | engagement rate per day | `channel`, `period` |
| `GET /api/v1/analytics/best-time-to-post` (paid) | ranked posting slots from your own performance | `platform` (required), `timezone`, `topN` |
| `GET /api/v1/analytics/post/{postId}` | latest metrics, one row per provider | - |
| `GET /api/v1/analytics/post/{postId}/daily` | daily snapshots + day-over-day deltas | - |

`period` is one of `7d`, `30d`, `90d`, `all` (default `30d`). `channel` filters to one provider/channel id; omit or `all` for no filter.

## Capability flag

`overview`, `posts`, and `engagement-over-time` may include a `capability` field: `ok`, `insights_unavailable`, `api_tier_limited`, `no_data_yet`, or `unsupported` (it can also be `null`/absent, which means normal). If it is present and not `ok`, tell the user why the numbers are thin (for example a platform whose API tier does not expose insights) rather than presenting zeros as real.

`engagementRate` is a fraction (multiply by 100 for a percentage).

## Examples

```bash
BASE=https://api-app.postnext.io
curl -sS "$BASE/api/v1/analytics/overview?period=30d" -H "x-api-key: $POSTNEXT_API_KEY"
curl -sS "$BASE/api/v1/analytics/best-time-to-post?platform=instagram&timezone=Europe/Bucharest&topN=5" -H "x-api-key: $POSTNEXT_API_KEY"
curl -sS -X POST "$BASE/api/v1/analytics/sync" -H "x-api-key: $POSTNEXT_API_KEY"
```

references/channels.md

# Channels (connections)

Channels are connected in the PostNext web app - there is no API to start an OAuth connection. This skill only lists and reads them.

## List connected channels

`GET /api/connections` returns a **bare JSON array** (no envelope). Each item:

```jsonc
{
  "provider": "twitter",           // one of twitter/instagram/linkedin/threads/youtube/tiktok/bluesky
  "channelName": "@yourbrand",     // the connected handle - use this in a post's channelName
  "providerId": "tw_9f3a1c20e5",   // platform-native account id - use this in a post's providerId
  "uniqueId": "...",                 // internal UUID - do NOT use for posting
  "requiresAttention": true,       // true only when a token refresh actually failed (re-auth needed)
  "isActive": true,
  "avatar": "...", "createdAt": "...", "tokenExpiry": "..."
}
```

## Resolving providerId for a post (trap #3)

To post to a channel, pick the connection by matching `provider` (and `channelName` if the user named one), then copy its **`providerId`** and `channelName` into the post entry. Never use `uniqueId` - the publish worker needs the platform-native `providerId` or it fails silently.

```bash
# providerId + channelName for a given provider
curl -sS https://api-app.postnext.io/api/connections -H "x-api-key: $POSTNEXT_API_KEY" \
  | jq -r '.[] | select(.provider=="twitter") | "\(.channelName)\t\(.providerId)"'
```

Use `requiresAttention == true` (not `tokenExpiry`) to decide whether a channel needs the user to re-authenticate in the web app before it can publish.

## Check one channel

`GET /api/connections/{provider}/{channelName}/check` returns a flat status object whose HTTP status mirrors the `status` field: `active` -> 200, `expired` -> 401, `invalid` -> 404.

```jsonc
{ "status": "active", "message": "...", "expiresAt": "..." }
```
Github ReposUpdated 2h agoRank 70

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!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/postnextio/skills/postnext-social-manager",
      "sourceUrl": "https://clawhub.ai/postnextio/skills/postnext-social-manager",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T09:17:28.403Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-postnextio-postnext-social-manager/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-postnextio-postnext-social-manager/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T09:17:28.403Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "3.2K downloads",
      "href": "https://clawhub.ai/postnextio/postnext-social-manager",
      "sourceUrl": "https://clawhub.ai/postnextio/postnext-social-manager",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T09:17:28.403Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "0.1.5",
      "href": "https://clawhub.ai/postnextio/postnext-social-manager",
      "sourceUrl": "https://clawhub.ai/postnextio/postnext-social-manager",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-06T06:33:58.875Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-postnextio-postnext-social-manager/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-postnextio-postnext-social-manager/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 0.1.5",
      "description": "Declare bash in requires.bins (the helper is a bash script).",
      "href": "https://clawhub.ai/postnextio/postnext-social-manager",
      "sourceUrl": "https://clawhub.ai/postnextio/postnext-social-manager",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-06T06:33:58.875Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to postnext-social-manager and adjacent AI workflows.