[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-runway-use-runway-api":3,"mdc-gh6fpp-key":38,"related-org-runway-use-runway-api":2689,"related-repo-runway-use-runway-api":2856},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":27,"repoUrl":28,"updatedAt":29,"license":30,"forks":31,"topics":32,"repo":33,"sourceUrl":36,"mdContent":37},"use-runway-api","generate media and manage Runway resources via API","Directly use the Runway API from the agent to generate media, manage resources, and inspect account state",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"runway","Runway","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Frunway.png","runwayml",[13,17,20,21,24],{"name":14,"slug":15,"type":16},"Automation","automation","tag",{"name":18,"slug":19,"type":16},"Creative","creative",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},"API Development","api-development",{"name":25,"slug":26,"type":16},"Video","video",57,"https:\u002F\u002Fgithub.com\u002Frunwayml\u002Fskills","2026-04-15T04:49:46.031638",null,15,[],{"repoUrl":28,"stars":27,"forks":31,"topics":34,"description":35},[],"for Runway coding agent skills","https:\u002F\u002Fgithub.com\u002Frunwayml\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fuse-runway-api","---\nname: use-runway-api\ndescription: \"Directly use the Runway API from the agent to generate media, manage resources, and inspect account state\"\nuser-invocable: true\nallowed-tools: Read, Bash(node *\u002Fscripts\u002Frunway-api.mjs *)\n---\n\n# Use Runway API\n\nCall the Runway public API directly from the agent to manage resources, trigger generations, and inspect account state.\n\n> **When to use this skill:** Use this when the user wants to act on their Runway account — create or update avatars, manage documents, trigger generations, check credit balance, etc. For writing integration code into a project, use the `+integrate-*` skills instead.\n\n> **When the user asks to generate media in the context of Runway**, prefer the Runway API path from this skill over any generic built-in image or media generation tool.\n\n> **Skill selection:** Pair this skill with `+api-reference` when you need the canonical API contract. Do not use `+integrate-image`, `+integrate-video`, `+integrate-audio`, `+integrate-characters`, or `+integrate-documents` unless the task is to write or modify application code.\n\n## Runtime Location\n\nThe runtime script ships **inside this skill** at `scripts\u002Frunway-api.mjs` (co-located with this `SKILL.md`). It has zero dependencies — Node.js 20+ is required.\n\n**Resolving the absolute path.** Every shell command below uses the placeholder `\u003Cskill-dir>`. Replace it with the absolute directory of the `SKILL.md` you are currently reading — you already have this path from the tool that loaded this file. Do **not** guess the path, run `find` from `$HOME`, or search the whole filesystem.\n\nIf `\u003Cskill-dir>` is not known from context, check these locations in order with `ls` before giving up:\n\n1. `$RUNWAY_SKILLS_DIR\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs` (if the env var is set)\n2. `~\u002F.claude\u002Fplugins\u002Fcache\u002F*\u002Frunway-api\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs` (Claude Code plugin install)\n3. `~\u002F.cursor\u002Fplugins\u002Fcache\u002F*\u002Frunway-api\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs` (Cursor plugin install)\n4. `~\u002F.claude\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs` (`npx skills add` install)\n5. `~\u002F.agents\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs` (generic agent install)\n6. `~\u002FDocuments\u002Fgithub\u002Frunway\u002Fskills\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs` (source checkout)\n\nPick the first match and use it as `\u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs` for the rest of the session. Do not re-resolve between commands.\n\n## Before Your First Call\n\nSet a session ID so all requests in this chat can be correlated, then verify credentials:\n\n```bash\nexport RUNWAY_SKILLS_CLIENT_ID=$(node -e \"console.log(crypto.randomUUID())\")\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs auth status\n```\n\n- If `authenticated` is `true` → proceed to the API call. Do not re-check.\n- If `authenticated` is `false` → tell the user to set `RUNWAY_SKILLS_API_SECRET` (see `AUTH.md` for details), then **stop and wait for the user to confirm**. Do not retry or re-check in a loop.\n\n> **Staging caveat:** `auth status` hits `\u002Fv1\u002Forganization` which may 500 on stage even when data endpoints work fine. If stage `auth status` fails but you have `RUNWAY_SKILLS_API_SECRET_STAGE` set, try a data endpoint like `avatars list --stage` to confirm the key works before giving up.\n\n## Fast Paths\n\nFor plain list requests, use the compact list commands first instead of the generic `request` command:\n\n- list avatars → `node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs avatars list`\n- list voices → `node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs voices list`\n- list documents → `node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs documents list [--avatar-id \u003Cid>]`\n\nThese commands return smaller, list-friendly JSON on purpose. After a successful list command, answer once. Do not re-run the command, do not read back the same output, and do not render the same table twice.\n\n## Output Format\n\nWhen the API returns a regular list of records, prefer a compact markdown table over a bare bullet list.\n\nGood defaults:\n- avatars: `Name`, `Status`, `Voice`, `Docs`, `Created`\n- documents: `Name`, `Avatar`, `Created`\n- voices: `Name`, `Provider`, `Preview`\n\nAfter the table, add one short summary line only if something notable stands out. Do not repeat the table in a second block.\n\n## Generic Request\n\nCall any public API endpoint:\n\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request \u003CMETHOD> \u003Cpath> [--body '\u003Cjson>'] [--stdin] [--dry-run]\n```\n\nAll output is JSON. Errors go to stderr with a non-zero exit code and include an `example` field with a correctable invocation.\n\n**Flags:**\n- `--body \u003Cjson>` — inline JSON request body\n- `--stdin` — read JSON body from stdin (useful for large or multi-line payloads)\n- `--dry-run` — print the full request (method, URL, headers, body) without executing it\n- `--help` — show usage and examples for any command\n\nUse `+api-reference` as the canonical source for:\n- model choices\n- endpoint details\n- exact POST\u002FPATCH body shapes\n- required and optional fields\n\nDo not duplicate or invent request schemas in this skill. For simple GET\u002FDELETE calls and the list fast paths above, you do not need to load `+api-reference`.\n\n### Examples\n\n**Get organization info:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request GET \u002Fv1\u002Forganization\n```\n\n**List avatars:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs avatars list\n```\n\n**Get a specific avatar:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request GET \u002Fv1\u002Favatars\u002F\u003Cid>\n```\n\n**Update an avatar:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request PATCH \u002Fv1\u002Favatars\u002F\u003Cid> --body '{\n  \"personality\": \"Updated personality text\"\n}'\n```\n\n**Delete an avatar (preview first):**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request DELETE \u002Fv1\u002Favatars\u002F\u003Cid> --dry-run\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request DELETE \u002Fv1\u002Favatars\u002F\u003Cid>\n```\n\n**List knowledge documents for an avatar:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs documents list --avatar-id \u003Cavatar-id>\n```\n\n**Create a knowledge document:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request POST \u002Fv1\u002Fdocuments --body '{\n  \"avatarId\": \"\u003Cavatar-id>\",\n  \"name\": \"FAQ\",\n  \"content\": \"Q: What is your return policy?\\nA: 30 days, no questions asked.\"\n}'\n```\n\n**List voices:**\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs voices list\n```\n\n## Waiting for Tasks\n\nGeneration endpoints return a task ID. Always run `wait` immediately after a generation call — do not ask the user whether to wait.\n\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs wait \u003Ctask-id>\n```\n\n## Generation Requests\n\nWhen the user asks to generate an image, video, or audio:\n\n1. Read `+api-reference` once before the first generation POST. It is the canonical source for model options, request body shapes, and valid field values.\n2. Choose the model from `+api-reference` and tell the user which one you picked, briefly.\n3. Build the request body from `+api-reference`. Do not guess field names.\n4. Call the generation endpoint once with that body.\n5. Run `wait` automatically.\n6. Present the result following the rules in **Presenting Generation Output** below.\n\nFor generation requests, never skip the `+api-reference` read. For simple list\u002Fget\u002Fdelete requests, do not load it unless needed.\n\nIf the user says only \"generate an image\" but the surrounding context is clearly about Runway account actions or this skill, still use the Runway API rather than a generic built-in image tool.\n\n## Presenting Generation Output\n\nThe `wait` command returns a task with an `output` array of signed URLs. These URLs **expire in 24–48 hours** and are long signed JWT blobs that are awkward to read inline.\n\nAfter a successful generation, do all of the following:\n\n1. **Lead with what was generated** — one short line stating the model and cost, e.g.\n   `Generated with gen4_image (1080p, 8 credits).`\n2. **Embed images inline as Markdown** so the user can see them without clicking:\n   ```markdown\n   ![Fox in a snowy forest](https:\u002F\u002Fstorage.runway...\u002Fsigned-url)\n   ```\n   For videos, link them as plain Markdown links (`[fox.mp4](...)`) since inline video does not render in most chat UIs.\n3. **Offer to save a local copy** in the same message, proactively. Suggest a predictable path (`.\u002Fgenerated\u002F` or `.\u002Frunway-outputs\u002F`) and infer a filename from the prompt when possible. Example:\n   > Want me to save it to `.\u002Fgenerated\u002Ffox.png`? The signed URL expires in ~24–48h.\n4. **Do not paste the full signed URL as raw text** unless the user asks for it. The Markdown image\u002Flink already contains it.\n\nIf the user confirms a download, fetch with `curl -L -o \u003Cpath> '\u003Curl>'` (quote the URL — it contains `&`).\n\n## API Reference\n\nUse `+api-reference` for the canonical API contract. Use `+fetch-api-reference` only when you specifically need the latest docs content from `docs.dev.runwayml.com`.\n\n## Staging (--stage)\n\nAdd `--stage` to any command to target the staging API:\n\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs --stage avatars list\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs --stage request GET \u002Fv1\u002Favatars\n```\n\nWith `--stage`, the CLI checks `RUNWAY_SKILLS_API_SECRET_STAGE` first, then falls back to `RUNWAY_SKILLS_API_SECRET`. The base URL defaults to `https:\u002F\u002Fapi.dev-stage.runwayml.com`.\n\n## Large Payloads (--stdin)\n\nWhen creating resources with data URIs (e.g. base64-encoded images for avatar `referenceImage`), the body can exceed shell argument limits. Use `--stdin` to pipe the body:\n\n```bash\npython3 -c \"\nimport json, base64\nwith open('image.png', 'rb') as f:\n    b64 = base64.b64encode(f.read()).decode()\nbody = json.dumps({'name': 'My Avatar', 'referenceImage': f'data:image\u002Fpng;base64,{b64}', ...})\nwith open('\u002Ftmp\u002Fbody.json', 'w') as f:\n    f.write(body)\n\" && cat \u002Ftmp\u002Fbody.json | node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request POST \u002Fv1\u002Favatars --stdin\n```\n\nAlternatively, write the JSON to a file and use `curl -d @file` directly. The `--body` flag is fine for small JSON payloads but will hit `argument list too long` for data URIs of images over ~200KB.\n\n## Environment Variables\n\nThe runtime reads credentials from the process environment:\n\n| Variable | Description |\n|----------|-------------|\n| `RUNWAY_SKILLS_API_SECRET` | Production API key |\n| `RUNWAY_SKILLS_API_SECRET_STAGE` | Stage API key (used with `--stage`) |\n| `RUNWAY_SKILLS_BASE_URL` | Override the base URL for any environment |\n| `RUNWAY_SKILLS_DIR` | Optional. Absolute path to the source checkout of this skills repo — used by the agent as a fallback when resolving `\u003Cskill-dir>`. |\n\nIf the agent cannot see `RUNWAY_SKILLS_API_SECRET`, the editor likely needs to be restarted after the variable is set.\n\n## Related Files\n\n- `AUTH.md` — auth setup and troubleshooting for this skill\n\n## Related Skills\n\n| Skill | When to use |\n|-------|-------------|\n| `+api-reference` | Full API reference — models, endpoints, costs, rate limits |\n| `+fetch-api-reference` | Fetch latest docs from docs.dev.runwayml.com |\n| `+integrate-video` | Write video generation code into a project |\n| `+integrate-image` | Write image generation code into a project |\n| `+integrate-audio` | Write audio generation code into a project |\n| `+integrate-characters` | Write avatar session code into a project |\n| `+integrate-documents` | Write knowledge document code into a project |\n",{"data":39,"body":42},{"name":4,"description":6,"user-invocable":40,"allowed-tools":41},true,"Read, Bash(node *\u002Fscripts\u002Frunway-api.mjs *)",{"type":43,"children":44},"root",[45,53,59,83,96,155,162,190,238,258,337,350,356,361,471,536,588,594,607,643,648,654,659,664,753,758,764,769,888,901,909,955,967,990,1002,1009,1017,1065,1073,1117,1125,1192,1200,1300,1308,1431,1439,1505,1513,1610,1618,1661,1667,1680,1736,1742,1747,1815,1827,1832,1837,1864,1869,1997,2018,2024,2050,2056,2069,2160,2193,2199,2219,2365,2394,2400,2405,2512,2524,2530,2543,2549,2683],{"type":46,"tag":47,"props":48,"children":49},"element","h1",{"id":4},[50],{"type":51,"value":52},"text","Use Runway API",{"type":46,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"Call the Runway public API directly from the agent to manage resources, trigger generations, and inspect account state.",{"type":46,"tag":60,"props":61,"children":62},"blockquote",{},[63],{"type":46,"tag":54,"props":64,"children":65},{},[66,72,74,81],{"type":46,"tag":67,"props":68,"children":69},"strong",{},[70],{"type":51,"value":71},"When to use this skill:",{"type":51,"value":73}," Use this when the user wants to act on their Runway account — create or update avatars, manage documents, trigger generations, check credit balance, etc. For writing integration code into a project, use the ",{"type":46,"tag":75,"props":76,"children":78},"code",{"className":77},[],[79],{"type":51,"value":80},"+integrate-*",{"type":51,"value":82}," skills instead.",{"type":46,"tag":60,"props":84,"children":85},{},[86],{"type":46,"tag":54,"props":87,"children":88},{},[89,94],{"type":46,"tag":67,"props":90,"children":91},{},[92],{"type":51,"value":93},"When the user asks to generate media in the context of Runway",{"type":51,"value":95},", prefer the Runway API path from this skill over any generic built-in image or media generation tool.",{"type":46,"tag":60,"props":97,"children":98},{},[99],{"type":46,"tag":54,"props":100,"children":101},{},[102,107,109,115,117,123,125,131,132,138,139,145,147,153],{"type":46,"tag":67,"props":103,"children":104},{},[105],{"type":51,"value":106},"Skill selection:",{"type":51,"value":108}," Pair this skill with ",{"type":46,"tag":75,"props":110,"children":112},{"className":111},[],[113],{"type":51,"value":114},"+api-reference",{"type":51,"value":116}," when you need the canonical API contract. Do not use ",{"type":46,"tag":75,"props":118,"children":120},{"className":119},[],[121],{"type":51,"value":122},"+integrate-image",{"type":51,"value":124},", ",{"type":46,"tag":75,"props":126,"children":128},{"className":127},[],[129],{"type":51,"value":130},"+integrate-video",{"type":51,"value":124},{"type":46,"tag":75,"props":133,"children":135},{"className":134},[],[136],{"type":51,"value":137},"+integrate-audio",{"type":51,"value":124},{"type":46,"tag":75,"props":140,"children":142},{"className":141},[],[143],{"type":51,"value":144},"+integrate-characters",{"type":51,"value":146},", or ",{"type":46,"tag":75,"props":148,"children":150},{"className":149},[],[151],{"type":51,"value":152},"+integrate-documents",{"type":51,"value":154}," unless the task is to write or modify application code.",{"type":46,"tag":156,"props":157,"children":159},"h2",{"id":158},"runtime-location",[160],{"type":51,"value":161},"Runtime Location",{"type":46,"tag":54,"props":163,"children":164},{},[165,167,172,174,180,182,188],{"type":51,"value":166},"The runtime script ships ",{"type":46,"tag":67,"props":168,"children":169},{},[170],{"type":51,"value":171},"inside this skill",{"type":51,"value":173}," at ",{"type":46,"tag":75,"props":175,"children":177},{"className":176},[],[178],{"type":51,"value":179},"scripts\u002Frunway-api.mjs",{"type":51,"value":181}," (co-located with this ",{"type":46,"tag":75,"props":183,"children":185},{"className":184},[],[186],{"type":51,"value":187},"SKILL.md",{"type":51,"value":189},"). It has zero dependencies — Node.js 20+ is required.",{"type":46,"tag":54,"props":191,"children":192},{},[193,198,200,206,208,213,215,220,222,228,230,236],{"type":46,"tag":67,"props":194,"children":195},{},[196],{"type":51,"value":197},"Resolving the absolute path.",{"type":51,"value":199}," Every shell command below uses the placeholder ",{"type":46,"tag":75,"props":201,"children":203},{"className":202},[],[204],{"type":51,"value":205},"\u003Cskill-dir>",{"type":51,"value":207},". Replace it with the absolute directory of the ",{"type":46,"tag":75,"props":209,"children":211},{"className":210},[],[212],{"type":51,"value":187},{"type":51,"value":214}," you are currently reading — you already have this path from the tool that loaded this file. Do ",{"type":46,"tag":67,"props":216,"children":217},{},[218],{"type":51,"value":219},"not",{"type":51,"value":221}," guess the path, run ",{"type":46,"tag":75,"props":223,"children":225},{"className":224},[],[226],{"type":51,"value":227},"find",{"type":51,"value":229}," from ",{"type":46,"tag":75,"props":231,"children":233},{"className":232},[],[234],{"type":51,"value":235},"$HOME",{"type":51,"value":237},", or search the whole filesystem.",{"type":46,"tag":54,"props":239,"children":240},{},[241,243,248,250,256],{"type":51,"value":242},"If ",{"type":46,"tag":75,"props":244,"children":246},{"className":245},[],[247],{"type":51,"value":205},{"type":51,"value":249}," is not known from context, check these locations in order with ",{"type":46,"tag":75,"props":251,"children":253},{"className":252},[],[254],{"type":51,"value":255},"ls",{"type":51,"value":257}," before giving up:",{"type":46,"tag":259,"props":260,"children":261},"ol",{},[262,274,285,296,315,326],{"type":46,"tag":263,"props":264,"children":265},"li",{},[266,272],{"type":46,"tag":75,"props":267,"children":269},{"className":268},[],[270],{"type":51,"value":271},"$RUNWAY_SKILLS_DIR\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":273}," (if the env var is set)",{"type":46,"tag":263,"props":275,"children":276},{},[277,283],{"type":46,"tag":75,"props":278,"children":280},{"className":279},[],[281],{"type":51,"value":282},"~\u002F.claude\u002Fplugins\u002Fcache\u002F*\u002Frunway-api\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":284}," (Claude Code plugin install)",{"type":46,"tag":263,"props":286,"children":287},{},[288,294],{"type":46,"tag":75,"props":289,"children":291},{"className":290},[],[292],{"type":51,"value":293},"~\u002F.cursor\u002Fplugins\u002Fcache\u002F*\u002Frunway-api\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":295}," (Cursor plugin install)",{"type":46,"tag":263,"props":297,"children":298},{},[299,305,307,313],{"type":46,"tag":75,"props":300,"children":302},{"className":301},[],[303],{"type":51,"value":304},"~\u002F.claude\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":306}," (",{"type":46,"tag":75,"props":308,"children":310},{"className":309},[],[311],{"type":51,"value":312},"npx skills add",{"type":51,"value":314}," install)",{"type":46,"tag":263,"props":316,"children":317},{},[318,324],{"type":46,"tag":75,"props":319,"children":321},{"className":320},[],[322],{"type":51,"value":323},"~\u002F.agents\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":325}," (generic agent install)",{"type":46,"tag":263,"props":327,"children":328},{},[329,335],{"type":46,"tag":75,"props":330,"children":332},{"className":331},[],[333],{"type":51,"value":334},"~\u002FDocuments\u002Fgithub\u002Frunway\u002Fskills\u002Fskills\u002Fuse-runway-api\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":336}," (source checkout)",{"type":46,"tag":54,"props":338,"children":339},{},[340,342,348],{"type":51,"value":341},"Pick the first match and use it as ",{"type":46,"tag":75,"props":343,"children":345},{"className":344},[],[346],{"type":51,"value":347},"\u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs",{"type":51,"value":349}," for the rest of the session. Do not re-resolve between commands.",{"type":46,"tag":156,"props":351,"children":353},{"id":352},"before-your-first-call",[354],{"type":51,"value":355},"Before Your First Call",{"type":46,"tag":54,"props":357,"children":358},{},[359],{"type":51,"value":360},"Set a session ID so all requests in this chat can be correlated, then verify credentials:",{"type":46,"tag":362,"props":363,"children":368},"pre",{"className":364,"code":365,"language":366,"meta":367,"style":367},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export RUNWAY_SKILLS_CLIENT_ID=$(node -e \"console.log(crypto.randomUUID())\")\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs auth status\n","bash","",[369],{"type":46,"tag":75,"props":370,"children":371},{"__ignoreMap":367},[372,428],{"type":46,"tag":373,"props":374,"children":377},"span",{"class":375,"line":376},"line",1,[378,384,390,396,402,408,413,418,423],{"type":46,"tag":373,"props":379,"children":381},{"style":380},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[382],{"type":51,"value":383},"export",{"type":46,"tag":373,"props":385,"children":387},{"style":386},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[388],{"type":51,"value":389}," RUNWAY_SKILLS_CLIENT_ID",{"type":46,"tag":373,"props":391,"children":393},{"style":392},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[394],{"type":51,"value":395},"=$(",{"type":46,"tag":373,"props":397,"children":399},{"style":398},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[400],{"type":51,"value":401},"node",{"type":46,"tag":373,"props":403,"children":405},{"style":404},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[406],{"type":51,"value":407}," -e",{"type":46,"tag":373,"props":409,"children":410},{"style":392},[411],{"type":51,"value":412}," \"",{"type":46,"tag":373,"props":414,"children":415},{"style":404},[416],{"type":51,"value":417},"console.log(crypto.randomUUID())",{"type":46,"tag":373,"props":419,"children":420},{"style":392},[421],{"type":51,"value":422},"\"",{"type":46,"tag":373,"props":424,"children":425},{"style":392},[426],{"type":51,"value":427},")\n",{"type":46,"tag":373,"props":429,"children":431},{"class":375,"line":430},2,[432,436,441,446,451,456,461,466],{"type":46,"tag":373,"props":433,"children":434},{"style":398},[435],{"type":51,"value":401},{"type":46,"tag":373,"props":437,"children":438},{"style":392},[439],{"type":51,"value":440}," \u003C",{"type":46,"tag":373,"props":442,"children":443},{"style":404},[444],{"type":51,"value":445},"skill-di",{"type":46,"tag":373,"props":447,"children":448},{"style":386},[449],{"type":51,"value":450},"r",{"type":46,"tag":373,"props":452,"children":453},{"style":392},[454],{"type":51,"value":455},">",{"type":46,"tag":373,"props":457,"children":458},{"style":404},[459],{"type":51,"value":460},"\u002Fscripts\u002Frunway-api.mjs",{"type":46,"tag":373,"props":462,"children":463},{"style":404},[464],{"type":51,"value":465}," auth",{"type":46,"tag":373,"props":467,"children":468},{"style":404},[469],{"type":51,"value":470}," status\n",{"type":46,"tag":472,"props":473,"children":474},"ul",{},[475,495],{"type":46,"tag":263,"props":476,"children":477},{},[478,479,485,487,493],{"type":51,"value":242},{"type":46,"tag":75,"props":480,"children":482},{"className":481},[],[483],{"type":51,"value":484},"authenticated",{"type":51,"value":486}," is ",{"type":46,"tag":75,"props":488,"children":490},{"className":489},[],[491],{"type":51,"value":492},"true",{"type":51,"value":494}," → proceed to the API call. Do not re-check.",{"type":46,"tag":263,"props":496,"children":497},{},[498,499,504,505,511,513,519,521,527,529,534],{"type":51,"value":242},{"type":46,"tag":75,"props":500,"children":502},{"className":501},[],[503],{"type":51,"value":484},{"type":51,"value":486},{"type":46,"tag":75,"props":506,"children":508},{"className":507},[],[509],{"type":51,"value":510},"false",{"type":51,"value":512}," → tell the user to set ",{"type":46,"tag":75,"props":514,"children":516},{"className":515},[],[517],{"type":51,"value":518},"RUNWAY_SKILLS_API_SECRET",{"type":51,"value":520}," (see ",{"type":46,"tag":75,"props":522,"children":524},{"className":523},[],[525],{"type":51,"value":526},"AUTH.md",{"type":51,"value":528}," for details), then ",{"type":46,"tag":67,"props":530,"children":531},{},[532],{"type":51,"value":533},"stop and wait for the user to confirm",{"type":51,"value":535},". Do not retry or re-check in a loop.",{"type":46,"tag":60,"props":537,"children":538},{},[539],{"type":46,"tag":54,"props":540,"children":541},{},[542,547,549,555,557,563,565,570,572,578,580,586],{"type":46,"tag":67,"props":543,"children":544},{},[545],{"type":51,"value":546},"Staging caveat:",{"type":51,"value":548}," ",{"type":46,"tag":75,"props":550,"children":552},{"className":551},[],[553],{"type":51,"value":554},"auth status",{"type":51,"value":556}," hits ",{"type":46,"tag":75,"props":558,"children":560},{"className":559},[],[561],{"type":51,"value":562},"\u002Fv1\u002Forganization",{"type":51,"value":564}," which may 500 on stage even when data endpoints work fine. If stage ",{"type":46,"tag":75,"props":566,"children":568},{"className":567},[],[569],{"type":51,"value":554},{"type":51,"value":571}," fails but you have ",{"type":46,"tag":75,"props":573,"children":575},{"className":574},[],[576],{"type":51,"value":577},"RUNWAY_SKILLS_API_SECRET_STAGE",{"type":51,"value":579}," set, try a data endpoint like ",{"type":46,"tag":75,"props":581,"children":583},{"className":582},[],[584],{"type":51,"value":585},"avatars list --stage",{"type":51,"value":587}," to confirm the key works before giving up.",{"type":46,"tag":156,"props":589,"children":591},{"id":590},"fast-paths",[592],{"type":51,"value":593},"Fast Paths",{"type":46,"tag":54,"props":595,"children":596},{},[597,599,605],{"type":51,"value":598},"For plain list requests, use the compact list commands first instead of the generic ",{"type":46,"tag":75,"props":600,"children":602},{"className":601},[],[603],{"type":51,"value":604},"request",{"type":51,"value":606}," command:",{"type":46,"tag":472,"props":608,"children":609},{},[610,621,632],{"type":46,"tag":263,"props":611,"children":612},{},[613,615],{"type":51,"value":614},"list avatars → ",{"type":46,"tag":75,"props":616,"children":618},{"className":617},[],[619],{"type":51,"value":620},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs avatars list",{"type":46,"tag":263,"props":622,"children":623},{},[624,626],{"type":51,"value":625},"list voices → ",{"type":46,"tag":75,"props":627,"children":629},{"className":628},[],[630],{"type":51,"value":631},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs voices list",{"type":46,"tag":263,"props":633,"children":634},{},[635,637],{"type":51,"value":636},"list documents → ",{"type":46,"tag":75,"props":638,"children":640},{"className":639},[],[641],{"type":51,"value":642},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs documents list [--avatar-id \u003Cid>]",{"type":46,"tag":54,"props":644,"children":645},{},[646],{"type":51,"value":647},"These commands return smaller, list-friendly JSON on purpose. After a successful list command, answer once. Do not re-run the command, do not read back the same output, and do not render the same table twice.",{"type":46,"tag":156,"props":649,"children":651},{"id":650},"output-format",[652],{"type":51,"value":653},"Output Format",{"type":46,"tag":54,"props":655,"children":656},{},[657],{"type":51,"value":658},"When the API returns a regular list of records, prefer a compact markdown table over a bare bullet list.",{"type":46,"tag":54,"props":660,"children":661},{},[662],{"type":51,"value":663},"Good defaults:",{"type":46,"tag":472,"props":665,"children":666},{},[667,706,729],{"type":46,"tag":263,"props":668,"children":669},{},[670,672,678,679,685,686,692,693,699,700],{"type":51,"value":671},"avatars: ",{"type":46,"tag":75,"props":673,"children":675},{"className":674},[],[676],{"type":51,"value":677},"Name",{"type":51,"value":124},{"type":46,"tag":75,"props":680,"children":682},{"className":681},[],[683],{"type":51,"value":684},"Status",{"type":51,"value":124},{"type":46,"tag":75,"props":687,"children":689},{"className":688},[],[690],{"type":51,"value":691},"Voice",{"type":51,"value":124},{"type":46,"tag":75,"props":694,"children":696},{"className":695},[],[697],{"type":51,"value":698},"Docs",{"type":51,"value":124},{"type":46,"tag":75,"props":701,"children":703},{"className":702},[],[704],{"type":51,"value":705},"Created",{"type":46,"tag":263,"props":707,"children":708},{},[709,711,716,717,723,724],{"type":51,"value":710},"documents: ",{"type":46,"tag":75,"props":712,"children":714},{"className":713},[],[715],{"type":51,"value":677},{"type":51,"value":124},{"type":46,"tag":75,"props":718,"children":720},{"className":719},[],[721],{"type":51,"value":722},"Avatar",{"type":51,"value":124},{"type":46,"tag":75,"props":725,"children":727},{"className":726},[],[728],{"type":51,"value":705},{"type":46,"tag":263,"props":730,"children":731},{},[732,734,739,740,746,747],{"type":51,"value":733},"voices: ",{"type":46,"tag":75,"props":735,"children":737},{"className":736},[],[738],{"type":51,"value":677},{"type":51,"value":124},{"type":46,"tag":75,"props":741,"children":743},{"className":742},[],[744],{"type":51,"value":745},"Provider",{"type":51,"value":124},{"type":46,"tag":75,"props":748,"children":750},{"className":749},[],[751],{"type":51,"value":752},"Preview",{"type":46,"tag":54,"props":754,"children":755},{},[756],{"type":51,"value":757},"After the table, add one short summary line only if something notable stands out. Do not repeat the table in a second block.",{"type":46,"tag":156,"props":759,"children":761},{"id":760},"generic-request",[762],{"type":51,"value":763},"Generic Request",{"type":46,"tag":54,"props":765,"children":766},{},[767],{"type":51,"value":768},"Call any public API endpoint:",{"type":46,"tag":362,"props":770,"children":772},{"className":364,"code":771,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request \u003CMETHOD> \u003Cpath> [--body '\u003Cjson>'] [--stdin] [--dry-run]\n",[773],{"type":46,"tag":75,"props":774,"children":775},{"__ignoreMap":367},[776],{"type":46,"tag":373,"props":777,"children":778},{"class":375,"line":376},[779,783,787,791,795,799,803,808,812,817,822,826,830,835,840,844,849,854,859,863,868,873,878,883],{"type":46,"tag":373,"props":780,"children":781},{"style":398},[782],{"type":51,"value":401},{"type":46,"tag":373,"props":784,"children":785},{"style":392},[786],{"type":51,"value":440},{"type":46,"tag":373,"props":788,"children":789},{"style":404},[790],{"type":51,"value":445},{"type":46,"tag":373,"props":792,"children":793},{"style":386},[794],{"type":51,"value":450},{"type":46,"tag":373,"props":796,"children":797},{"style":392},[798],{"type":51,"value":455},{"type":46,"tag":373,"props":800,"children":801},{"style":404},[802],{"type":51,"value":460},{"type":46,"tag":373,"props":804,"children":805},{"style":404},[806],{"type":51,"value":807}," request",{"type":46,"tag":373,"props":809,"children":810},{"style":392},[811],{"type":51,"value":440},{"type":46,"tag":373,"props":813,"children":814},{"style":404},[815],{"type":51,"value":816},"METHO",{"type":46,"tag":373,"props":818,"children":819},{"style":386},[820],{"type":51,"value":821},"D",{"type":46,"tag":373,"props":823,"children":824},{"style":392},[825],{"type":51,"value":455},{"type":46,"tag":373,"props":827,"children":828},{"style":392},[829],{"type":51,"value":440},{"type":46,"tag":373,"props":831,"children":832},{"style":404},[833],{"type":51,"value":834},"pat",{"type":46,"tag":373,"props":836,"children":837},{"style":386},[838],{"type":51,"value":839},"h",{"type":46,"tag":373,"props":841,"children":842},{"style":392},[843],{"type":51,"value":455},{"type":46,"tag":373,"props":845,"children":846},{"style":386},[847],{"type":51,"value":848}," [--body ",{"type":46,"tag":373,"props":850,"children":851},{"style":392},[852],{"type":51,"value":853},"'",{"type":46,"tag":373,"props":855,"children":856},{"style":404},[857],{"type":51,"value":858},"\u003Cjson>",{"type":46,"tag":373,"props":860,"children":861},{"style":392},[862],{"type":51,"value":853},{"type":46,"tag":373,"props":864,"children":865},{"style":404},[866],{"type":51,"value":867},"]",{"type":46,"tag":373,"props":869,"children":870},{"style":386},[871],{"type":51,"value":872}," [--stdin] ",{"type":46,"tag":373,"props":874,"children":875},{"style":392},[876],{"type":51,"value":877},"[",{"type":46,"tag":373,"props":879,"children":880},{"style":386},[881],{"type":51,"value":882},"--dry-run",{"type":46,"tag":373,"props":884,"children":885},{"style":392},[886],{"type":51,"value":887},"]\n",{"type":46,"tag":54,"props":889,"children":890},{},[891,893,899],{"type":51,"value":892},"All output is JSON. Errors go to stderr with a non-zero exit code and include an ",{"type":46,"tag":75,"props":894,"children":896},{"className":895},[],[897],{"type":51,"value":898},"example",{"type":51,"value":900}," field with a correctable invocation.",{"type":46,"tag":54,"props":902,"children":903},{},[904],{"type":46,"tag":67,"props":905,"children":906},{},[907],{"type":51,"value":908},"Flags:",{"type":46,"tag":472,"props":910,"children":911},{},[912,923,934,944],{"type":46,"tag":263,"props":913,"children":914},{},[915,921],{"type":46,"tag":75,"props":916,"children":918},{"className":917},[],[919],{"type":51,"value":920},"--body \u003Cjson>",{"type":51,"value":922}," — inline JSON request body",{"type":46,"tag":263,"props":924,"children":925},{},[926,932],{"type":46,"tag":75,"props":927,"children":929},{"className":928},[],[930],{"type":51,"value":931},"--stdin",{"type":51,"value":933}," — read JSON body from stdin (useful for large or multi-line payloads)",{"type":46,"tag":263,"props":935,"children":936},{},[937,942],{"type":46,"tag":75,"props":938,"children":940},{"className":939},[],[941],{"type":51,"value":882},{"type":51,"value":943}," — print the full request (method, URL, headers, body) without executing it",{"type":46,"tag":263,"props":945,"children":946},{},[947,953],{"type":46,"tag":75,"props":948,"children":950},{"className":949},[],[951],{"type":51,"value":952},"--help",{"type":51,"value":954}," — show usage and examples for any command",{"type":46,"tag":54,"props":956,"children":957},{},[958,960,965],{"type":51,"value":959},"Use ",{"type":46,"tag":75,"props":961,"children":963},{"className":962},[],[964],{"type":51,"value":114},{"type":51,"value":966}," as the canonical source for:",{"type":46,"tag":472,"props":968,"children":969},{},[970,975,980,985],{"type":46,"tag":263,"props":971,"children":972},{},[973],{"type":51,"value":974},"model choices",{"type":46,"tag":263,"props":976,"children":977},{},[978],{"type":51,"value":979},"endpoint details",{"type":46,"tag":263,"props":981,"children":982},{},[983],{"type":51,"value":984},"exact POST\u002FPATCH body shapes",{"type":46,"tag":263,"props":986,"children":987},{},[988],{"type":51,"value":989},"required and optional fields",{"type":46,"tag":54,"props":991,"children":992},{},[993,995,1000],{"type":51,"value":994},"Do not duplicate or invent request schemas in this skill. For simple GET\u002FDELETE calls and the list fast paths above, you do not need to load ",{"type":46,"tag":75,"props":996,"children":998},{"className":997},[],[999],{"type":51,"value":114},{"type":51,"value":1001},".",{"type":46,"tag":1003,"props":1004,"children":1006},"h3",{"id":1005},"examples",[1007],{"type":51,"value":1008},"Examples",{"type":46,"tag":54,"props":1010,"children":1011},{},[1012],{"type":46,"tag":67,"props":1013,"children":1014},{},[1015],{"type":51,"value":1016},"Get organization info:",{"type":46,"tag":362,"props":1018,"children":1020},{"className":364,"code":1019,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request GET \u002Fv1\u002Forganization\n",[1021],{"type":46,"tag":75,"props":1022,"children":1023},{"__ignoreMap":367},[1024],{"type":46,"tag":373,"props":1025,"children":1026},{"class":375,"line":376},[1027,1031,1035,1039,1043,1047,1051,1055,1060],{"type":46,"tag":373,"props":1028,"children":1029},{"style":398},[1030],{"type":51,"value":401},{"type":46,"tag":373,"props":1032,"children":1033},{"style":392},[1034],{"type":51,"value":440},{"type":46,"tag":373,"props":1036,"children":1037},{"style":404},[1038],{"type":51,"value":445},{"type":46,"tag":373,"props":1040,"children":1041},{"style":386},[1042],{"type":51,"value":450},{"type":46,"tag":373,"props":1044,"children":1045},{"style":392},[1046],{"type":51,"value":455},{"type":46,"tag":373,"props":1048,"children":1049},{"style":404},[1050],{"type":51,"value":460},{"type":46,"tag":373,"props":1052,"children":1053},{"style":404},[1054],{"type":51,"value":807},{"type":46,"tag":373,"props":1056,"children":1057},{"style":404},[1058],{"type":51,"value":1059}," GET",{"type":46,"tag":373,"props":1061,"children":1062},{"style":404},[1063],{"type":51,"value":1064}," \u002Fv1\u002Forganization\n",{"type":46,"tag":54,"props":1066,"children":1067},{},[1068],{"type":46,"tag":67,"props":1069,"children":1070},{},[1071],{"type":51,"value":1072},"List avatars:",{"type":46,"tag":362,"props":1074,"children":1076},{"className":364,"code":1075,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs avatars list\n",[1077],{"type":46,"tag":75,"props":1078,"children":1079},{"__ignoreMap":367},[1080],{"type":46,"tag":373,"props":1081,"children":1082},{"class":375,"line":376},[1083,1087,1091,1095,1099,1103,1107,1112],{"type":46,"tag":373,"props":1084,"children":1085},{"style":398},[1086],{"type":51,"value":401},{"type":46,"tag":373,"props":1088,"children":1089},{"style":392},[1090],{"type":51,"value":440},{"type":46,"tag":373,"props":1092,"children":1093},{"style":404},[1094],{"type":51,"value":445},{"type":46,"tag":373,"props":1096,"children":1097},{"style":386},[1098],{"type":51,"value":450},{"type":46,"tag":373,"props":1100,"children":1101},{"style":392},[1102],{"type":51,"value":455},{"type":46,"tag":373,"props":1104,"children":1105},{"style":404},[1106],{"type":51,"value":460},{"type":46,"tag":373,"props":1108,"children":1109},{"style":404},[1110],{"type":51,"value":1111}," avatars",{"type":46,"tag":373,"props":1113,"children":1114},{"style":404},[1115],{"type":51,"value":1116}," list\n",{"type":46,"tag":54,"props":1118,"children":1119},{},[1120],{"type":46,"tag":67,"props":1121,"children":1122},{},[1123],{"type":51,"value":1124},"Get a specific avatar:",{"type":46,"tag":362,"props":1126,"children":1128},{"className":364,"code":1127,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request GET \u002Fv1\u002Favatars\u002F\u003Cid>\n",[1129],{"type":46,"tag":75,"props":1130,"children":1131},{"__ignoreMap":367},[1132],{"type":46,"tag":373,"props":1133,"children":1134},{"class":375,"line":376},[1135,1139,1143,1147,1151,1155,1159,1163,1167,1172,1177,1182,1187],{"type":46,"tag":373,"props":1136,"children":1137},{"style":398},[1138],{"type":51,"value":401},{"type":46,"tag":373,"props":1140,"children":1141},{"style":392},[1142],{"type":51,"value":440},{"type":46,"tag":373,"props":1144,"children":1145},{"style":404},[1146],{"type":51,"value":445},{"type":46,"tag":373,"props":1148,"children":1149},{"style":386},[1150],{"type":51,"value":450},{"type":46,"tag":373,"props":1152,"children":1153},{"style":392},[1154],{"type":51,"value":455},{"type":46,"tag":373,"props":1156,"children":1157},{"style":404},[1158],{"type":51,"value":460},{"type":46,"tag":373,"props":1160,"children":1161},{"style":404},[1162],{"type":51,"value":807},{"type":46,"tag":373,"props":1164,"children":1165},{"style":404},[1166],{"type":51,"value":1059},{"type":46,"tag":373,"props":1168,"children":1169},{"style":404},[1170],{"type":51,"value":1171}," \u002Fv1\u002Favatars\u002F",{"type":46,"tag":373,"props":1173,"children":1174},{"style":392},[1175],{"type":51,"value":1176},"\u003C",{"type":46,"tag":373,"props":1178,"children":1179},{"style":404},[1180],{"type":51,"value":1181},"i",{"type":46,"tag":373,"props":1183,"children":1184},{"style":386},[1185],{"type":51,"value":1186},"d",{"type":46,"tag":373,"props":1188,"children":1189},{"style":392},[1190],{"type":51,"value":1191},">\n",{"type":46,"tag":54,"props":1193,"children":1194},{},[1195],{"type":46,"tag":67,"props":1196,"children":1197},{},[1198],{"type":51,"value":1199},"Update an avatar:",{"type":46,"tag":362,"props":1201,"children":1203},{"className":364,"code":1202,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request PATCH \u002Fv1\u002Favatars\u002F\u003Cid> --body '{\n  \"personality\": \"Updated personality text\"\n}'\n",[1204],{"type":46,"tag":75,"props":1205,"children":1206},{"__ignoreMap":367},[1207,1278,1286],{"type":46,"tag":373,"props":1208,"children":1209},{"class":375,"line":376},[1210,1214,1218,1222,1226,1230,1234,1238,1243,1247,1251,1255,1259,1263,1268,1273],{"type":46,"tag":373,"props":1211,"children":1212},{"style":398},[1213],{"type":51,"value":401},{"type":46,"tag":373,"props":1215,"children":1216},{"style":392},[1217],{"type":51,"value":440},{"type":46,"tag":373,"props":1219,"children":1220},{"style":404},[1221],{"type":51,"value":445},{"type":46,"tag":373,"props":1223,"children":1224},{"style":386},[1225],{"type":51,"value":450},{"type":46,"tag":373,"props":1227,"children":1228},{"style":392},[1229],{"type":51,"value":455},{"type":46,"tag":373,"props":1231,"children":1232},{"style":404},[1233],{"type":51,"value":460},{"type":46,"tag":373,"props":1235,"children":1236},{"style":404},[1237],{"type":51,"value":807},{"type":46,"tag":373,"props":1239,"children":1240},{"style":404},[1241],{"type":51,"value":1242}," PATCH",{"type":46,"tag":373,"props":1244,"children":1245},{"style":404},[1246],{"type":51,"value":1171},{"type":46,"tag":373,"props":1248,"children":1249},{"style":392},[1250],{"type":51,"value":1176},{"type":46,"tag":373,"props":1252,"children":1253},{"style":404},[1254],{"type":51,"value":1181},{"type":46,"tag":373,"props":1256,"children":1257},{"style":386},[1258],{"type":51,"value":1186},{"type":46,"tag":373,"props":1260,"children":1261},{"style":392},[1262],{"type":51,"value":455},{"type":46,"tag":373,"props":1264,"children":1265},{"style":404},[1266],{"type":51,"value":1267}," --body",{"type":46,"tag":373,"props":1269,"children":1270},{"style":392},[1271],{"type":51,"value":1272}," '",{"type":46,"tag":373,"props":1274,"children":1275},{"style":404},[1276],{"type":51,"value":1277},"{\n",{"type":46,"tag":373,"props":1279,"children":1280},{"class":375,"line":430},[1281],{"type":46,"tag":373,"props":1282,"children":1283},{"style":404},[1284],{"type":51,"value":1285},"  \"personality\": \"Updated personality text\"\n",{"type":46,"tag":373,"props":1287,"children":1289},{"class":375,"line":1288},3,[1290,1295],{"type":46,"tag":373,"props":1291,"children":1292},{"style":404},[1293],{"type":51,"value":1294},"}",{"type":46,"tag":373,"props":1296,"children":1297},{"style":392},[1298],{"type":51,"value":1299},"'\n",{"type":46,"tag":54,"props":1301,"children":1302},{},[1303],{"type":46,"tag":67,"props":1304,"children":1305},{},[1306],{"type":51,"value":1307},"Delete an avatar (preview first):",{"type":46,"tag":362,"props":1309,"children":1311},{"className":364,"code":1310,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request DELETE \u002Fv1\u002Favatars\u002F\u003Cid> --dry-run\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request DELETE \u002Fv1\u002Favatars\u002F\u003Cid>\n",[1312],{"type":46,"tag":75,"props":1313,"children":1314},{"__ignoreMap":367},[1315,1376],{"type":46,"tag":373,"props":1316,"children":1317},{"class":375,"line":376},[1318,1322,1326,1330,1334,1338,1342,1346,1351,1355,1359,1363,1367,1371],{"type":46,"tag":373,"props":1319,"children":1320},{"style":398},[1321],{"type":51,"value":401},{"type":46,"tag":373,"props":1323,"children":1324},{"style":392},[1325],{"type":51,"value":440},{"type":46,"tag":373,"props":1327,"children":1328},{"style":404},[1329],{"type":51,"value":445},{"type":46,"tag":373,"props":1331,"children":1332},{"style":386},[1333],{"type":51,"value":450},{"type":46,"tag":373,"props":1335,"children":1336},{"style":392},[1337],{"type":51,"value":455},{"type":46,"tag":373,"props":1339,"children":1340},{"style":404},[1341],{"type":51,"value":460},{"type":46,"tag":373,"props":1343,"children":1344},{"style":404},[1345],{"type":51,"value":807},{"type":46,"tag":373,"props":1347,"children":1348},{"style":404},[1349],{"type":51,"value":1350}," DELETE",{"type":46,"tag":373,"props":1352,"children":1353},{"style":404},[1354],{"type":51,"value":1171},{"type":46,"tag":373,"props":1356,"children":1357},{"style":392},[1358],{"type":51,"value":1176},{"type":46,"tag":373,"props":1360,"children":1361},{"style":404},[1362],{"type":51,"value":1181},{"type":46,"tag":373,"props":1364,"children":1365},{"style":386},[1366],{"type":51,"value":1186},{"type":46,"tag":373,"props":1368,"children":1369},{"style":392},[1370],{"type":51,"value":455},{"type":46,"tag":373,"props":1372,"children":1373},{"style":404},[1374],{"type":51,"value":1375}," --dry-run\n",{"type":46,"tag":373,"props":1377,"children":1378},{"class":375,"line":430},[1379,1383,1387,1391,1395,1399,1403,1407,1411,1415,1419,1423,1427],{"type":46,"tag":373,"props":1380,"children":1381},{"style":398},[1382],{"type":51,"value":401},{"type":46,"tag":373,"props":1384,"children":1385},{"style":392},[1386],{"type":51,"value":440},{"type":46,"tag":373,"props":1388,"children":1389},{"style":404},[1390],{"type":51,"value":445},{"type":46,"tag":373,"props":1392,"children":1393},{"style":386},[1394],{"type":51,"value":450},{"type":46,"tag":373,"props":1396,"children":1397},{"style":392},[1398],{"type":51,"value":455},{"type":46,"tag":373,"props":1400,"children":1401},{"style":404},[1402],{"type":51,"value":460},{"type":46,"tag":373,"props":1404,"children":1405},{"style":404},[1406],{"type":51,"value":807},{"type":46,"tag":373,"props":1408,"children":1409},{"style":404},[1410],{"type":51,"value":1350},{"type":46,"tag":373,"props":1412,"children":1413},{"style":404},[1414],{"type":51,"value":1171},{"type":46,"tag":373,"props":1416,"children":1417},{"style":392},[1418],{"type":51,"value":1176},{"type":46,"tag":373,"props":1420,"children":1421},{"style":404},[1422],{"type":51,"value":1181},{"type":46,"tag":373,"props":1424,"children":1425},{"style":386},[1426],{"type":51,"value":1186},{"type":46,"tag":373,"props":1428,"children":1429},{"style":392},[1430],{"type":51,"value":1191},{"type":46,"tag":54,"props":1432,"children":1433},{},[1434],{"type":46,"tag":67,"props":1435,"children":1436},{},[1437],{"type":51,"value":1438},"List knowledge documents for an avatar:",{"type":46,"tag":362,"props":1440,"children":1442},{"className":364,"code":1441,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs documents list --avatar-id \u003Cavatar-id>\n",[1443],{"type":46,"tag":75,"props":1444,"children":1445},{"__ignoreMap":367},[1446],{"type":46,"tag":373,"props":1447,"children":1448},{"class":375,"line":376},[1449,1453,1457,1461,1465,1469,1473,1478,1483,1488,1492,1497,1501],{"type":46,"tag":373,"props":1450,"children":1451},{"style":398},[1452],{"type":51,"value":401},{"type":46,"tag":373,"props":1454,"children":1455},{"style":392},[1456],{"type":51,"value":440},{"type":46,"tag":373,"props":1458,"children":1459},{"style":404},[1460],{"type":51,"value":445},{"type":46,"tag":373,"props":1462,"children":1463},{"style":386},[1464],{"type":51,"value":450},{"type":46,"tag":373,"props":1466,"children":1467},{"style":392},[1468],{"type":51,"value":455},{"type":46,"tag":373,"props":1470,"children":1471},{"style":404},[1472],{"type":51,"value":460},{"type":46,"tag":373,"props":1474,"children":1475},{"style":404},[1476],{"type":51,"value":1477}," documents",{"type":46,"tag":373,"props":1479,"children":1480},{"style":404},[1481],{"type":51,"value":1482}," list",{"type":46,"tag":373,"props":1484,"children":1485},{"style":404},[1486],{"type":51,"value":1487}," --avatar-id",{"type":46,"tag":373,"props":1489,"children":1490},{"style":392},[1491],{"type":51,"value":440},{"type":46,"tag":373,"props":1493,"children":1494},{"style":404},[1495],{"type":51,"value":1496},"avatar-i",{"type":46,"tag":373,"props":1498,"children":1499},{"style":386},[1500],{"type":51,"value":1186},{"type":46,"tag":373,"props":1502,"children":1503},{"style":392},[1504],{"type":51,"value":1191},{"type":46,"tag":54,"props":1506,"children":1507},{},[1508],{"type":46,"tag":67,"props":1509,"children":1510},{},[1511],{"type":51,"value":1512},"Create a knowledge document:",{"type":46,"tag":362,"props":1514,"children":1516},{"className":364,"code":1515,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request POST \u002Fv1\u002Fdocuments --body '{\n  \"avatarId\": \"\u003Cavatar-id>\",\n  \"name\": \"FAQ\",\n  \"content\": \"Q: What is your return policy?\\nA: 30 days, no questions asked.\"\n}'\n",[1517],{"type":46,"tag":75,"props":1518,"children":1519},{"__ignoreMap":367},[1520,1573,1581,1589,1598],{"type":46,"tag":373,"props":1521,"children":1522},{"class":375,"line":376},[1523,1527,1531,1535,1539,1543,1547,1551,1556,1561,1565,1569],{"type":46,"tag":373,"props":1524,"children":1525},{"style":398},[1526],{"type":51,"value":401},{"type":46,"tag":373,"props":1528,"children":1529},{"style":392},[1530],{"type":51,"value":440},{"type":46,"tag":373,"props":1532,"children":1533},{"style":404},[1534],{"type":51,"value":445},{"type":46,"tag":373,"props":1536,"children":1537},{"style":386},[1538],{"type":51,"value":450},{"type":46,"tag":373,"props":1540,"children":1541},{"style":392},[1542],{"type":51,"value":455},{"type":46,"tag":373,"props":1544,"children":1545},{"style":404},[1546],{"type":51,"value":460},{"type":46,"tag":373,"props":1548,"children":1549},{"style":404},[1550],{"type":51,"value":807},{"type":46,"tag":373,"props":1552,"children":1553},{"style":404},[1554],{"type":51,"value":1555}," POST",{"type":46,"tag":373,"props":1557,"children":1558},{"style":404},[1559],{"type":51,"value":1560}," \u002Fv1\u002Fdocuments",{"type":46,"tag":373,"props":1562,"children":1563},{"style":404},[1564],{"type":51,"value":1267},{"type":46,"tag":373,"props":1566,"children":1567},{"style":392},[1568],{"type":51,"value":1272},{"type":46,"tag":373,"props":1570,"children":1571},{"style":404},[1572],{"type":51,"value":1277},{"type":46,"tag":373,"props":1574,"children":1575},{"class":375,"line":430},[1576],{"type":46,"tag":373,"props":1577,"children":1578},{"style":404},[1579],{"type":51,"value":1580},"  \"avatarId\": \"\u003Cavatar-id>\",\n",{"type":46,"tag":373,"props":1582,"children":1583},{"class":375,"line":1288},[1584],{"type":46,"tag":373,"props":1585,"children":1586},{"style":404},[1587],{"type":51,"value":1588},"  \"name\": \"FAQ\",\n",{"type":46,"tag":373,"props":1590,"children":1592},{"class":375,"line":1591},4,[1593],{"type":46,"tag":373,"props":1594,"children":1595},{"style":404},[1596],{"type":51,"value":1597},"  \"content\": \"Q: What is your return policy?\\nA: 30 days, no questions asked.\"\n",{"type":46,"tag":373,"props":1599,"children":1601},{"class":375,"line":1600},5,[1602,1606],{"type":46,"tag":373,"props":1603,"children":1604},{"style":404},[1605],{"type":51,"value":1294},{"type":46,"tag":373,"props":1607,"children":1608},{"style":392},[1609],{"type":51,"value":1299},{"type":46,"tag":54,"props":1611,"children":1612},{},[1613],{"type":46,"tag":67,"props":1614,"children":1615},{},[1616],{"type":51,"value":1617},"List voices:",{"type":46,"tag":362,"props":1619,"children":1621},{"className":364,"code":1620,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs voices list\n",[1622],{"type":46,"tag":75,"props":1623,"children":1624},{"__ignoreMap":367},[1625],{"type":46,"tag":373,"props":1626,"children":1627},{"class":375,"line":376},[1628,1632,1636,1640,1644,1648,1652,1657],{"type":46,"tag":373,"props":1629,"children":1630},{"style":398},[1631],{"type":51,"value":401},{"type":46,"tag":373,"props":1633,"children":1634},{"style":392},[1635],{"type":51,"value":440},{"type":46,"tag":373,"props":1637,"children":1638},{"style":404},[1639],{"type":51,"value":445},{"type":46,"tag":373,"props":1641,"children":1642},{"style":386},[1643],{"type":51,"value":450},{"type":46,"tag":373,"props":1645,"children":1646},{"style":392},[1647],{"type":51,"value":455},{"type":46,"tag":373,"props":1649,"children":1650},{"style":404},[1651],{"type":51,"value":460},{"type":46,"tag":373,"props":1653,"children":1654},{"style":404},[1655],{"type":51,"value":1656}," voices",{"type":46,"tag":373,"props":1658,"children":1659},{"style":404},[1660],{"type":51,"value":1116},{"type":46,"tag":156,"props":1662,"children":1664},{"id":1663},"waiting-for-tasks",[1665],{"type":51,"value":1666},"Waiting for Tasks",{"type":46,"tag":54,"props":1668,"children":1669},{},[1670,1672,1678],{"type":51,"value":1671},"Generation endpoints return a task ID. Always run ",{"type":46,"tag":75,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":51,"value":1677},"wait",{"type":51,"value":1679}," immediately after a generation call — do not ask the user whether to wait.",{"type":46,"tag":362,"props":1681,"children":1683},{"className":364,"code":1682,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs wait \u003Ctask-id>\n",[1684],{"type":46,"tag":75,"props":1685,"children":1686},{"__ignoreMap":367},[1687],{"type":46,"tag":373,"props":1688,"children":1689},{"class":375,"line":376},[1690,1694,1698,1702,1706,1710,1714,1719,1723,1728,1732],{"type":46,"tag":373,"props":1691,"children":1692},{"style":398},[1693],{"type":51,"value":401},{"type":46,"tag":373,"props":1695,"children":1696},{"style":392},[1697],{"type":51,"value":440},{"type":46,"tag":373,"props":1699,"children":1700},{"style":404},[1701],{"type":51,"value":445},{"type":46,"tag":373,"props":1703,"children":1704},{"style":386},[1705],{"type":51,"value":450},{"type":46,"tag":373,"props":1707,"children":1708},{"style":392},[1709],{"type":51,"value":455},{"type":46,"tag":373,"props":1711,"children":1712},{"style":404},[1713],{"type":51,"value":460},{"type":46,"tag":373,"props":1715,"children":1716},{"style":404},[1717],{"type":51,"value":1718}," wait",{"type":46,"tag":373,"props":1720,"children":1721},{"style":392},[1722],{"type":51,"value":440},{"type":46,"tag":373,"props":1724,"children":1725},{"style":404},[1726],{"type":51,"value":1727},"task-i",{"type":46,"tag":373,"props":1729,"children":1730},{"style":386},[1731],{"type":51,"value":1186},{"type":46,"tag":373,"props":1733,"children":1734},{"style":392},[1735],{"type":51,"value":1191},{"type":46,"tag":156,"props":1737,"children":1739},{"id":1738},"generation-requests",[1740],{"type":51,"value":1741},"Generation Requests",{"type":46,"tag":54,"props":1743,"children":1744},{},[1745],{"type":51,"value":1746},"When the user asks to generate an image, video, or audio:",{"type":46,"tag":259,"props":1748,"children":1749},{},[1750,1762,1774,1786,1791,1803],{"type":46,"tag":263,"props":1751,"children":1752},{},[1753,1755,1760],{"type":51,"value":1754},"Read ",{"type":46,"tag":75,"props":1756,"children":1758},{"className":1757},[],[1759],{"type":51,"value":114},{"type":51,"value":1761}," once before the first generation POST. It is the canonical source for model options, request body shapes, and valid field values.",{"type":46,"tag":263,"props":1763,"children":1764},{},[1765,1767,1772],{"type":51,"value":1766},"Choose the model from ",{"type":46,"tag":75,"props":1768,"children":1770},{"className":1769},[],[1771],{"type":51,"value":114},{"type":51,"value":1773}," and tell the user which one you picked, briefly.",{"type":46,"tag":263,"props":1775,"children":1776},{},[1777,1779,1784],{"type":51,"value":1778},"Build the request body from ",{"type":46,"tag":75,"props":1780,"children":1782},{"className":1781},[],[1783],{"type":51,"value":114},{"type":51,"value":1785},". Do not guess field names.",{"type":46,"tag":263,"props":1787,"children":1788},{},[1789],{"type":51,"value":1790},"Call the generation endpoint once with that body.",{"type":46,"tag":263,"props":1792,"children":1793},{},[1794,1796,1801],{"type":51,"value":1795},"Run ",{"type":46,"tag":75,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":51,"value":1677},{"type":51,"value":1802}," automatically.",{"type":46,"tag":263,"props":1804,"children":1805},{},[1806,1808,1813],{"type":51,"value":1807},"Present the result following the rules in ",{"type":46,"tag":67,"props":1809,"children":1810},{},[1811],{"type":51,"value":1812},"Presenting Generation Output",{"type":51,"value":1814}," below.",{"type":46,"tag":54,"props":1816,"children":1817},{},[1818,1820,1825],{"type":51,"value":1819},"For generation requests, never skip the ",{"type":46,"tag":75,"props":1821,"children":1823},{"className":1822},[],[1824],{"type":51,"value":114},{"type":51,"value":1826}," read. For simple list\u002Fget\u002Fdelete requests, do not load it unless needed.",{"type":46,"tag":54,"props":1828,"children":1829},{},[1830],{"type":51,"value":1831},"If the user says only \"generate an image\" but the surrounding context is clearly about Runway account actions or this skill, still use the Runway API rather than a generic built-in image tool.",{"type":46,"tag":156,"props":1833,"children":1835},{"id":1834},"presenting-generation-output",[1836],{"type":51,"value":1812},{"type":46,"tag":54,"props":1838,"children":1839},{},[1840,1842,1847,1849,1855,1857,1862],{"type":51,"value":1841},"The ",{"type":46,"tag":75,"props":1843,"children":1845},{"className":1844},[],[1846],{"type":51,"value":1677},{"type":51,"value":1848}," command returns a task with an ",{"type":46,"tag":75,"props":1850,"children":1852},{"className":1851},[],[1853],{"type":51,"value":1854},"output",{"type":51,"value":1856}," array of signed URLs. These URLs ",{"type":46,"tag":67,"props":1858,"children":1859},{},[1860],{"type":51,"value":1861},"expire in 24–48 hours",{"type":51,"value":1863}," and are long signed JWT blobs that are awkward to read inline.",{"type":46,"tag":54,"props":1865,"children":1866},{},[1867],{"type":51,"value":1868},"After a successful generation, do all of the following:",{"type":46,"tag":259,"props":1870,"children":1871},{},[1872,1888,1945,1987],{"type":46,"tag":263,"props":1873,"children":1874},{},[1875,1880,1882],{"type":46,"tag":67,"props":1876,"children":1877},{},[1878],{"type":51,"value":1879},"Lead with what was generated",{"type":51,"value":1881}," — one short line stating the model and cost, e.g.\n",{"type":46,"tag":75,"props":1883,"children":1885},{"className":1884},[],[1886],{"type":51,"value":1887},"Generated with gen4_image (1080p, 8 credits).",{"type":46,"tag":263,"props":1889,"children":1890},{},[1891,1896,1898,1935,1937,1943],{"type":46,"tag":67,"props":1892,"children":1893},{},[1894],{"type":51,"value":1895},"Embed images inline as Markdown",{"type":51,"value":1897}," so the user can see them without clicking:\n",{"type":46,"tag":362,"props":1899,"children":1903},{"className":1900,"code":1901,"language":1902,"meta":367,"style":367},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","![Fox in a snowy forest](https:\u002F\u002Fstorage.runway...\u002Fsigned-url)\n","markdown",[1904],{"type":46,"tag":75,"props":1905,"children":1906},{"__ignoreMap":367},[1907],{"type":46,"tag":373,"props":1908,"children":1909},{"class":375,"line":376},[1910,1915,1920,1925,1931],{"type":46,"tag":373,"props":1911,"children":1912},{"style":392},[1913],{"type":51,"value":1914},"![",{"type":46,"tag":373,"props":1916,"children":1917},{"style":404},[1918],{"type":51,"value":1919},"Fox in a snowy forest",{"type":46,"tag":373,"props":1921,"children":1922},{"style":392},[1923],{"type":51,"value":1924},"](",{"type":46,"tag":373,"props":1926,"children":1928},{"style":1927},"--shiki-light:#90A4AE;--shiki-light-text-decoration:underline;--shiki-default:#EEFFFF;--shiki-default-text-decoration:underline;--shiki-dark:#BABED8;--shiki-dark-text-decoration:underline",[1929],{"type":51,"value":1930},"https:\u002F\u002Fstorage.runway...\u002Fsigned-url",{"type":46,"tag":373,"props":1932,"children":1933},{"style":392},[1934],{"type":51,"value":427},{"type":51,"value":1936},"\nFor videos, link them as plain Markdown links (",{"type":46,"tag":75,"props":1938,"children":1940},{"className":1939},[],[1941],{"type":51,"value":1942},"[fox.mp4](...)",{"type":51,"value":1944},") since inline video does not render in most chat UIs.",{"type":46,"tag":263,"props":1946,"children":1947},{},[1948,1953,1955,1961,1963,1969,1971],{"type":46,"tag":67,"props":1949,"children":1950},{},[1951],{"type":51,"value":1952},"Offer to save a local copy",{"type":51,"value":1954}," in the same message, proactively. Suggest a predictable path (",{"type":46,"tag":75,"props":1956,"children":1958},{"className":1957},[],[1959],{"type":51,"value":1960},".\u002Fgenerated\u002F",{"type":51,"value":1962}," or ",{"type":46,"tag":75,"props":1964,"children":1966},{"className":1965},[],[1967],{"type":51,"value":1968},".\u002Frunway-outputs\u002F",{"type":51,"value":1970},") and infer a filename from the prompt when possible. Example:\n",{"type":46,"tag":60,"props":1972,"children":1973},{},[1974],{"type":46,"tag":54,"props":1975,"children":1976},{},[1977,1979,1985],{"type":51,"value":1978},"Want me to save it to ",{"type":46,"tag":75,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":51,"value":1984},".\u002Fgenerated\u002Ffox.png",{"type":51,"value":1986},"? The signed URL expires in ~24–48h.",{"type":46,"tag":263,"props":1988,"children":1989},{},[1990,1995],{"type":46,"tag":67,"props":1991,"children":1992},{},[1993],{"type":51,"value":1994},"Do not paste the full signed URL as raw text",{"type":51,"value":1996}," unless the user asks for it. The Markdown image\u002Flink already contains it.",{"type":46,"tag":54,"props":1998,"children":1999},{},[2000,2002,2008,2010,2016],{"type":51,"value":2001},"If the user confirms a download, fetch with ",{"type":46,"tag":75,"props":2003,"children":2005},{"className":2004},[],[2006],{"type":51,"value":2007},"curl -L -o \u003Cpath> '\u003Curl>'",{"type":51,"value":2009}," (quote the URL — it contains ",{"type":46,"tag":75,"props":2011,"children":2013},{"className":2012},[],[2014],{"type":51,"value":2015},"&",{"type":51,"value":2017},").",{"type":46,"tag":156,"props":2019,"children":2021},{"id":2020},"api-reference",[2022],{"type":51,"value":2023},"API Reference",{"type":46,"tag":54,"props":2025,"children":2026},{},[2027,2028,2033,2035,2041,2043,2049],{"type":51,"value":959},{"type":46,"tag":75,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":51,"value":114},{"type":51,"value":2034}," for the canonical API contract. Use ",{"type":46,"tag":75,"props":2036,"children":2038},{"className":2037},[],[2039],{"type":51,"value":2040},"+fetch-api-reference",{"type":51,"value":2042}," only when you specifically need the latest docs content from ",{"type":46,"tag":75,"props":2044,"children":2046},{"className":2045},[],[2047],{"type":51,"value":2048},"docs.dev.runwayml.com",{"type":51,"value":1001},{"type":46,"tag":156,"props":2051,"children":2053},{"id":2052},"staging-stage",[2054],{"type":51,"value":2055},"Staging (--stage)",{"type":46,"tag":54,"props":2057,"children":2058},{},[2059,2061,2067],{"type":51,"value":2060},"Add ",{"type":46,"tag":75,"props":2062,"children":2064},{"className":2063},[],[2065],{"type":51,"value":2066},"--stage",{"type":51,"value":2068}," to any command to target the staging API:",{"type":46,"tag":362,"props":2070,"children":2072},{"className":364,"code":2071,"language":366,"meta":367,"style":367},"node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs --stage avatars list\nnode \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs --stage request GET \u002Fv1\u002Favatars\n",[2073],{"type":46,"tag":75,"props":2074,"children":2075},{"__ignoreMap":367},[2076,2116],{"type":46,"tag":373,"props":2077,"children":2078},{"class":375,"line":376},[2079,2083,2087,2091,2095,2099,2103,2108,2112],{"type":46,"tag":373,"props":2080,"children":2081},{"style":398},[2082],{"type":51,"value":401},{"type":46,"tag":373,"props":2084,"children":2085},{"style":392},[2086],{"type":51,"value":440},{"type":46,"tag":373,"props":2088,"children":2089},{"style":404},[2090],{"type":51,"value":445},{"type":46,"tag":373,"props":2092,"children":2093},{"style":386},[2094],{"type":51,"value":450},{"type":46,"tag":373,"props":2096,"children":2097},{"style":392},[2098],{"type":51,"value":455},{"type":46,"tag":373,"props":2100,"children":2101},{"style":404},[2102],{"type":51,"value":460},{"type":46,"tag":373,"props":2104,"children":2105},{"style":404},[2106],{"type":51,"value":2107}," --stage",{"type":46,"tag":373,"props":2109,"children":2110},{"style":404},[2111],{"type":51,"value":1111},{"type":46,"tag":373,"props":2113,"children":2114},{"style":404},[2115],{"type":51,"value":1116},{"type":46,"tag":373,"props":2117,"children":2118},{"class":375,"line":430},[2119,2123,2127,2131,2135,2139,2143,2147,2151,2155],{"type":46,"tag":373,"props":2120,"children":2121},{"style":398},[2122],{"type":51,"value":401},{"type":46,"tag":373,"props":2124,"children":2125},{"style":392},[2126],{"type":51,"value":440},{"type":46,"tag":373,"props":2128,"children":2129},{"style":404},[2130],{"type":51,"value":445},{"type":46,"tag":373,"props":2132,"children":2133},{"style":386},[2134],{"type":51,"value":450},{"type":46,"tag":373,"props":2136,"children":2137},{"style":392},[2138],{"type":51,"value":455},{"type":46,"tag":373,"props":2140,"children":2141},{"style":404},[2142],{"type":51,"value":460},{"type":46,"tag":373,"props":2144,"children":2145},{"style":404},[2146],{"type":51,"value":2107},{"type":46,"tag":373,"props":2148,"children":2149},{"style":404},[2150],{"type":51,"value":807},{"type":46,"tag":373,"props":2152,"children":2153},{"style":404},[2154],{"type":51,"value":1059},{"type":46,"tag":373,"props":2156,"children":2157},{"style":404},[2158],{"type":51,"value":2159}," \u002Fv1\u002Favatars\n",{"type":46,"tag":54,"props":2161,"children":2162},{},[2163,2165,2170,2172,2177,2179,2184,2186,2192],{"type":51,"value":2164},"With ",{"type":46,"tag":75,"props":2166,"children":2168},{"className":2167},[],[2169],{"type":51,"value":2066},{"type":51,"value":2171},", the CLI checks ",{"type":46,"tag":75,"props":2173,"children":2175},{"className":2174},[],[2176],{"type":51,"value":577},{"type":51,"value":2178}," first, then falls back to ",{"type":46,"tag":75,"props":2180,"children":2182},{"className":2181},[],[2183],{"type":51,"value":518},{"type":51,"value":2185},". The base URL defaults to ",{"type":46,"tag":75,"props":2187,"children":2189},{"className":2188},[],[2190],{"type":51,"value":2191},"https:\u002F\u002Fapi.dev-stage.runwayml.com",{"type":51,"value":1001},{"type":46,"tag":156,"props":2194,"children":2196},{"id":2195},"large-payloads-stdin",[2197],{"type":51,"value":2198},"Large Payloads (--stdin)",{"type":46,"tag":54,"props":2200,"children":2201},{},[2202,2204,2210,2212,2217],{"type":51,"value":2203},"When creating resources with data URIs (e.g. base64-encoded images for avatar ",{"type":46,"tag":75,"props":2205,"children":2207},{"className":2206},[],[2208],{"type":51,"value":2209},"referenceImage",{"type":51,"value":2211},"), the body can exceed shell argument limits. Use ",{"type":46,"tag":75,"props":2213,"children":2215},{"className":2214},[],[2216],{"type":51,"value":931},{"type":51,"value":2218}," to pipe the body:",{"type":46,"tag":362,"props":2220,"children":2222},{"className":364,"code":2221,"language":366,"meta":367,"style":367},"python3 -c \"\nimport json, base64\nwith open('image.png', 'rb') as f:\n    b64 = base64.b64encode(f.read()).decode()\nbody = json.dumps({'name': 'My Avatar', 'referenceImage': f'data:image\u002Fpng;base64,{b64}', ...})\nwith open('\u002Ftmp\u002Fbody.json', 'w') as f:\n    f.write(body)\n\" && cat \u002Ftmp\u002Fbody.json | node \u003Cskill-dir>\u002Fscripts\u002Frunway-api.mjs request POST \u002Fv1\u002Favatars --stdin\n",[2223],{"type":46,"tag":75,"props":2224,"children":2225},{"__ignoreMap":367},[2226,2244,2252,2260,2268,2276,2285,2294],{"type":46,"tag":373,"props":2227,"children":2228},{"class":375,"line":376},[2229,2234,2239],{"type":46,"tag":373,"props":2230,"children":2231},{"style":398},[2232],{"type":51,"value":2233},"python3",{"type":46,"tag":373,"props":2235,"children":2236},{"style":404},[2237],{"type":51,"value":2238}," -c",{"type":46,"tag":373,"props":2240,"children":2241},{"style":392},[2242],{"type":51,"value":2243}," \"\n",{"type":46,"tag":373,"props":2245,"children":2246},{"class":375,"line":430},[2247],{"type":46,"tag":373,"props":2248,"children":2249},{"style":404},[2250],{"type":51,"value":2251},"import json, base64\n",{"type":46,"tag":373,"props":2253,"children":2254},{"class":375,"line":1288},[2255],{"type":46,"tag":373,"props":2256,"children":2257},{"style":404},[2258],{"type":51,"value":2259},"with open('image.png', 'rb') as f:\n",{"type":46,"tag":373,"props":2261,"children":2262},{"class":375,"line":1591},[2263],{"type":46,"tag":373,"props":2264,"children":2265},{"style":404},[2266],{"type":51,"value":2267},"    b64 = base64.b64encode(f.read()).decode()\n",{"type":46,"tag":373,"props":2269,"children":2270},{"class":375,"line":1600},[2271],{"type":46,"tag":373,"props":2272,"children":2273},{"style":404},[2274],{"type":51,"value":2275},"body = json.dumps({'name': 'My Avatar', 'referenceImage': f'data:image\u002Fpng;base64,{b64}', ...})\n",{"type":46,"tag":373,"props":2277,"children":2279},{"class":375,"line":2278},6,[2280],{"type":46,"tag":373,"props":2281,"children":2282},{"style":404},[2283],{"type":51,"value":2284},"with open('\u002Ftmp\u002Fbody.json', 'w') as f:\n",{"type":46,"tag":373,"props":2286,"children":2288},{"class":375,"line":2287},7,[2289],{"type":46,"tag":373,"props":2290,"children":2291},{"style":404},[2292],{"type":51,"value":2293},"    f.write(body)\n",{"type":46,"tag":373,"props":2295,"children":2297},{"class":375,"line":2296},8,[2298,2302,2307,2312,2317,2322,2327,2331,2335,2339,2343,2347,2351,2355,2360],{"type":46,"tag":373,"props":2299,"children":2300},{"style":392},[2301],{"type":51,"value":422},{"type":46,"tag":373,"props":2303,"children":2304},{"style":392},[2305],{"type":51,"value":2306}," &&",{"type":46,"tag":373,"props":2308,"children":2309},{"style":398},[2310],{"type":51,"value":2311}," cat",{"type":46,"tag":373,"props":2313,"children":2314},{"style":404},[2315],{"type":51,"value":2316}," \u002Ftmp\u002Fbody.json",{"type":46,"tag":373,"props":2318,"children":2319},{"style":392},[2320],{"type":51,"value":2321}," |",{"type":46,"tag":373,"props":2323,"children":2324},{"style":398},[2325],{"type":51,"value":2326}," node",{"type":46,"tag":373,"props":2328,"children":2329},{"style":392},[2330],{"type":51,"value":440},{"type":46,"tag":373,"props":2332,"children":2333},{"style":404},[2334],{"type":51,"value":445},{"type":46,"tag":373,"props":2336,"children":2337},{"style":386},[2338],{"type":51,"value":450},{"type":46,"tag":373,"props":2340,"children":2341},{"style":392},[2342],{"type":51,"value":455},{"type":46,"tag":373,"props":2344,"children":2345},{"style":404},[2346],{"type":51,"value":460},{"type":46,"tag":373,"props":2348,"children":2349},{"style":404},[2350],{"type":51,"value":807},{"type":46,"tag":373,"props":2352,"children":2353},{"style":404},[2354],{"type":51,"value":1555},{"type":46,"tag":373,"props":2356,"children":2357},{"style":404},[2358],{"type":51,"value":2359}," \u002Fv1\u002Favatars",{"type":46,"tag":373,"props":2361,"children":2362},{"style":404},[2363],{"type":51,"value":2364}," --stdin\n",{"type":46,"tag":54,"props":2366,"children":2367},{},[2368,2370,2376,2378,2384,2386,2392],{"type":51,"value":2369},"Alternatively, write the JSON to a file and use ",{"type":46,"tag":75,"props":2371,"children":2373},{"className":2372},[],[2374],{"type":51,"value":2375},"curl -d @file",{"type":51,"value":2377}," directly. The ",{"type":46,"tag":75,"props":2379,"children":2381},{"className":2380},[],[2382],{"type":51,"value":2383},"--body",{"type":51,"value":2385}," flag is fine for small JSON payloads but will hit ",{"type":46,"tag":75,"props":2387,"children":2389},{"className":2388},[],[2390],{"type":51,"value":2391},"argument list too long",{"type":51,"value":2393}," for data URIs of images over ~200KB.",{"type":46,"tag":156,"props":2395,"children":2397},{"id":2396},"environment-variables",[2398],{"type":51,"value":2399},"Environment Variables",{"type":46,"tag":54,"props":2401,"children":2402},{},[2403],{"type":51,"value":2404},"The runtime reads credentials from the process environment:",{"type":46,"tag":2406,"props":2407,"children":2408},"table",{},[2409,2428],{"type":46,"tag":2410,"props":2411,"children":2412},"thead",{},[2413],{"type":46,"tag":2414,"props":2415,"children":2416},"tr",{},[2417,2423],{"type":46,"tag":2418,"props":2419,"children":2420},"th",{},[2421],{"type":51,"value":2422},"Variable",{"type":46,"tag":2418,"props":2424,"children":2425},{},[2426],{"type":51,"value":2427},"Description",{"type":46,"tag":2429,"props":2430,"children":2431},"tbody",{},[2432,2449,2472,2489],{"type":46,"tag":2414,"props":2433,"children":2434},{},[2435,2444],{"type":46,"tag":2436,"props":2437,"children":2438},"td",{},[2439],{"type":46,"tag":75,"props":2440,"children":2442},{"className":2441},[],[2443],{"type":51,"value":518},{"type":46,"tag":2436,"props":2445,"children":2446},{},[2447],{"type":51,"value":2448},"Production API key",{"type":46,"tag":2414,"props":2450,"children":2451},{},[2452,2460],{"type":46,"tag":2436,"props":2453,"children":2454},{},[2455],{"type":46,"tag":75,"props":2456,"children":2458},{"className":2457},[],[2459],{"type":51,"value":577},{"type":46,"tag":2436,"props":2461,"children":2462},{},[2463,2465,2470],{"type":51,"value":2464},"Stage API key (used with ",{"type":46,"tag":75,"props":2466,"children":2468},{"className":2467},[],[2469],{"type":51,"value":2066},{"type":51,"value":2471},")",{"type":46,"tag":2414,"props":2473,"children":2474},{},[2475,2484],{"type":46,"tag":2436,"props":2476,"children":2477},{},[2478],{"type":46,"tag":75,"props":2479,"children":2481},{"className":2480},[],[2482],{"type":51,"value":2483},"RUNWAY_SKILLS_BASE_URL",{"type":46,"tag":2436,"props":2485,"children":2486},{},[2487],{"type":51,"value":2488},"Override the base URL for any environment",{"type":46,"tag":2414,"props":2490,"children":2491},{},[2492,2501],{"type":46,"tag":2436,"props":2493,"children":2494},{},[2495],{"type":46,"tag":75,"props":2496,"children":2498},{"className":2497},[],[2499],{"type":51,"value":2500},"RUNWAY_SKILLS_DIR",{"type":46,"tag":2436,"props":2502,"children":2503},{},[2504,2506,2511],{"type":51,"value":2505},"Optional. Absolute path to the source checkout of this skills repo — used by the agent as a fallback when resolving ",{"type":46,"tag":75,"props":2507,"children":2509},{"className":2508},[],[2510],{"type":51,"value":205},{"type":51,"value":1001},{"type":46,"tag":54,"props":2513,"children":2514},{},[2515,2517,2522],{"type":51,"value":2516},"If the agent cannot see ",{"type":46,"tag":75,"props":2518,"children":2520},{"className":2519},[],[2521],{"type":51,"value":518},{"type":51,"value":2523},", the editor likely needs to be restarted after the variable is set.",{"type":46,"tag":156,"props":2525,"children":2527},{"id":2526},"related-files",[2528],{"type":51,"value":2529},"Related Files",{"type":46,"tag":472,"props":2531,"children":2532},{},[2533],{"type":46,"tag":263,"props":2534,"children":2535},{},[2536,2541],{"type":46,"tag":75,"props":2537,"children":2539},{"className":2538},[],[2540],{"type":51,"value":526},{"type":51,"value":2542}," — auth setup and troubleshooting for this skill",{"type":46,"tag":156,"props":2544,"children":2546},{"id":2545},"related-skills",[2547],{"type":51,"value":2548},"Related Skills",{"type":46,"tag":2406,"props":2550,"children":2551},{},[2552,2568],{"type":46,"tag":2410,"props":2553,"children":2554},{},[2555],{"type":46,"tag":2414,"props":2556,"children":2557},{},[2558,2563],{"type":46,"tag":2418,"props":2559,"children":2560},{},[2561],{"type":51,"value":2562},"Skill",{"type":46,"tag":2418,"props":2564,"children":2565},{},[2566],{"type":51,"value":2567},"When to use",{"type":46,"tag":2429,"props":2569,"children":2570},{},[2571,2587,2603,2619,2635,2651,2667],{"type":46,"tag":2414,"props":2572,"children":2573},{},[2574,2582],{"type":46,"tag":2436,"props":2575,"children":2576},{},[2577],{"type":46,"tag":75,"props":2578,"children":2580},{"className":2579},[],[2581],{"type":51,"value":114},{"type":46,"tag":2436,"props":2583,"children":2584},{},[2585],{"type":51,"value":2586},"Full API reference — models, endpoints, costs, rate limits",{"type":46,"tag":2414,"props":2588,"children":2589},{},[2590,2598],{"type":46,"tag":2436,"props":2591,"children":2592},{},[2593],{"type":46,"tag":75,"props":2594,"children":2596},{"className":2595},[],[2597],{"type":51,"value":2040},{"type":46,"tag":2436,"props":2599,"children":2600},{},[2601],{"type":51,"value":2602},"Fetch latest docs from docs.dev.runwayml.com",{"type":46,"tag":2414,"props":2604,"children":2605},{},[2606,2614],{"type":46,"tag":2436,"props":2607,"children":2608},{},[2609],{"type":46,"tag":75,"props":2610,"children":2612},{"className":2611},[],[2613],{"type":51,"value":130},{"type":46,"tag":2436,"props":2615,"children":2616},{},[2617],{"type":51,"value":2618},"Write video generation code into a project",{"type":46,"tag":2414,"props":2620,"children":2621},{},[2622,2630],{"type":46,"tag":2436,"props":2623,"children":2624},{},[2625],{"type":46,"tag":75,"props":2626,"children":2628},{"className":2627},[],[2629],{"type":51,"value":122},{"type":46,"tag":2436,"props":2631,"children":2632},{},[2633],{"type":51,"value":2634},"Write image generation code into a project",{"type":46,"tag":2414,"props":2636,"children":2637},{},[2638,2646],{"type":46,"tag":2436,"props":2639,"children":2640},{},[2641],{"type":46,"tag":75,"props":2642,"children":2644},{"className":2643},[],[2645],{"type":51,"value":137},{"type":46,"tag":2436,"props":2647,"children":2648},{},[2649],{"type":51,"value":2650},"Write audio generation code into a project",{"type":46,"tag":2414,"props":2652,"children":2653},{},[2654,2662],{"type":46,"tag":2436,"props":2655,"children":2656},{},[2657],{"type":46,"tag":75,"props":2658,"children":2660},{"className":2659},[],[2661],{"type":51,"value":144},{"type":46,"tag":2436,"props":2663,"children":2664},{},[2665],{"type":51,"value":2666},"Write avatar session code into a project",{"type":46,"tag":2414,"props":2668,"children":2669},{},[2670,2678],{"type":46,"tag":2436,"props":2671,"children":2672},{},[2673],{"type":46,"tag":75,"props":2674,"children":2676},{"className":2675},[],[2677],{"type":51,"value":152},{"type":46,"tag":2436,"props":2679,"children":2680},{},[2681],{"type":51,"value":2682},"Write knowledge document code into a project",{"type":46,"tag":2684,"props":2685,"children":2686},"style",{},[2687],{"type":51,"value":2688},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2690,"total":2855},[2691,2706,2715,2729,2744,2757,2770,2781,2795,2813,2824,2844],{"slug":2692,"name":2692,"fn":2693,"description":2694,"org":2695,"tags":2696,"stars":27,"repoUrl":28,"updatedAt":2705},"rw-api-reference","look up Runway API reference","Complete reference for Runway's public API: models, endpoints, costs, limits, and types",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2697,2700,2701,2704],{"name":2698,"slug":2699,"type":16},"AI Infrastructure","ai-infrastructure",{"name":22,"slug":23,"type":16},{"name":2702,"slug":2703,"type":16},"Reference","reference",{"name":25,"slug":26,"type":16},"2026-04-08T04:41:58.820783",{"slug":2707,"name":2707,"fn":2708,"description":2709,"org":2710,"tags":2711,"stars":27,"repoUrl":28,"updatedAt":2714},"rw-check-compatibility","verify codebase compatibility with the Runway API","Analyze a user's codebase to verify it can use Runway's public API (server-side requirement)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2712,2713],{"name":22,"slug":23,"type":16},{"name":9,"slug":8,"type":16},"2026-04-08T04:42:01.271257",{"slug":2716,"name":2716,"fn":2717,"description":2718,"org":2719,"tags":2720,"stars":27,"repoUrl":28,"updatedAt":2728},"rw-check-org-details","query Runway API for organization details","Query the Runway API for organization details: rate limits, credit balance, usage tier, and daily generation counts",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2721,2724,2727],{"name":2722,"slug":2723,"type":16},"Operations","operations",{"name":2725,"slug":2726,"type":16},"Reporting","reporting",{"name":9,"slug":8,"type":16},"2026-04-08T04:42:00.054235",{"slug":2730,"name":2730,"fn":2731,"description":2732,"org":2733,"tags":2734,"stars":27,"repoUrl":28,"updatedAt":2743},"rw-fetch-api-reference","retrieve Runway API reference","Retrieve the latest Runway API reference from docs.dev.runwayml.com and use it as the authoritative source before any integration work",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2735,2736,2739,2742],{"name":22,"slug":23,"type":16},{"name":2737,"slug":2738,"type":16},"Documentation","documentation",{"name":2740,"slug":2741,"type":16},"Research","research",{"name":9,"slug":8,"type":16},"2026-04-08T04:42:07.604739",{"slug":2745,"name":2745,"fn":2746,"description":2747,"org":2748,"tags":2749,"stars":27,"repoUrl":28,"updatedAt":2756},"rw-generate-audio","generate audio with Runway API","Generate audio using the Runway API via runnable scripts. Supports TTS, sound effects, voice isolation, dubbing, and voice conversion.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2750,2751,2754,2755],{"name":2698,"slug":2699,"type":16},{"name":2752,"slug":2753,"type":16},"Audio","audio",{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-04-17T04:51:59.892185",{"slug":2758,"name":2758,"fn":2759,"description":2760,"org":2761,"tags":2762,"stars":27,"repoUrl":28,"updatedAt":2769},"rw-generate-image","generate images with Runway API","Generate images directly using the Runway API via runnable scripts. Supports text-to-image with optional reference images.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2763,2764,2765,2768],{"name":2698,"slug":2699,"type":16},{"name":18,"slug":19,"type":16},{"name":2766,"slug":2767,"type":16},"Image Generation","image-generation",{"name":9,"slug":8,"type":16},"2026-04-17T04:52:01.158325",{"slug":2771,"name":2771,"fn":2772,"description":2773,"org":2774,"tags":2775,"stars":27,"repoUrl":28,"updatedAt":2780},"rw-generate-video","generate videos with Runway API","Generate videos directly using the Runway API via runnable scripts. Supports text-to-video, image-to-video, and video-to-video with seedance2, gen4.5, veo3, and more.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2776,2777,2778,2779],{"name":2698,"slug":2699,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"name":25,"slug":26,"type":16},"2026-04-17T04:51:58.600919",{"slug":2782,"name":2782,"fn":2783,"description":2784,"org":2785,"tags":2786,"stars":27,"repoUrl":28,"updatedAt":2794},"rw-integrate-audio","integrate Runway audio APIs","Help users integrate Runway audio APIs (TTS, sound effects, voice isolation, dubbing)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2787,2788,2789,2790,2791],{"name":22,"slug":23,"type":16},{"name":2752,"slug":2753,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"name":2792,"slug":2793,"type":16},"Speech","speech","2026-04-08T04:42:10.081814",{"slug":2796,"name":2796,"fn":2797,"description":2798,"org":2799,"tags":2800,"stars":27,"repoUrl":28,"updatedAt":2812},"rw-integrate-character-embed","embed Runway characters in React apps","Help users embed Runway Character avatar calls in React apps using the @runwayml\u002Favatars-react SDK",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2801,2802,2805,2808,2809],{"name":22,"slug":23,"type":16},{"name":2803,"slug":2804,"type":16},"Frontend","frontend",{"name":2806,"slug":2807,"type":16},"React","react",{"name":9,"slug":8,"type":16},{"name":2810,"slug":2811,"type":16},"UI Components","ui-components","2026-04-08T04:42:08.849481",{"slug":2814,"name":2814,"fn":2815,"description":2816,"org":2817,"tags":2818,"stars":27,"repoUrl":28,"updatedAt":2823},"rw-integrate-characters","integrate Runway conversational characters","Help users create Runway Characters (GWM-1 avatars) and integrate real-time conversational sessions into their apps",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2819,2820,2821,2822],{"name":22,"slug":23,"type":16},{"name":2752,"slug":2753,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-04-08T04:42:06.171483",{"slug":2825,"name":2825,"fn":2826,"description":2827,"org":2828,"tags":2829,"stars":27,"repoUrl":28,"updatedAt":2843},"rw-integrate-documents","add documents to Runway Characters","Help users add knowledge base documents to Runway Characters for domain-specific conversations",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2830,2833,2836,2839,2842],{"name":2831,"slug":2832,"type":16},"Agents","agents",{"name":2834,"slug":2835,"type":16},"AI Context","ai-context",{"name":2837,"slug":2838,"type":16},"Documents","documents",{"name":2840,"slug":2841,"type":16},"Knowledge Management","knowledge-management",{"name":9,"slug":8,"type":16},"2026-04-08T04:42:04.95186",{"slug":2845,"name":2845,"fn":2846,"description":2847,"org":2848,"tags":2849,"stars":27,"repoUrl":28,"updatedAt":2854},"rw-integrate-image","integrate Runway image generation APIs","Help users integrate Runway image generation APIs (text-to-image with reference images)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2850,2851,2852,2853],{"name":22,"slug":23,"type":16},{"name":18,"slug":19,"type":16},{"name":2766,"slug":2767,"type":16},{"name":9,"slug":8,"type":16},"2026-04-08T04:42:11.322008",18,{"items":2857,"total":2904},[2858,2865,2870,2876,2883,2890,2897],{"slug":2692,"name":2692,"fn":2693,"description":2694,"org":2859,"tags":2860,"stars":27,"repoUrl":28,"updatedAt":2705},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2861,2862,2863,2864],{"name":2698,"slug":2699,"type":16},{"name":22,"slug":23,"type":16},{"name":2702,"slug":2703,"type":16},{"name":25,"slug":26,"type":16},{"slug":2707,"name":2707,"fn":2708,"description":2709,"org":2866,"tags":2867,"stars":27,"repoUrl":28,"updatedAt":2714},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2868,2869],{"name":22,"slug":23,"type":16},{"name":9,"slug":8,"type":16},{"slug":2716,"name":2716,"fn":2717,"description":2718,"org":2871,"tags":2872,"stars":27,"repoUrl":28,"updatedAt":2728},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2873,2874,2875],{"name":2722,"slug":2723,"type":16},{"name":2725,"slug":2726,"type":16},{"name":9,"slug":8,"type":16},{"slug":2730,"name":2730,"fn":2731,"description":2732,"org":2877,"tags":2878,"stars":27,"repoUrl":28,"updatedAt":2743},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2879,2880,2881,2882],{"name":22,"slug":23,"type":16},{"name":2737,"slug":2738,"type":16},{"name":2740,"slug":2741,"type":16},{"name":9,"slug":8,"type":16},{"slug":2745,"name":2745,"fn":2746,"description":2747,"org":2884,"tags":2885,"stars":27,"repoUrl":28,"updatedAt":2756},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2886,2887,2888,2889],{"name":2698,"slug":2699,"type":16},{"name":2752,"slug":2753,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"slug":2758,"name":2758,"fn":2759,"description":2760,"org":2891,"tags":2892,"stars":27,"repoUrl":28,"updatedAt":2769},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2893,2894,2895,2896],{"name":2698,"slug":2699,"type":16},{"name":18,"slug":19,"type":16},{"name":2766,"slug":2767,"type":16},{"name":9,"slug":8,"type":16},{"slug":2771,"name":2771,"fn":2772,"description":2773,"org":2898,"tags":2899,"stars":27,"repoUrl":28,"updatedAt":2780},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2900,2901,2902,2903],{"name":2698,"slug":2699,"type":16},{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"name":25,"slug":26,"type":16},17]