@shellbot/openclaw-pixcli
OpenClaw tool plugin for pixcli — give any OpenClaw / ShellBot agent first-class, typed tools to generate and edit images, video, voiceover, music, sound effects, and full podcasts.
It's a thin, native client over the hosted pixcli API (https://pixcli.shellbot.sh): each tool submits an async job, waits for it, and returns a shareable URL. No subprocess, no pixcli npm install at runtime. The plugin also contributes standing usage guidance to the agent (so it knows which tool to reach for) via each tool's rich description plus a memory prompt supplement.
Install
openclaw plugins install clawhub:shellbot/openclaw-pixcli
Configure
Set an API key via plugin config or the PIXCLI_API_KEY environment variable.
// openclaw config
{
plugins: {
entries: {
pixcli: {
config: {
apiKey: "px_...", // or set PIXCLI_API_KEY in the environment
defaultPublish: "public", // auto-publish results → shareable URLs (public | private)
// baseUrl: "https://pixcli.shellbot.sh",
// pollTimeoutMs: 600000,
},
},
},
},
}
Get a key at https://pixcli.shellbot.sh.
Tools
| Tool | What it does |
|---|---|
pixcli_image | Generate an image (or image-to-image) from a prompt |
pixcli_edit | Edit an existing image (inpaint / outpaint / restyle) |
pixcli_video | Generate / extend video; image-to-video; start→end transition |
pixcli_voice | Text-to-speech voiceover |
pixcli_voice_clone (opt-in) | Clone a voice from samples → voice_id |
pixcli_music | Generate background music |
pixcli_sfx | Generate a sound effect |
pixcli_dialogue (opt-in) | Multi-speaker conversation audio |
pixcli_podcast | Write + record a multi-speaker podcast (with cover art) |
pixcli_tryon (opt-in) | Virtual garment try-on (FLUX Pro VTO) |
pixcli_job | Check / wait on a job; recover one that timed out |
pixcli_models | List available models (read-only) |
pixcli_publish (opt-in) | Change a result's share visibility / TTL / slug |
Opt-in tools must be allowlisted by the host before they're offered to the model:
{ tools: { allow: ["pixcli_voice_clone", "pixcli_dialogue", "pixcli_tryon", "pixcli_publish"] } }
Notes
- Image/audio/video inputs are URLs (public or prior pixcli asset URLs). Local file paths are not supported in this version.
- Generation is async. Tools wait up to
pollTimeoutMs(default 10 min); on timeout the job keeps running and the result includes apixcli_jobhandle to recover it. - Returned shape:
{ job_id, status, model, cost, elapsed_ms, share_url, assets[] }. Each asset has a short-lived signedurland (when published) a stablepublished_url.
Network access
This plugin contacts exactly one host: the pixcli API (default https://pixcli.shellbot.sh, overridable via the baseUrl config or PIXCLI_API_URL). It sends the user-provided PIXCLI_API_KEY as an Authorization: Bearer header and calls only these endpoints:
POST /api/v1/generate,/api/v1/generate/advanced— images, virtual try-onPOST /api/v1/edit,/api/v1/edit/advanced— image editsPOST /api/v1/video,/api/v1/video/advanced,/api/v1/video/extendPOST /api/v1/audio/{voice,voice-clone,music,sfx,dialogue,podcast}GET /api/v1/models— read-only model listGET /api/v1/jobs/:id,/api/v1/jobs/:id/result— job status + resultsPOST /api/v1/publish— share-visibility control
No other hosts are contacted; there is no telemetry, no local filesystem access, and no subprocess execution. Media inputs are caller-supplied URLs. (This is also shipped as clawscan-note.txt and passed to ClawScan on every publish.)
Develop
npm install
npm run build # tsc → dist/
Built artifact: dist/index.js (referenced by openclaw.extensions in package.json). Keep contracts.tools in openclaw.plugin.json in sync with the tools registered in index.ts.
Built by ShellBot. Part of the pixcli project.