Tools
Powerpost
OpenClaw plugin for PowerPost. Generate captions, images, and publish posts via AI.
Install
npm install
npm
Configuration Example
{
"plugins": {
"entries": {
"openclaw-powerpost": {
"enabled": true,
"config": {
"apiKey": "YOUR_POWERPOST_API_KEY",
"workspaces": {
"main": {
"id": "YOUR_WORKSPACE_UUID",
"label": "My Workspace"
}
}
}
}
},
"allow": ["openclaw-powerpost"]
}
}
README
# openclaw-powerpost
[](https://www.npmjs.com/package/openclaw-powerpost)
[](LICENSE)
[OpenClaw](https://github.com/openclaw/openclaw) plugin for [PowerPost](https://powerpost.ai). Generate captions, create AI images, and publish posts to social media platforms, all from your OpenClaw agent.
**Supported platforms:** Instagram · TikTok · YouTube · X (Twitter) · Facebook
## Installation
```bash
openclaw plugins install openclaw-powerpost
```
## Configuration
Add the plugin to your `openclaw.json`:
```json
{
"plugins": {
"entries": {
"openclaw-powerpost": {
"enabled": true,
"config": {
"apiKey": "YOUR_POWERPOST_API_KEY",
"workspaces": {
"main": {
"id": "YOUR_WORKSPACE_UUID",
"label": "My Workspace"
}
}
}
}
},
"allow": ["openclaw-powerpost"]
}
}
```
| Key | Required | Description |
| ------------ | -------- | ---------------------------------------------- |
| `apiKey` | Yes | PowerPost API key |
| `workspaces` | Yes | Map of workspace name → `{ id, label? }` |
| `baseUrl` | No | API base URL (default: `https://powerpost.ai`) |
### Getting Your API Key
1. Log in to [PowerPost](https://powerpost.ai)
2. Go to **Settings** → **API Keys**
3. Create a new key and copy it into your config
### Getting Your Workspace ID
1. Go to **Settings** → **Workspaces** in PowerPost
2. Copy the workspace UUID
### Multiple Workspaces
You can configure as many workspaces as you need. The agent will ask which one to use when you start a task.
```json
"workspaces": {
"personal": { "id": "uuid-1", "label": "Personal Brand" },
"client": { "id": "uuid-2", "label": "Client Account" }
}
```
## Usage
Once installed, talk to your OpenClaw agent naturally:
- _"Create an Instagram post about our new product launch"_
- _"Generate captions for all platforms from this photo"_
- _"Make me 4 square images for a fitness post"_
- _"How many credits do I have left?"_
- _"Publish the draft we just created"_
The plugin ships with a bundled skill (`skills/powerpost/SKILL.md`) that teaches the agent the full workflow: generate captions, review with you, optionally generate images, assemble a draft, and publish with your confirmation.
### Typical Workflow
```
1. powerpost_upload_media → upload photos/video (optional)
2. powerpost_generate_captions → generate captions for target platforms
3. (review & edit captions with the user)
4. powerpost_generate_images → create AI images (optional)
5. powerpost_create_post → assemble the draft
6. powerpost_publish_post → publish (after user confirmation)
```
## Tools
| Tool | Description |
| ------------------------------------------------------------- | --------------------------------------------------- |
| [`powerpost_list_workspaces`](#powerpost_list_workspaces) | List configured workspaces |
| [`powerpost_generate_captions`](#powerpost_generate_captions) | Generate captions from text, images, or video |
| [`powerpost_generate_images`](#powerpost_generate_images) | Generate AI images from prompts or reference images |
| [`powerpost_upload_media`](#powerpost_upload_media) | Upload a local image or video file |
| [`powerpost_create_post`](#powerpost_create_post) | Create a draft post with one or more platform items |
| [`powerpost_publish_post`](#powerpost_publish_post) | Publish a draft to social platforms |
| [`powerpost_check_credits`](#powerpost_check_credits) | Check account credit balance |
---
### `powerpost_list_workspaces`
List all configured workspaces. Call this first to discover available workspace names.
---
### `powerpost_generate_captions`
Generate social media captions from a text prompt, uploaded images, or video.
| Parameter | Type | Required | Description |
| --------------- | ---------- | -------- | ---------------------------------------------------------------- |
| `workspace` | `string` | Yes | Workspace name from `powerpost_list_workspaces` |
| `prompt` | `string` | \* | Text prompt. Required if no `media_ids` |
| `media_ids` | `string[]` | \* | Media IDs from `powerpost_upload_media`. Required if no `prompt` |
| `post_types` | `string[]` | Yes | Target post types (e.g. `instagram-feed`, `x-post`) |
| `research_mode` | `string` | No | `regular` (default) or `deep` |
| `tone` | `string` | No | Tone of voice (e.g. `Professional`, `Casual`, `Witty`) |
---
### `powerpost_generate_images`
Generate AI images from a prompt, reference images, or a previous caption generation.
| Parameter | Type | Required | Description |
| ------------------ | ---------- | -------- | --------------------------------------------------------------- |
| `workspace` | `string` | Yes | Workspace name |
| `prompt` | `string` | No | Text prompt |
| `size` | `string` | No | `square`, `feed`, `portrait`, or `landscape`. Default: `square` |
| `quantity` | `number` | No | Number of images to generate. Default: `1` |
| `style_images` | `string[]` | No | Media IDs of reference images for style matching |
| `generation_id` | `string` | No | Caption generation ID to use as context |
| `source_post_type` | `string` | No | Post type to pull caption from when using `generation_id` |
---
### `powerpost_upload_media`
Upload a local image or video file to PowerPost. Returns a `media_id` for use with other tools.
| Parameter | Type | Required | Description |
| ----------- | -------- | -------- | ------------------------- |
| `workspace` | `string` | Yes | Workspace name |
| `file_path` | `string` | Yes | Absolute path to the file |
| `type` | `string` | Yes | `image` or `video` |
---
### `powerpost_create_post`
Create a draft post with one or more platform items.
| Parameter | Type | Required | Description |
| --------------- | -------- | -------- | --------------------------------------------------- |
| `workspace` | `string` | Yes | Workspace name |
| `generation_id` | `string` | No | Caption generation ID to auto-populate content from |
| `items` | `array` | Yes | Post items, one per platform/format combo |
Each item in `items`:
| Field | Type | Required | Description |
| ----------- | ---------- | -------- | ------------------------------------------------------ |
| `post_type` | `string` | Yes | Platform and format (e.g. `instagram-feed`) |
| `content` | `string` | No | Caption text (optional if `generation_id` provides it) |
| `title` | `string` | No | Title (required for YouTube post types) |
| `media_ids` | `string[]` | No | Media IDs to attach |
---
### `powerpost_publish_post`
Publish a draft post to its configured social platforms. **This is irreversible.** Always confirm with the user before calling.
| Parameter | Type | Required | Description |
| ----------- | -------- | -------- | ------------------------------------ |
| `workspace` | `string` | Yes | Workspace name |
| `post_id` | `string` | Yes | Post ID from `powerpost_create_post` |
Returns per-item results showing which platforms succeeded or failed.
---
### `powerpost_check_credits`
Check the account's remaining credit balance. Only called when the user explicitly asks.
| Parameter | Type | Required | Description |
| ----------- | -------- | -------- | -------------- |
| `workspace` | `string` | Yes | Workspace name |
## Post Types
| Platform | Post Types |
| --------- | ----------------------------------------------------- |
| Instagram | `instagram-feed`, `instagram-reel`, `instagram-story` |
| TikTok | `tiktok-video`, `tiktok-photos` |
| YouTube | `youtube-video`, `youtube-short` |
| X | `x-post` |
| Facebook | `facebook-post`, `facebook-reel`, `facebook-story` |
## Credits
PowerPost operations consume credits. See [PowerPost pricing](https://powerpost.ai/pricing) for current credit costs.
## Development
```bash
git clone https://github.com/PowerPost/openclaw-powerpost.git
cd openclaw-powerpost
npm install
npm run build # compile TypeScript → dist/
npm run typecheck # type-check without emitting
```
To test locally with OpenClaw, link the plugin:
```bash
openclaw plugins install -l .
```
## Requirements
- [OpenClaw](https://github.com/openclaw/openclaw) with plugin support
- A [PowerPost](https://powerpost.ai) account with an API key
## Contributing
Contributions are welcome! Please open an issue or submit a pull request.
## License
[MIT](LICENSE)
tools
Comments
Sign in to leave a comment