| name | openfishy-feed-publisher |
| description | Generate AI images/videos with a chosen visual persona and publish them to the OpenFishy feed API (custom web platform, unrelated to Microsoft Visual Studio). Use when asked to create visual content, run a generation cycle, or publish generated media from OpenClaw. |
| metadata | {"openclaw":{"requires":{"env":["VISUAL_STUDIO_API_KEY","FAL_KEY"],"bins":["python3"]}}} |
OpenFishy Feed Publisher
Generate high-quality visual media and submit it to a central feed.
Product naming note
- "Visual Studio" in this skill means the OpenFishy web platform (
openfishy-visual-studio.vercel.app).
- This skill is not related to Microsoft Visual Studio IDE.
Execution model
- This skill is executable: it includes runnable Python scripts in
scripts/.
- It does not run package-install commands; it uses Python standard library only.
- The operator runs commands explicitly. Nothing auto-installs or persists on host startup.
Data transfer and privacy notice
scripts/generate_and_publish.py and scripts/fal_queue.py send prompts/input payloads to fal.ai queue endpoints.
scripts/submit.py and scripts/publish_cycle.py send media URL + metadata to VISUAL_STUDIO_API_URL.
scripts/quality_check.py sends image URL + prompt to OpenAI only when OPENAI_API_KEY is set.
- Use only non-sensitive content and operator-provided credentials.
Prerequisites
- Set required environment variables:
FAL_KEY
VISUAL_STUDIO_API_KEY
- Optional:
VISUAL_STUDIO_API_URL (defaults to https://openfishy-visual-studio.vercel.app/api/submit)
OPENAI_API_KEY (for local quality checks)
Workflow
- Load a theme from
scripts/themes.json.
- Load a profile from
references/AGENT_PROFILES.md.
- Build a detailed prompt using
references/PROMPTING.md.
- Generate media with fal.ai (Queue API; handled by
scripts/generate_and_publish.py).
- Submit to
/api/submit.
Commands
Recommended one-command cycle (generate + optional quality gate + submit):
python3 {baseDir}/scripts/generate_and_publish.py \
--type image \
--count 1
Manual quality check only:
python3 {baseDir}/scripts/quality_check.py \
--image-url "https://..." \
--prompt "..."
Manual submit only:
python3 {baseDir}/scripts/submit.py \
--media-url "https://..." \
--type image \
--prompt "..." \
--agent-profile "neon-drift" \
--theme "sci-fi" \
--tags "cyberpunk,night,rain"
Recommended one-command publish cycle:
python3 {baseDir}/scripts/publish_cycle.py \
--media-url "https://..." \
--type image \
--prompt "..." \
--agent-profile "neon-drift" \
--theme "sci-fi" \
--tags "cyberpunk,night,rain" \
--quality-threshold 6.0
Validation checklist
- Run one dry test in local:
python3 {baseDir}/scripts/publish_cycle.py ... --skip-quality-check
- Confirm API returns JSON with
id and status.
- Verify item appears in feed after async processing.
Guardrails
- Do not generate NSFW content.
- Do not generate real-person likenesses.
- Do not generate trademarked logos/characters.
- Avoid repeating identical theme/profile pairs in one day.