Install
openclaw skills install eversinceEversince is a creative agent that plans and executes across image, video, audio, and motion graphics. It lives in a purpose-built environment for creative work, orchestrates the latest AI models, has craft specializations, does agentic video editing, and delivers standalone assets or timeline-assembled videos. Works for one-off tasks or as a creative employee in any agent-to-agent workflow.
openclaw skills install eversinceYou are briefing a creative agent. It reasons through your brief, makes creative decisions, selects AI models, generates images, videos, voiceovers, music, sound effects, motion graphics, and delivers either rendered assembled video or standalone assets as requested. Generate from scratch or hand off your own assets — images, video, audio, URLs — and the agent builds around them.
Full documentation: https://docs.eversince.ai
EVERSINCE_API_KEY. Get one at https://eversince.ai/app/settings.POST /estimate-cost to preview costs and GET /account/credits to check balance before running.https://eversince.ai/api/v1. Optional webhook_url sends status updates to a user-specified URL.Base URL: https://eversince.ai/api/v1
Authentication: API key in the Authorization header.
Authorization: Bearer YOUR_API_KEY
Get your API key at https://eversince.ai/app/settings. Once you have a key, you can create additional keys via POST /keys, list them via GET /keys, and revoke via DELETE /keys/:id.
curl -X POST https://eversince.ai/api/v1/projects \
-H "Authorization: Bearer $EVERSINCE_API_KEY" \
-H "X-Eversince-Source: plugin" \
-H "Content-Type: application/json" \
-d '{
"brief": "Your creative brief here",
"mode": "autonomous"
}'
Response (202):
{
"id": "abc12345-def6-7890-abcd-ef1234567890",
"status": "queued",
"mode": "autonomous",
"project_url": null,
"credits_balance": 4200,
"created_at": "2026-03-30T12:00:00Z"
}
curl https://eversince.ai/api/v1/projects/PROJECT_ID \
-H "Authorization: Bearer $EVERSINCE_API_KEY" \
-H "X-Eversince-Source: plugin"
Poll until the status reaches idle, failed, or cancelled. The status can be one of:
| Status | Meaning |
|---|---|
queued | Waiting to start |
running | Agent is working |
generating | Waiting for model providers |
rendering | Video being assembled |
idle | Agent finished its run — check the response |
failed | Something went wrong |
cancelled | Stopped via cancel endpoint |
When status is idle, the response includes:
output_type — assembled (rendered video available), assets (individual files, no render), or pending (still processing)assembled_url — the rendered video from the active state of the timeline, if the project produced one (expires after 24 hours, re-render to refresh)agent_message — the agent's latest messageproject_url — link to the project in the Eversince studiovariation_id — the active variation IDTo get all generated assets (images, videos, audio): GET /projects/:id/assets
To get the full timeline structure of the active variation: GET /projects/:id/timeline
To get the conversation history: GET /projects/:id/messages
To get all variations: GET /projects/:id/variations
To read the agent's working memory: GET /projects/:id/memory
If the project has an assembled_url, a permanent shareable link can be created via POST /projects/:id/share
For long-term projects (campaigns, series, catalogs), see references/advanced-patterns.md.
The brief is your primary input. The agent makes all creative decisions from it — concept, visuals, models, pacing, audio, everything. Include production preferences (voiceover, music, captions, duration, style) in the brief text — there are no separate fields for these. You can also attach reference files and URLs.
brief is the only required field. Everything else is optional:
| Field | Purpose | Default |
|---|---|---|
brief | What you want produced (required, max 8,000 chars) | — |
title | Project title (max 30 characters) | None |
mode | autonomous (agent runs end-to-end) or collaborative (agent stops for feedback) | autonomous |
aspect_ratio | 16:9, 9:16, 1:1, 21:9 | 16:9 |
craft | auto, general, cinema, animation, ugc, music, photography, motion-graphics | auto |
video_model | Specific video model ID (see GET /models). Models expose capability flags (supports_multi_shot, supports_camera_motion, has_sound, etc.) for informed selection | Agent decides |
image_model | Specific image model ID (see GET /models). Models expose capability flags (supports_reference_images, max_reference_images, etc.) for informed selection | Agent decides |
agent_model | opus-4.7, opus-4.6, or sonnet-4.6 | opus-4.7 |
expected_output | assembled (rendered video from timeline), assets (standalone assets, no render) | Auto-detected |
webhook_url | URL for status change notifications | None |
idempotency_key | Unique string to prevent duplicate projects on retries | None |
references | Array of {upload_id} or {url, type} for reference materials. Type: image, video, audio, url | None |
extract_content | When true, URLs passed as references are fetched and their content extracted for the agent. Set false to pass URLs through as-is | true |
File uploads: To attach files as references, use the three-step presigned upload flow: POST /uploads → PUT the file to the returned upload_url (no auth header, Content-Type must match what you specified) → POST /uploads/confirm → use the returned upload_id in references. URLs can also be passed directly as references without uploading: {"url": "https://...", "type": "url"} (max 3 per request). See references/api-reference.md for accepted file types, size limits, and full request/response shapes.
Voices: GET /voices lists available voiceover voices with name, gender, age, accent, style, and description. Filter by gender with ?gender=male|female|neutral. Include the voice name in your brief to request a specific voice.
Craft values:
auto — agent selects the best craft for the brief (default)general — flexible creative output across any format, style, or use casecinema — shot design, camera movement, emotional pacingugc — platform-native for TikTok, Reels, Shortsphotography — hero shots, detail work, lifestyle compositionsanimation — character-driven storytelling, expressive motionmusic — song generation, music videos, beat-synced visualsmotion-graphics — animated text, data visualization, graphic storytellingThe agent handles everything from start to finish. For video projects: plans → generates → verifies → renders → done. For asset projects: plans → generates → done.
The agent stops at key decision points, returning idle status with its response in agent_message. Send feedback via POST /projects/:id/messages, and the agent continues.
Switch modes mid-project: PATCH /projects/:id/settings with {"mode": "collaborative"} or {"mode": "autonomous"}.
Supports ongoing collaboration as well as one-off creative work.
POST /account/skills. List via GET /account/skills, read via GET /account/skills/:id, toggle on/off via PATCH /account/skills/:id, delete via DELETE /account/skills/:id. Apply across all projects.GET /account/learned-preferences, update via PUT /account/learned-preferences.GET /projects with ?status=, ?title=, ?limit=, ?offset= filters.GET /account/shares.GET /projects/discover and POST /projects/adopt. See references/advanced-patterns.md.Use status-aware intervals:
| Status | Interval | What's happening |
|---|---|---|
queued | 5s | Waiting to start |
running | 30s | Agent reasoning |
generating | 30-60s | Image: 30s-3 min, Video: 3-15 min |
rendering | 30s | Video render, 1-5 min |
idle | Stop polling | Agent finished its run — check the result |
failed / cancelled | Stop polling | Terminal |
Webhooks are available as an alternative to polling. Set webhook_url at project creation. Webhooks fire on status transitions (running, generating, idle, failed, rendering) with the full project state including agent_message, timeline, and assets. Note: cancelled does not fire a webhook.
Webhooks include X-Eversince-Signature (HMAC-SHA256) and X-Eversince-Timestamp headers for verification. Contact support@eversince.ai to set up a signing secret. 10-second timeout, no retries — if your endpoint is unavailable, the event is lost.
See references/api-reference.md for webhook event details.
GET /account/credits — returns credits_balance. Check before starting work.curl -X POST https://eversince.ai/api/v1/estimate-cost \
-H "Authorization: Bearer $EVERSINCE_API_KEY" \
-H "X-Eversince-Source: plugin" \
-H "Content-Type: application/json" \
-d '{"operations": [
{"tool": "generate_image", "model": "nano-banana-pro", "count": 2},
{"tool": "generate_video", "model": "seedance-2.0", "duration": 5, "count": 1}
]}'
Returns total_credits and per-item breakdown. Tools: generate_image, generate_video, generate_audio, upscale_media, analyze_media, remove_background, motion_overlay. See references/api-reference.md for the full operation schema.
GET /projects/:id responses include a credits_warning field. When you see it, proactively fetch purchase options and present a link to the user before the balance hits zero.insufficient_credits (402), fetch purchase options and present the link to the user:curl https://eversince.ai/api/v1/account/credit-packages \
-H "Authorization: Bearer $EVERSINCE_API_KEY" \
-H "X-Eversince-Source: plugin"
Returns packages[] with credits, price, and purchase_url for each option.
Errors return {"error": {"code": "string", "message": "string", "status": 400}}. Key codes: validation_error (400), insufficient_credits (402), project_limit (429), rate_limited (429/503). When status is failed, the response includes error_message.
When a project fails: Create a new project. Failed projects cannot be resumed or retried — start fresh with the same or adjusted brief. Check error_message for what went wrong.
When POST /messages returns 400: The agent isn't idle yet. Poll GET /projects/:id until status reaches idle, failed, or cancelled before sending another message.
See references/api-reference.md for the full error format, response headers, and rate limits.
Report bugs, suggestions, or questions directly via POST /feedback with {"type": "bug | suggestion | question", "message": "string"}.
Some settings are changed via the API, others must go through the agent because they affect the timeline:
Via PATCH /projects/:id/settings (project-level config):
mode, video_model, image_model, agent_model, craft, craft_auto, webhook_url, title, expected_outputVia POST /projects/:id/messages (timeline operations the agent performs — PATCH /settings will reject these with a validation error):
queued, running, generating, or rendering at the same time. Daily limit: 500 projects.POST /projects/:id/cancel.assembled_url expires after 24 hours. Re-render via POST /projects/:id/render (50 renders/day). Create a permanent link via POST /projects/:id/share.POST /projects/:id/cancel.idempotency_key and a non-failed project exists for that key, the API returns 200 with the existing project instead of creating a new one.POST /uploads).When iteration is complete and the user wants to continue working in the Eversince studio, clear the API context:
curl -X PATCH https://eversince.ai/api/v1/projects/PROJECT_ID/settings \
-H "Authorization: Bearer $EVERSINCE_API_KEY" \
-H "X-Eversince-Source: plugin" \
-H "Content-Type: application/json" \
-d '{"mode": "none"}'
For the full endpoint catalog and request/response shapes: references/api-reference.md.
For long-term projects, parallel projects, variation workflows, and teaching the agent: references/advanced-patterns.md.