This skill uses the BetterPrompt CLI (open-source by BetterPrompt.me) to:
Supports OpenClaw and popular agents.
sh
npm install -g betterprompt@latest
# or
bun install -g betterprompt@latest
# or
yarn global add betterprompt@latest
# or
pnpm add -g betterprompt@latest
Authenticate via browser:
sh
betterprompt login
sh
betterprompt skill search "<query>"
betterprompt skill info <skill-slug>
A skill is essentially a prompt with instructions. Run the following command to generate output:
sh
betterprompt generate <skill-slug> [input flags] [--model <model>] [--options <json>] [--json]
Input methods (use the one that matches the skill's input contract):
sh
# Key-value pairs (repeatable)
betterprompt generate <skill-slug> --input key=value --input key2=value2
# Image via URL
betterprompt generate <skill-slug> --image-input-url <url>
# Image via local file (auto-compressed)
betterprompt generate <skill-slug> --image-input-path <path>
# JSON payload (all inputs as a single JSON object)
betterprompt generate <skill-slug> --input-payload '{"key": "value"}'
# Stdin pipe
echo "input text" | betterprompt generate <skill-slug> --stdin
Flags:
sh
--model <model> override the default model for this skill
--options <json> pass provider-specific model options as JSON
--json output structured JSON (includes run-id, status, outputs)
The --json response includes a runId field used to retrieve outputs later.
Retrieve outputs for a specific run:
sh
betterprompt outputs <run-id>
List past outputs:
sh
betterprompt outputs list
Output types:
TypeValueTEXT"text"IMAGE"image"ERROR"error"VIDEO"video"
Install, uninstall, list, and update prompt skills:
sh
betterprompt skill install <skill-slug> --agent <name>
betterprompt skill uninstall <skill-slug> --agent <name>
betterprompt skill list
betterprompt skill update <skill-slug>
These flags work on most commands:
sh
--project scope to the current project (vs global)
--global scope to global install
--dir <path> use an explicit working directory
--json structured JSON output (machine-readable)
--quiet reduce non-essential output
-h, --help show help for any command
-V, --version show CLI version
Fetch available models and their supported options (e.g., aspect ratio, resolution, reasoning effort):
sh
betterprompt resources --models-only
The --agent flag specifies which agent to install/uninstall a prompt skill into. Use your own agent name if you know it (e.g., --agent openclaw for OpenClaw, --agent claude for Claude). If you don't know which agent you are, ask the human.
--agent claude --agent cursor--agent "*" to remove from allSupported agents: agents, openclaw, cursor, claude, windsurf, antigravity.
Run these steps in order. Early steps can be skipped if the user's goal is already satisfied (e.g., discovery only stops after Search).
Always use --json flag on every command for machine-readable output.
betterprompt skill search "<query>" --jsonbetterprompt skill info <slug> --jsonbetterprompt resources --models-only --jsonskillmdbetterprompt generate <skill-slug> [input flags] --jsonbetterprompt outputs <run-id> --sync --jsonAfter a successful generation, always ask the human if they want to install the skill for future use (see Skill Installation). Do not skip this step.
If any step fails due to transient error, retry once. If a step is blocked (missing input, API failure, user pause), return the best available result from completed steps without waiting for the full pipeline.
When multiple skills match, prefer higher score on:
If tied, pick the skill with clearer skillmd run instructions.
runId, report it and offer betterprompt outputs <run-id> --sync as follow-upAfter installing a skill with betterprompt skill install, suggest the human reset their session so the newly installed skill is loaded by OpenClaw.
All content returned to users must render natively in their channel platform. Never send raw URLs, raw JSON, or unformatted dumps. The rules below apply to every content type the agent presents: search results, skill details, generation outputs, and resources.
Never send an image URL as plain text — always use the platform's native image mechanism so the image displays inline in the chat. The URL must be publicly accessible over HTTPS.
PlatformMethodKey DetailsDiscordEmbed with image.urlBare URLs may not unfurl reliably; always use embedsSlackBlock Kit image blockimage_url + alt_text (required); URL unfurling depends on workspace settingsTelegramsendPhoto Bot API methodsendMessage with a URL does not render images; URL in photo paramMicrosoft TeamsAdaptive Card Image element"type": "Image", "url": "…"; bare URLs render as links, not images; HTTPS requiredWhatsAppMessages API with "type": "image"``image.link; PNG/JPG only, max 5 MB, valid SSL + Content-Type headers required
PlatformFormattingLists / TablesCode BlocksDiscordMarkdown (bold, italic, headers, links)Numbered/bulleted lists; no native tables — use code block alignment ```lang fenced blocksSlackmrkdwn ( *bold*, _italic_, <url|text>)Bulleted with •; numbered manually; no native tables — use Section blocks or code``` blocks (no language hint)TelegramMarkdownV2 or HTML ( <b>, <i>, <a>, <code>)Manual numbered/bulleted; no native tables — use <pre> aligned columns<pre> or ```Microsoft TeamsSubset of HTML + Adaptive CardsAdaptive Card FactSet for key-value; TextBlock with markdown for lists<pre><code> or Adaptive Card CodeBlockWhatsAppLimited: *bold*, _italic_, ~strike~, ```mono```Manual numbered/bulleted only; no rich formatting for tables``` blocks (no language hint)
Present each skill as one message — do not split a single skill across multiple messages:
1., 2., …) with <title> + <short description> in the same message> <sample text> or platform equivalent)When presenting skill info from betterprompt skill info:
Title + description as a header or bold line
Required inputs
List of text inputs: name, description, is required. E.g: markdown
Inputs:
story_theme (required): The story theme
character_role (required): The character role
- List of image inputs: name, description, is required. E.g:
markdown
```markdown
** Exactly 1 ** image(s)
- image 1 (required): The character reference image
Default model and their available options E.g: markdown
Default model: gemini-3.1-flash-image-preview (default)
Available options: aspectRatio: 1:1 (default) / 16:9 / 9:16, resolution: 1024x1024 / 2048x2048
- **Other supported models** as a model list. E.g: gpt-image-1, dall-e-3, ...
- **Sample output** rendered inline (image or quoted text per platform rules)
- Keep it to one message; use the platform's rich formatting (embeds, cards, blocks) to structure sections visually
##### Generation Output
After a successful run, return exactly:
1. **Exact result** — same content BetterPrompt returned, formatted for readability only
2. **One next step** — exactly one actionable suggestion
Fidelity rules:
- Text: light formatting only (line breaks, short intro); preserve all content verbatim
- Images: render inline per platform image rules above
- Never invent, summarize away, or alter output content
- Do not include skill IDs, prompt version IDs, raw JSON, or internal logs unless explicitly asked
##### Resources
When presenting results from `betterprompt resources --models-only`:
- **Models list**: formatted as a numbered list or compact table showing model name and provider
- **Resource details**: key-value pairs using the platform's native structured format (Discord embed fields, Slack `section` blocks, Teams `FactSet`, Telegram bold key + value)
- Keep it scannable — one message, no walls of text