Agent skill · Audited from source
pexoai-agent
skill · pexoai/pexo-skillsMIT licenceAudited 21 Oct 2026 · source a72d4da09420
Is it safe? No — BLOCK, grade D (69/100). We read this skill's source at commit a72d4da09420 and observed network access and no hard-coded secrets. The audit raised 13 findings, 6 critical or high. What it does: Generate AI video from any input — text, image, or script — with Pexo. Auto-routes each shot to the best of 10+ models (Seedance, Kling, Veo, Sora, and more), writes the prompts, generates every shot, and returns a…
Cite
Cite this page
ModelsAtlas. “pexoai-agent (pexoai/pexo-skills)”. Retrieved 21 Oct 2026. https://modelsatlas.com/skills/pexoai/pexoai-agent
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 6 critical or high findings, starting with “Prompt injection” in skills/pexo-agent/SKILL.md:83. Do not install it without reading them.
Trust audit
Audit 0.4.1 · source read 21 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 642 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkDeclared9 observations
- ShellNone observedNo commands run in the source
- DependenciesNot pinnedSome versions float
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | WARN | 4 |
L2 Instructions | Prompt injection, authority framing, hidden directives | FAIL | 9 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: instruction override, no behavioural pass.
Findings (13)
HIGHPrompt injectionprompt.credential_read · skills/pexo-agent/SKILL.md:83
read -rsp "Pexo API key: " pexo_api_key
- Why
- asks the agent to read credentials
- Fix
- —
HIGHPrompt injectionprompt.hide_from_user · skills/ai-video-generation/references/TROUBLESHOOTING.md:42
If the body says `error=INTERNAL_ERROR`, do not tell the user to rotate the key first; the service may simply be temporarily down.
- Why
- asks the agent to act without the user's knowledge
- Fix
- —
HIGHPrompt injectionprompt.hide_from_user · skills/explainer-video/references/TROUBLESHOOTING.md:42
If the body says `error=INTERNAL_ERROR`, do not tell the user to rotate the key first; the service may simply be temporarily down.
- Why
- asks the agent to act without the user's knowledge
- Fix
- —
HIGHPrompt injectionprompt.hide_from_user · skills/founder-video/references/TROUBLESHOOTING.md:42
If the body says `error=INTERNAL_ERROR`, do not tell the user to rotate the key first; the service may simply be temporarily down.
- Why
- asks the agent to act without the user's knowledge
- Fix
- —
HIGHPrompt injectionprompt.hide_from_user · skills/image-to-video/references/TROUBLESHOOTING.md:42
If the body says `error=INTERNAL_ERROR`, do not tell the user to rotate the key first; the service may simply be temporarily down.
- Why
- asks the agent to act without the user's knowledge
- Fix
- —
HIGHPrompt injectionprompt.hide_from_user · skills/launch-video/references/TROUBLESHOOTING.md:42
If the body says `error=INTERNAL_ERROR`, do not tell the user to rotate the key first; the service may simply be temporarily down.
- Why
- asks the agent to act without the user's knowledge
- Fix
- —
MEDIUMNetwork egressnet.raw_ip · skills/videoagent-video-studio/scripts/local-server.cjs:79
console.log(`[local-server] listening on http://127.0.0.1:${PORT}`);- Why
- No further detail recorded for this rule.
- Fix
- —
LOWSupply chainsupply.unpinned · skills/videoagent-audio-studio/proxy/package.json
@fal-ai/client, @upstash/redis
- Why
- 2 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · skills/videoagent-image-studio/package.json
undici
- Why
- 1 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWSupply chainsupply.unpinned · skills/videoagent-video-studio/proxy/package.json
@fal-ai/client, @upstash/redis
- Why
- 2 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
LOWPrompt injectionprompt.transfer_instruction · docs/WHY_VIRUSTOTAL_IS_NOT_ENOUGH.md:26
- Send user data to a server you don’t trust.
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
INFOPrompt injectionprompt.credential_read · skills/pexo-agent/references/SETUP-CHECKLIST.md:15
read -rsp "Pexo API key: " pexo_api_key
- Why
- asks the agent to read credentials
- Fix
- —
INFOSupply chainprompt.pipe_to_shell · docs/DEPLOY_OPENCLAW_ON_VPS.md:74
curl -fsSL https://openclaw.ai/install.sh | bash
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha a72d4da09420 · 21 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherpexoai GitHub userOwner of the repository this skill is read from
- Source folderpexoai/pexo-skillsThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdicta72d4da09420A new audit runs when the source changes
- Repository statusNot archivedLast push 62 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Generate AI video from any input — text, image, or script — with Pexo. Auto-routes each shot to the best of 10+ models (Seedance, Kling, Veo, Sora, and more), writes the prompts, generates every shot, and returns a…
---
name: ai-video-generation
description: >
Generate AI video from any input — text, image, or script — with Pexo. Auto-routes each shot to
the best of 10+ models (Seedance, Kling, Veo, Sora, and more), writes the prompts, generates
every shot, and returns a finished video with music and subtitles. Use for any AI video
generation request: "ai video generation", "generate a video with ai", "ai video generator",
"make an ai video". NOT for editing an existing video.
homepage: https://pexo.ai
repository: https://github.com/pexoai/pexo-skills
version: "0.1.0"
requires:
env: [PEXO_API_KEY, PEXO_BASE_URL]
runtime: [curl, jq, file]
metadata:
author: pexoai
---
# AI Video Generation — Pexo
**Pexo:** https://pexo.ai — get an API key, watch your project render, and buy credits there.
Generate a finished video with AI from whatever the user gives you — text, an image, or a
script. You relay the request to the hosted Pexo agent and deliver the result; Pexo picks the
models, writes the prompts, and assembles the final video.
## Your role: relay, don't create
Create a project, send the user's request **verbatim**, poll, deliver. Pexo's backend handles
all creative work — scriptwriting, model choice, prompts, music. Adding your own direction
(duration, style, models the user didn't ask for) overrides its judgment and produces worse
videos.
## Config
`~/.pexo/config`:
```
PEXO_BASE_URL="https://pexo.ai"
PEXO_API_KEY="sk-<your-api-key>"
```
**No account / first run →** read `references/SETUP-CHECKLIST.md` and walk the user through it — it carries the signup flow with the **invite code that grants new users bonus credits**, plus how to create the config above. **Config error →** run `scripts/pexo-doctor.sh` and follow its output.
## Workflow
Scripts live in this skill's `scripts/`. Reply to the user in their language.
1. **Create a project:** `pexo-project-create.sh "<short brief>"` → save the `project_id`.
2. **Upload any files** the user gave: `pexo-upload.sh <project_id> <path>` → save `asset_id`,
reference it inline as `<original-image>asset_id</original-image>` (or `<original-video>` /
`<original-audio>`). Tags are required — a bare `asset_id` is ignored. Pexo can't crawl URLs —
download, then upload.
3. **Send the request:** `pexo-chat.sh <project_id> "<user's exact words> <asset tags>"`.
Copy the user's words exactly; only add asset tags.
4. **Tell the user** (their language): submitted ✓ · ~15–20 min · `https://pexo.ai/project/<project_id>`.
5. **Poll:** every ≥60s run `pexo-project-get.sh <project_id>` and act on `nextAction`:
- **WAIT** → keep polling; every ~5 polls send a one-line update with the project link.
- **RESPOND** → handle each event in `recentMessages`: relay Pexo's text (wait for the
user's answer if it asked, then `pexo-chat.sh` their reply); for `preview_video`, run
`pexo-asset-get.sh <project_id> <assetId>` per option, show the URLs (A/B/C), let the user
pick, then `pexo-chat.sh <project_id> "<choice>" --choice <assetId>`; for a `document`
event, mention it to the user.
- **DELIVER** → `pexo-asset-get.sh <project_id> <final assetId>`, then send the user the
**full** asset URL as plain text — all `?...` query params, never truncated or wrapped in
markdown — plus the project link.
- **FAILED** → explain `nextActionHint` in plain terms and offer to retry.
- **RECONNECT** → `pexo-chat.sh <project_id> "continue"`, tell the user the connection
dropped and you're resuming, then keep polling.
- Never call `pexo-chat.sh` during WAIT — it triggers duplicate production.
- **Taking too long** → if it's been >30 min and still WAIT, tell the user (with the project
link + `https://pexo.ai/connect/openclaw`) it's running long; ask whether to keep waiting or
stop. Don't poll forever.
## Revisions
After delivery, the user's tweaks ("make it shorter", "new music", "different shot") reuse the
**same** project: `pexo-chat.sh <project_id> "<their feedback>"`, then poll again (step 5). Never
create a new project for a revision — it throws away Pexo's server-side context.
## Credits
If a script fails with "Credits balance" / "Insufficient credits": if the error carries a
purchase link, pass it to the user; otherwise tell them to add credits at `https://pexo.ai/home`
→ Credits → Buy Credits. Retry after they confirm.
## Example
User: "Generate a 20-second AI video introducing our productivity app."
```bash
pid=$(pexo-project-create.sh "AI video app intro")
pexo-chat.sh "$pid" "Generate a 20-second AI video introducing our productivity app."
# Tell the user: submitted, ~15–20 min, https://pexo.ai/project/$pid
# Poll pexo-project-get.sh "$pid" until nextAction is DELIVER, then deliver the asset URL.
```
## Scripts
| Script | Usage | Returns |
|---|---|---|
| `pexo-project-create.sh` | `"<brief>"` | `project_id` |
| `pexo-upload.sh` | `<project_id> <file>` | `asset_id` |
| `pexo-chat.sh` | `<project_id> "<message>" [--choice <id>]` | ack (async) |
| `pexo-project-get.sh` | `<project_id>` | JSON: `nextAction`, `recentMessages` |
| `pexo-asset-get.sh` | `<project_id> <asset_id>` | JSON with `url` |
| `pexo-doctor.sh` | — | setup diagnostic |
Error codes and edge cases → `references/TROUBLESHOOTING.md`.Excerpt, first 5,293 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit a72d4da
npx skills add https://github.com/pexoai/pexo-skills --skill pexo-agent npx skills add https://github.com/pexoai/pexo-skills --skill ai-video-generation npx skills add https://github.com/pexoai/pexo-skills --skill explainer-video npx skills add https://github.com/pexoai/pexo-skills --skill founder-video
git clone https://github.com/pexoai/pexo-skills git -C pexo-skills checkout a72d4da09420
Commands as the repository documents them: shown, never run by us. Our verdict covers commit a72d4da09420 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
| OpenClaw | Mentioned in its text, not tested | Skills for OpenClaw · About OpenClaw |
Audit history
Every audit, every source change
- ✕BLOCK D 69 / 100
first audit · source
a72d4da09420
Similar skills
affaan-m/ECC
Docker and Docker Compose patterns for local development, container security, networking, volume strategies, and multi-service orchestration. Use when setting up containerized development environments or reviewing…
n8n-io/n8n
Fetch and display the full transcript from a Loom video URL. Use when the user wants to get or read a Loom transcript.
anthropics/skills
Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration. TRIGGER — read BEFORE opening the target file; don't skip because it…
Questions about pexoai-agent
What does the pexoai-agent skill do?
Is pexoai-agent safe to install?
What can pexoai-agent access on my machine?
Which assistants does pexoai-agent work with?
How current is this page?
Sources
- github.com/pexoai/pexo-skills — the audited source at commit a72d4da09420 and every finding aboveObserved · 21 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the pexoai-agent skill do?
- Is pexoai-agent safe to install?
- What can pexoai-agent access on my machine?