genviral Partner API Skill
TL;DR: Wraps genviral's Partner API into 50+ bash commands. Core flow: get-pack → analyze images (metadata + vision) → generate with pinned_images → render → visual review (hard gate) → create-post → log to workspace/performance/log.json. Studio AI: studio-models → studio-generate-image (sync) or studio-generate-video → studio-video-status --poll (async). Auth via GENVIRAL_API_KEY. Config in defaults.yaml. Instance data in workspace/.
What This Skill Does
- Multi-Platform Posting: Video or slideshow posts across TikTok, Instagram, YouTube, Pinterest, LinkedIn, Facebook
- Studio AI Generation: Generate images (sync) and videos (async) via AI models through the API
- File Management: Upload videos/images to genviral's CDN
- AI Slideshow Generation: Photo carousels from prompts, rendered to images
- Template System: Reusable slideshow structures, convert winners to templates
- Pack Management: Image packs as slideshow backgrounds
- Analytics: KPIs, post-level metrics, tracked accounts, refresh triggers
- Niche Intelligence: One-call trend research (
trend-brief) for hashtags, sounds, creators, posting windows, and hook angles
- Content Pipeline: Full automation from prompt to posted content
- Performance Tracking: Post log, hook tracking, weekly review
- Hook Library: Maintain and evolve a library of proven content hooks
How It Works
- Generate or upload media
- Create a post targeting one or more accounts
- Schedule or publish (for TikTok slideshows, optionally save as drafts so you can add trending audio before publishing — music selection requires human judgment for best results)
- Track performance via analytics
- Learn and optimize
All configuration in defaults.yaml. Secrets via environment variables. Everything posted shows up in the Genviral dashboard.
First-Time Setup
If fresh install, read docs/setup.md and walk the user through onboarding conversationally:
- Set API key and verify it works
- List accounts and pick which to post to
- Discuss image strategy (existing packs, create new, generate per post, or mix)
- Optionally set up product context and brand voice together
No hardcoded defaults. Ask the user what they prefer and adapt. Everything done through this skill shows up in the Genviral dashboard, so the user always has full visibility and control.
File Structure
genviral/
SKILL.md # This file (kernel + routing)
README.md # Human-facing overview
defaults.yaml # API config and defaults
docs/
setup.md # Onboarding guide (conversational, 5 phases)
api/
accounts-files.md # accounts, upload, list-files
posts.md # create-post, update-post, retry, list, get, delete
slideshows.md # generate, render, review, update, regenerate, duplicate, list + text styles
packs.md # pack CRUD + smart image selection (MANDATORY reading for any pack workflow)
templates.md # template CRUD + create-from-slideshow
analytics.md # all analytics commands
studio.md # Studio AI: generate images/videos, list models, poll status
subscription.md # subscription status, credits, tier
pipeline.md # content pipeline, performance loop, CTA testing, platform tips
errors.md # error codes and troubleshooting
references/
analytics-loop.md # Full analytics feedback loop and weekly review process
competitor-research.md # How to research competitors
prompts/
slideshow.md # Prompt templates for slideshow generation
hooks.md # Prompt templates for hook brainstorming
workspace/ # All instance/customer data (override with GENVIRAL_WORKSPACE_DIR)
content/
scratchpad.md # Working content plan and drafts
calendar.json # Upcoming planned posts
context/
product.md # Product description, value props, target audience
brand-voice.md # Tone, style, do's and don'ts
niche-research.md # Platform research for the niche
hooks/
library.json # Hook instances (grows over time, tracks performance)
formulas.md # Hook formula patterns and psychology
performance/
log.json # CANONICAL post record (single source of truth)
hook-tracker.json # Hook and CTA tracking with metrics (the feedback loop)
insights.md # Agent learnings from performance data
weekly-review.md # Weekly review notes
competitor-insights.md # Competitor research findings
scripts/
genviral.sh # Main API wrapper (all commands)
update-skill.sh # Self-updater
Command Routing
Load only what you need for the current task:
| Task |
Read |
| Account discovery, file upload |
docs/api/accounts-files.md |
| Create, update, list, delete posts |
docs/api/posts.md |
| Slideshow generation, rendering, editing, text styles |
docs/api/slideshows.md |
| Pack management, image selection (ANY pack workflow) |
docs/api/packs.md |
| Template creation and management |
docs/api/templates.md |
| Analytics queries and target management |
docs/api/analytics.md |
| Studio AI: generate images, videos, list models |
docs/api/studio.md |
| Subscription: check credits, tier, renewal dates |
docs/api/subscription.md |
| Research a specific niche quickly (trend + competitors + hooks) |
docs/api/analytics.md, docs/references/competitor-research.md, docs/prompts/hooks.md |
| Full content pipeline, performance loop, CTA testing |
docs/api/pipeline.md |
| Error codes, troubleshooting |
docs/api/errors.md |
Niche Research Mode (When user asks to research a niche)
When asked things like "research this niche", "find what works in this niche", or "give me niche intelligence":
- Run
trend-brief first for the niche keyword (7d baseline, then 24h for freshness if needed).
- Extract and report: top hashtags, top sounds, top creators, posting windows (UTC), recommended hook angles.
- Run competitor deep-dive using
docs/references/competitor-research.md (3-5 accounts minimum).
- Produce a short actionable output with:
- 3 hook angles to test
- 2 CTA suggestions
- 2 best posting windows
- 5 hashtags to start with
- 1 "gap to exploit" insight
- Save findings to
workspace/performance/competitor-insights.md and use them in subsequent content prompts.
Non-Negotiable Rules
These apply regardless of what docs you've loaded:
ALWAYS use pinned_images when generating a slideshow with a pack. Never call generate with just --pack-id — the server will pick random images. Read docs/api/packs.md before any pack workflow.
ALWAYS visually review every rendered slide before posting. If any slide fails readability, fix it. This is a hard gate — not a suggestion.
ALWAYS log to workspace/performance/log.json immediately after posting. This is the canonical record.
ALWAYS add a hook-tracker entry after posting. No tracking = no learning.
Never use em-dashes in any generated content.
Respect workspace/ — all instance data lives here. Do not write state files to the skill root.
Script Usage
/path/to/genviral/scripts/genviral.sh <command> [options]
Requires GENVIRAL_API_KEY as an environment variable (format: public_id.secret). Loads defaults from defaults.yaml. Set GENVIRAL_WORKSPACE_DIR to override the workspace path (defaults to workspace/ relative to the skill dir).
Auto-Updates
This skill includes a self-updater that keeps skill-owned files in sync with the latest version from fdarkaou/genviral-skill.
bash scripts/update-skill.sh # check + apply if updates available
bash scripts/update-skill.sh --dry-run # preview only, no changes
bash scripts/update-skill.sh --force # force re-apply even if already current
What gets updated (skill-owned): SKILL.md, scripts/, docs/ (all subdirs)
What never gets touched (user-owned): workspace/ — your data, context, hooks, and performance logs are always preserved.
Notes
- Works with any platform genviral supports (TikTok, Instagram, etc.)
- Supports both video and slideshow posts
- Works with hosted and BYO accounts
- Posts can be scheduled or queued for immediate publishing
- TikTok slideshow drafts: use
post_mode: MEDIA_UPLOAD to save to drafts inbox for audio addition
1---2name: genviral3description: Complete genviral Partner API automation. Create and schedule posts (video + slideshow) across TikTok, Instagram, and any supported platform. Includes slideshow generation, file uploads, template/pack management, analytics, and full content pipeline automation.4---5
6# genviral Partner API Skill
7
8> **TL;DR:** Wraps genviral's Partner API into 50+ bash commands. Core flow: `get-pack` → analyze images (metadata + vision) → `generate` with `pinned_images` → `render` → visual review (hard gate) → `create-post` → log to `workspace/performance/log.json`. Studio AI: `studio-models` → `studio-generate-image` (sync) or `studio-generate-video` → `studio-video-status --poll` (async). Auth via `GENVIRAL_API_KEY`. Config in `defaults.yaml`. Instance data in `workspace/`.
9
10## What This Skill Does
11
12- **Multi-Platform Posting:** Video or slideshow posts across TikTok, Instagram, YouTube, Pinterest, LinkedIn, Facebook
13- **Studio AI Generation:** Generate images (sync) and videos (async) via AI models through the API
14- **File Management:** Upload videos/images to genviral's CDN
15- **AI Slideshow Generation:** Photo carousels from prompts, rendered to images
16- **Template System:** Reusable slideshow structures, convert winners to templates
17- **Pack Management:** Image packs as slideshow backgrounds
18- **Analytics:** KPIs, post-level metrics, tracked accounts, refresh triggers
19- **Niche Intelligence:** One-call trend research (`trend-brief`) for hashtags, sounds, creators, posting windows, and hook angles
20- **Content Pipeline:** Full automation from prompt to posted content
21- **Performance Tracking:** Post log, hook tracking, weekly review
22- **Hook Library:** Maintain and evolve a library of proven content hooks
23
24## How It Works
25
261. Generate or upload media
272. Create a post targeting one or more accounts
283. Schedule or publish (for TikTok slideshows, optionally save as drafts so you can add trending audio before publishing — music selection requires human judgment for best results)
294. Track performance via analytics
305. Learn and optimize
31
32All configuration in `defaults.yaml`. Secrets via environment variables. Everything posted shows up in the Genviral dashboard.
33
34## First-Time Setup
35
36If fresh install, read `docs/setup.md` and walk the user through onboarding conversationally:
371. Set API key and verify it works
382. List accounts and pick which to post to
393. Discuss image strategy (existing packs, create new, generate per post, or mix)
404. Optionally set up product context and brand voice together
41
42No hardcoded defaults. Ask the user what they prefer and adapt. Everything done through this skill shows up in the Genviral dashboard, so the user always has full visibility and control.
43
44## File Structure
45
46```
47genviral/
48 SKILL.md # This file (kernel + routing)
49 README.md # Human-facing overview
50 defaults.yaml # API config and defaults
51
52 docs/
53 setup.md # Onboarding guide (conversational, 5 phases)
54 api/
55 accounts-files.md # accounts, upload, list-files
56 posts.md # create-post, update-post, retry, list, get, delete
57 slideshows.md # generate, render, review, update, regenerate, duplicate, list + text styles
58 packs.md # pack CRUD + smart image selection (MANDATORY reading for any pack workflow)
59 templates.md # template CRUD + create-from-slideshow
60 analytics.md # all analytics commands
61 studio.md # Studio AI: generate images/videos, list models, poll status
62 subscription.md # subscription status, credits, tier
63 pipeline.md # content pipeline, performance loop, CTA testing, platform tips
64 errors.md # error codes and troubleshooting
65 references/
66 analytics-loop.md # Full analytics feedback loop and weekly review process
67 competitor-research.md # How to research competitors
68 prompts/
69 slideshow.md # Prompt templates for slideshow generation
70 hooks.md # Prompt templates for hook brainstorming
71
72 workspace/ # All instance/customer data (override with GENVIRAL_WORKSPACE_DIR)
73 content/
74 scratchpad.md # Working content plan and drafts
75 calendar.json # Upcoming planned posts
76 context/
77 product.md # Product description, value props, target audience
78 brand-voice.md # Tone, style, do's and don'ts
79 niche-research.md # Platform research for the niche
80 hooks/
81 library.json # Hook instances (grows over time, tracks performance)
82 formulas.md # Hook formula patterns and psychology
83 performance/
84 log.json # CANONICAL post record (single source of truth)
85 hook-tracker.json # Hook and CTA tracking with metrics (the feedback loop)
86 insights.md # Agent learnings from performance data
87 weekly-review.md # Weekly review notes
88 competitor-insights.md # Competitor research findings
89
90 scripts/
91 genviral.sh # Main API wrapper (all commands)
92 update-skill.sh # Self-updater
93```
94
95## Command Routing
96
97Load only what you need for the current task:
98
99| Task | Read |
100|------|------|
101| Account discovery, file upload | `docs/api/accounts-files.md` |
102| Create, update, list, delete posts | `docs/api/posts.md` |
103| Slideshow generation, rendering, editing, text styles | `docs/api/slideshows.md` |
104| Pack management, image selection (ANY pack workflow) | `docs/api/packs.md` |
105| Template creation and management | `docs/api/templates.md` |
106| Analytics queries and target management | `docs/api/analytics.md` |
107| Studio AI: generate images, videos, list models | `docs/api/studio.md` |
108| Subscription: check credits, tier, renewal dates | `docs/api/subscription.md` |
109| Research a specific niche quickly (trend + competitors + hooks) | `docs/api/analytics.md`, `docs/references/competitor-research.md`, `docs/prompts/hooks.md` |
110| Full content pipeline, performance loop, CTA testing | `docs/api/pipeline.md` |
111| Error codes, troubleshooting | `docs/api/errors.md` |
112
113## Niche Research Mode (When user asks to research a niche)
114
115When asked things like "research this niche", "find what works in this niche", or "give me niche intelligence":
116
1171. Run `trend-brief` first for the niche keyword (`7d` baseline, then `24h` for freshness if needed).
1182. Extract and report: top hashtags, top sounds, top creators, posting windows (UTC), recommended hook angles.
1193. Run competitor deep-dive using `docs/references/competitor-research.md` (3-5 accounts minimum).
1204. Produce a short actionable output with:
121 - 3 hook angles to test
122 - 2 CTA suggestions
123 - 2 best posting windows
124 - 5 hashtags to start with
125 - 1 "gap to exploit" insight
1265. Save findings to `workspace/performance/competitor-insights.md` and use them in subsequent content prompts.
127
128## Non-Negotiable Rules
129
130These apply regardless of what docs you've loaded:
131
1321. **ALWAYS use `pinned_images`** when generating a slideshow with a pack. Never call `generate` with just `--pack-id` — the server will pick random images. Read `docs/api/packs.md` before any pack workflow.
133
1342. **ALWAYS visually review every rendered slide** before posting. If any slide fails readability, fix it. This is a hard gate — not a suggestion.
135
1363. **ALWAYS log to `workspace/performance/log.json`** immediately after posting. This is the canonical record.
137
1384. **ALWAYS add a hook-tracker entry** after posting. No tracking = no learning.
139
1405. **Never use em-dashes** in any generated content.
141
1426. **Respect `workspace/`** — all instance data lives here. Do not write state files to the skill root.
143
144## Script Usage
145
146```bash
147/path/to/genviral/scripts/genviral.sh <command> [options]
148```
149
150Requires `GENVIRAL_API_KEY` as an environment variable (format: `public_id.secret`). Loads defaults from `defaults.yaml`. Set `GENVIRAL_WORKSPACE_DIR` to override the workspace path (defaults to `workspace/` relative to the skill dir).
151
152## Auto-Updates
153
154This skill includes a self-updater that keeps skill-owned files in sync with the latest version from `fdarkaou/genviral-skill`.
155
156```bash
157bash scripts/update-skill.sh # check + apply if updates available
158bash scripts/update-skill.sh --dry-run # preview only, no changes
159bash scripts/update-skill.sh --force # force re-apply even if already current
160```
161
162**What gets updated (skill-owned):** `SKILL.md`, `scripts/`, `docs/` (all subdirs)
163
164**What never gets touched (user-owned):** `workspace/` — your data, context, hooks, and performance logs are always preserved.
165
166---
167
168## Notes
169
170- Works with any platform genviral supports (TikTok, Instagram, etc.)
171- Supports both video and slideshow posts
172- Works with hosted and BYO accounts
173- Posts can be scheduled or queued for immediate publishing
174- TikTok slideshow drafts: use `post_mode: MEDIA_UPLOAD` to save to drafts inbox for audio addition