[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-runway-runway-dev":3,"mdc-tymdcr-key":35,"related-org-runway-runway-dev":686,"related-repo-runway-runway-dev":843},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"runway-dev","build and debug Runway Dev Platform integrations","Foundation for building, modifying, debugging, or verifying Runway Dev Platform integrations in an application: connect Dev MCP, use llms.txt to find current resources, resolve project context, use SDK wait helpers, and handle errors. Load with relevant runway-dev-* surface skills. Not for direct media generation scripts or REST CLI shortcuts.",{"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,18,21],{"name":14,"slug":15,"type":16},"MCP","mcp","tag",{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},"API Development","api-development",{"name":22,"slug":23,"type":16},"Debugging","debugging",57,"https:\u002F\u002Fgithub.com\u002Frunwayml\u002Fskills","2026-09-01T08:30:38.04925",null,15,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"for Runway coding agent skills","https:\u002F\u002Fgithub.com\u002Frunwayml\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Frunway-dev","---\nname: runway-dev\ndescription: \"Foundation for building, modifying, debugging, or verifying Runway Dev Platform integrations in an application: connect Dev MCP, use llms.txt to find current resources, resolve project context, use SDK wait helpers, and handle errors. Load with relevant runway-dev-* surface skills. Not for direct media generation scripts or REST CLI shortcuts.\"\nuser-invocable: true\n---\n\n# Runway Dev Platform\n\nWorkflow for integrating Runway Dev products into an application. Use MCP for live account state and management, the SDK for application code, and current docs for API contracts.\n\n> **When to use:** Building, modifying, debugging, or verifying a Runway integration, including work started from Dev Portal.\n>\n> **Do not use for:** one-off media generation from the agent or direct REST CLI actions.\n\n## Start with the work\n\nMake useful progress before explaining setup. Inspect the workspace and existing configuration without narrating each check. Ask a question only when missing information blocks the next change.\n\n- Existing project: find its server boundary and user-facing integration point. Add a server route or function before integrating a frontend-only project.\n- Empty workspace: ask what the user wants to build. You may recommend a small web app with visible inputs and output as a Runway starting point, but do not claim the user requested one.\n- Before giving credential setup instructions, test whether `RUNWAYML_API_SECRET` is present without printing its value, for example with `test -n \"${RUNWAYML_API_SECRET:-}\"`. If it is present, skip dotenv instructions.\n- Use the official SDK. Install `@runwayml\u002Fsdk` for Node or `runwayml` for Python only if the project needs it and does not already have it.\n- Keep updates short. Do not narrate a long setup sequence or checklist.\n\n## Current contracts\n\nInstalled skill prose is workflow guidance, not the canonical API schema. Resolve current contracts in this order:\n\n1. Fetch https:\u002F\u002Fdocs.dev.runwayml.com\u002Fllms.txt.\n2. Fetch only the exact linked documentation subset relevant to the task.\n3. If that subset does not define the contract, read https:\u002F\u002Fdocs.dev.runwayml.com\u002Fapi.md.\n4. If machine-readable detail is still needed, use https:\u002F\u002Fdocs.dev.runwayml.com\u002Fopenapi.json.\n\nDo not invent endpoints, field names, or model constraints.\n\n## MCP policy\n\nEncourage connecting Dev MCP as the happy path for live account context and management. Connect `https:\u002F\u002Fdev.runwayml.com\u002Fmcp` with Runway OAuth. Never put an API key in MCP config or automate browser OAuth.\n\nIf the user declines or the connection fails, never block account-independent work. Continue with live docs, existing application config, or environment configuration. SDK and API integration code remain allowed. Stop only when the next requested step requires live account discovery, account or resource mutations, or billable verification.\n\nNever imitate an unavailable MCP account-management or resource-management tool with a REST call. Explain the MCP dependency only when it blocks the requested action.\n\nCall MCP tools only when the result affects the next step:\n\n- `whoami` when identity or access is uncertain.\n- `list_projects` when a live `projectId` must be selected or verified. Never guess one.\n- `list_models` when model access, selection, or current constraints matter.\n- `get_credit_balance` immediately before an approved billable verification.\n\n## API key (SDK only)\n\nMCP uses OAuth. SDK calls use an organization-scoped API key from Developer Portal settings. Probe `RUNWAYML_API_SECRET` without printing it. If missing when a live SDK call is imminent, ask the user to store the key in a server-side environment file or secret manager. Never expose it client-side, in chat, or in source control; ensure local environment files are ignored.\n\n## SDK requests\n\n1. Build one valid SDK request from the current API docs and, when needed, MCP `list_models` constraints.\n2. Chain the wait helper directly from the create call: `await client.\u003Coperation>.create({...}).waitForTaskOutput()` in Node or `client.\u003Coperation>.create(...).wait_for_task_output()` in Python. Do not await `create()` before calling the helper.\n3. Catch the SDK's `TaskFailedError` and surface its task details. Submit once; do not add a manual polling loop or auto-resubmit.\n4. Use MCP `get_task` only to inspect or debug an existing task outside the application's SDK flow.\n5. Wire successful output into the application's intended UI or consumer. Persist outputs if the app needs them after signed URLs expire (~24–48h).\n\n## Terminology\n\n| UI \u002F quickstart | MCP \u002F API |\n|-----------------|-----------|\n| Characters | avatars (`list_avatars`, `get_avatar`) |\n| Character ID | avatar UUID |\n| Model Router config ID | immutable slug (`configId`) |\n| live Session | `POST \u002Fv1\u002Frealtime_sessions` |\n\n## Errors\n\n- Validation error → show message, fix field from MCP constraints or docs, retry once.\n- Auth\u002Fpermission → stop; ask user to authenticate or pick accessible project.\n- Rate limit → honor retry interval.\n- `FAILED` task → report failure details; do not auto-resubmit.\n- Missing MCP tool → continue account-independent implementation; stop only when live account state or management is required.\n\n## Surface skills\n\n| Skill | When |\n|-------|------|\n| `+runway-dev-models` | Model generation integration |\n| `+runway-dev-model-routers` | Model Router setup and routed calls |\n| `+runway-dev-characters` | Characters \u002F realtime sessions |\n| `+runway-dev-recipes` | Recipe pipelines |\n| `+runway-dev-workflows` | Runway app workflows → API endpoints |\n\nUse `+runway-dev` with the relevant surface skill or skills when both are installed. Surface skills repeat their minimum setup so they remain useful when installed alone. Usually one surface matches the user's goal; load more when the task crosses surfaces.\n",{"data":36,"body":38},{"name":4,"description":6,"user-invocable":37},true,{"type":39,"children":40},"root",[41,50,56,81,88,93,155,161,166,214,219,225,238,243,248,253,308,314,326,332,407,413,520,526,560,566,673],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"runway-dev-platform",[47],{"type":48,"value":49},"text","Runway Dev Platform",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54],{"type":48,"value":55},"Workflow for integrating Runway Dev products into an application. Use MCP for live account state and management, the SDK for application code, and current docs for API contracts.",{"type":42,"tag":57,"props":58,"children":59},"blockquote",{},[60,71],{"type":42,"tag":51,"props":61,"children":62},{},[63,69],{"type":42,"tag":64,"props":65,"children":66},"strong",{},[67],{"type":48,"value":68},"When to use:",{"type":48,"value":70}," Building, modifying, debugging, or verifying a Runway integration, including work started from Dev Portal.",{"type":42,"tag":51,"props":72,"children":73},{},[74,79],{"type":42,"tag":64,"props":75,"children":76},{},[77],{"type":48,"value":78},"Do not use for:",{"type":48,"value":80}," one-off media generation from the agent or direct REST CLI actions.",{"type":42,"tag":82,"props":83,"children":85},"h2",{"id":84},"start-with-the-work",[86],{"type":48,"value":87},"Start with the work",{"type":42,"tag":51,"props":89,"children":90},{},[91],{"type":48,"value":92},"Make useful progress before explaining setup. Inspect the workspace and existing configuration without narrating each check. Ask a question only when missing information blocks the next change.",{"type":42,"tag":94,"props":95,"children":96},"ul",{},[97,103,108,130,150],{"type":42,"tag":98,"props":99,"children":100},"li",{},[101],{"type":48,"value":102},"Existing project: find its server boundary and user-facing integration point. Add a server route or function before integrating a frontend-only project.",{"type":42,"tag":98,"props":104,"children":105},{},[106],{"type":48,"value":107},"Empty workspace: ask what the user wants to build. You may recommend a small web app with visible inputs and output as a Runway starting point, but do not claim the user requested one.",{"type":42,"tag":98,"props":109,"children":110},{},[111,113,120,122,128],{"type":48,"value":112},"Before giving credential setup instructions, test whether ",{"type":42,"tag":114,"props":115,"children":117},"code",{"className":116},[],[118],{"type":48,"value":119},"RUNWAYML_API_SECRET",{"type":48,"value":121}," is present without printing its value, for example with ",{"type":42,"tag":114,"props":123,"children":125},{"className":124},[],[126],{"type":48,"value":127},"test -n \"${RUNWAYML_API_SECRET:-}\"",{"type":48,"value":129},". If it is present, skip dotenv instructions.",{"type":42,"tag":98,"props":131,"children":132},{},[133,135,141,143,148],{"type":48,"value":134},"Use the official SDK. Install ",{"type":42,"tag":114,"props":136,"children":138},{"className":137},[],[139],{"type":48,"value":140},"@runwayml\u002Fsdk",{"type":48,"value":142}," for Node or ",{"type":42,"tag":114,"props":144,"children":146},{"className":145},[],[147],{"type":48,"value":11},{"type":48,"value":149}," for Python only if the project needs it and does not already have it.",{"type":42,"tag":98,"props":151,"children":152},{},[153],{"type":48,"value":154},"Keep updates short. Do not narrate a long setup sequence or checklist.",{"type":42,"tag":82,"props":156,"children":158},{"id":157},"current-contracts",[159],{"type":48,"value":160},"Current contracts",{"type":42,"tag":51,"props":162,"children":163},{},[164],{"type":48,"value":165},"Installed skill prose is workflow guidance, not the canonical API schema. Resolve current contracts in this order:",{"type":42,"tag":167,"props":168,"children":169},"ol",{},[170,185,190,202],{"type":42,"tag":98,"props":171,"children":172},{},[173,175,183],{"type":48,"value":174},"Fetch ",{"type":42,"tag":176,"props":177,"children":181},"a",{"href":178,"rel":179},"https:\u002F\u002Fdocs.dev.runwayml.com\u002Fllms.txt",[180],"nofollow",[182],{"type":48,"value":178},{"type":48,"value":184},".",{"type":42,"tag":98,"props":186,"children":187},{},[188],{"type":48,"value":189},"Fetch only the exact linked documentation subset relevant to the task.",{"type":42,"tag":98,"props":191,"children":192},{},[193,195,201],{"type":48,"value":194},"If that subset does not define the contract, read ",{"type":42,"tag":176,"props":196,"children":199},{"href":197,"rel":198},"https:\u002F\u002Fdocs.dev.runwayml.com\u002Fapi.md",[180],[200],{"type":48,"value":197},{"type":48,"value":184},{"type":42,"tag":98,"props":203,"children":204},{},[205,207,213],{"type":48,"value":206},"If machine-readable detail is still needed, use ",{"type":42,"tag":176,"props":208,"children":211},{"href":209,"rel":210},"https:\u002F\u002Fdocs.dev.runwayml.com\u002Fopenapi.json",[180],[212],{"type":48,"value":209},{"type":48,"value":184},{"type":42,"tag":51,"props":215,"children":216},{},[217],{"type":48,"value":218},"Do not invent endpoints, field names, or model constraints.",{"type":42,"tag":82,"props":220,"children":222},{"id":221},"mcp-policy",[223],{"type":48,"value":224},"MCP policy",{"type":42,"tag":51,"props":226,"children":227},{},[228,230,236],{"type":48,"value":229},"Encourage connecting Dev MCP as the happy path for live account context and management. Connect ",{"type":42,"tag":114,"props":231,"children":233},{"className":232},[],[234],{"type":48,"value":235},"https:\u002F\u002Fdev.runwayml.com\u002Fmcp",{"type":48,"value":237}," with Runway OAuth. Never put an API key in MCP config or automate browser OAuth.",{"type":42,"tag":51,"props":239,"children":240},{},[241],{"type":48,"value":242},"If the user declines or the connection fails, never block account-independent work. Continue with live docs, existing application config, or environment configuration. SDK and API integration code remain allowed. Stop only when the next requested step requires live account discovery, account or resource mutations, or billable verification.",{"type":42,"tag":51,"props":244,"children":245},{},[246],{"type":48,"value":247},"Never imitate an unavailable MCP account-management or resource-management tool with a REST call. Explain the MCP dependency only when it blocks the requested action.",{"type":42,"tag":51,"props":249,"children":250},{},[251],{"type":48,"value":252},"Call MCP tools only when the result affects the next step:",{"type":42,"tag":94,"props":254,"children":255},{},[256,267,286,297],{"type":42,"tag":98,"props":257,"children":258},{},[259,265],{"type":42,"tag":114,"props":260,"children":262},{"className":261},[],[263],{"type":48,"value":264},"whoami",{"type":48,"value":266}," when identity or access is uncertain.",{"type":42,"tag":98,"props":268,"children":269},{},[270,276,278,284],{"type":42,"tag":114,"props":271,"children":273},{"className":272},[],[274],{"type":48,"value":275},"list_projects",{"type":48,"value":277}," when a live ",{"type":42,"tag":114,"props":279,"children":281},{"className":280},[],[282],{"type":48,"value":283},"projectId",{"type":48,"value":285}," must be selected or verified. Never guess one.",{"type":42,"tag":98,"props":287,"children":288},{},[289,295],{"type":42,"tag":114,"props":290,"children":292},{"className":291},[],[293],{"type":48,"value":294},"list_models",{"type":48,"value":296}," when model access, selection, or current constraints matter.",{"type":42,"tag":98,"props":298,"children":299},{},[300,306],{"type":42,"tag":114,"props":301,"children":303},{"className":302},[],[304],{"type":48,"value":305},"get_credit_balance",{"type":48,"value":307}," immediately before an approved billable verification.",{"type":42,"tag":82,"props":309,"children":311},{"id":310},"api-key-sdk-only",[312],{"type":48,"value":313},"API key (SDK only)",{"type":42,"tag":51,"props":315,"children":316},{},[317,319,324],{"type":48,"value":318},"MCP uses OAuth. SDK calls use an organization-scoped API key from Developer Portal settings. Probe ",{"type":42,"tag":114,"props":320,"children":322},{"className":321},[],[323],{"type":48,"value":119},{"type":48,"value":325}," without printing it. If missing when a live SDK call is imminent, ask the user to store the key in a server-side environment file or secret manager. Never expose it client-side, in chat, or in source control; ensure local environment files are ignored.",{"type":42,"tag":82,"props":327,"children":329},{"id":328},"sdk-requests",[330],{"type":48,"value":331},"SDK requests",{"type":42,"tag":167,"props":333,"children":334},{},[335,347,376,389,402],{"type":42,"tag":98,"props":336,"children":337},{},[338,340,345],{"type":48,"value":339},"Build one valid SDK request from the current API docs and, when needed, MCP ",{"type":42,"tag":114,"props":341,"children":343},{"className":342},[],[344],{"type":48,"value":294},{"type":48,"value":346}," constraints.",{"type":42,"tag":98,"props":348,"children":349},{},[350,352,358,360,366,368,374],{"type":48,"value":351},"Chain the wait helper directly from the create call: ",{"type":42,"tag":114,"props":353,"children":355},{"className":354},[],[356],{"type":48,"value":357},"await client.\u003Coperation>.create({...}).waitForTaskOutput()",{"type":48,"value":359}," in Node or ",{"type":42,"tag":114,"props":361,"children":363},{"className":362},[],[364],{"type":48,"value":365},"client.\u003Coperation>.create(...).wait_for_task_output()",{"type":48,"value":367}," in Python. Do not await ",{"type":42,"tag":114,"props":369,"children":371},{"className":370},[],[372],{"type":48,"value":373},"create()",{"type":48,"value":375}," before calling the helper.",{"type":42,"tag":98,"props":377,"children":378},{},[379,381,387],{"type":48,"value":380},"Catch the SDK's ",{"type":42,"tag":114,"props":382,"children":384},{"className":383},[],[385],{"type":48,"value":386},"TaskFailedError",{"type":48,"value":388}," and surface its task details. Submit once; do not add a manual polling loop or auto-resubmit.",{"type":42,"tag":98,"props":390,"children":391},{},[392,394,400],{"type":48,"value":393},"Use MCP ",{"type":42,"tag":114,"props":395,"children":397},{"className":396},[],[398],{"type":48,"value":399},"get_task",{"type":48,"value":401}," only to inspect or debug an existing task outside the application's SDK flow.",{"type":42,"tag":98,"props":403,"children":404},{},[405],{"type":48,"value":406},"Wire successful output into the application's intended UI or consumer. Persist outputs if the app needs them after signed URLs expire (~24–48h).",{"type":42,"tag":82,"props":408,"children":410},{"id":409},"terminology",[411],{"type":48,"value":412},"Terminology",{"type":42,"tag":414,"props":415,"children":416},"table",{},[417,436],{"type":42,"tag":418,"props":419,"children":420},"thead",{},[421],{"type":42,"tag":422,"props":423,"children":424},"tr",{},[425,431],{"type":42,"tag":426,"props":427,"children":428},"th",{},[429],{"type":48,"value":430},"UI \u002F quickstart",{"type":42,"tag":426,"props":432,"children":433},{},[434],{"type":48,"value":435},"MCP \u002F API",{"type":42,"tag":437,"props":438,"children":439},"tbody",{},[440,470,483,503],{"type":42,"tag":422,"props":441,"children":442},{},[443,449],{"type":42,"tag":444,"props":445,"children":446},"td",{},[447],{"type":48,"value":448},"Characters",{"type":42,"tag":444,"props":450,"children":451},{},[452,454,460,462,468],{"type":48,"value":453},"avatars (",{"type":42,"tag":114,"props":455,"children":457},{"className":456},[],[458],{"type":48,"value":459},"list_avatars",{"type":48,"value":461},", ",{"type":42,"tag":114,"props":463,"children":465},{"className":464},[],[466],{"type":48,"value":467},"get_avatar",{"type":48,"value":469},")",{"type":42,"tag":422,"props":471,"children":472},{},[473,478],{"type":42,"tag":444,"props":474,"children":475},{},[476],{"type":48,"value":477},"Character ID",{"type":42,"tag":444,"props":479,"children":480},{},[481],{"type":48,"value":482},"avatar UUID",{"type":42,"tag":422,"props":484,"children":485},{},[486,491],{"type":42,"tag":444,"props":487,"children":488},{},[489],{"type":48,"value":490},"Model Router config ID",{"type":42,"tag":444,"props":492,"children":493},{},[494,496,502],{"type":48,"value":495},"immutable slug (",{"type":42,"tag":114,"props":497,"children":499},{"className":498},[],[500],{"type":48,"value":501},"configId",{"type":48,"value":469},{"type":42,"tag":422,"props":504,"children":505},{},[506,511],{"type":42,"tag":444,"props":507,"children":508},{},[509],{"type":48,"value":510},"live Session",{"type":42,"tag":444,"props":512,"children":513},{},[514],{"type":42,"tag":114,"props":515,"children":517},{"className":516},[],[518],{"type":48,"value":519},"POST \u002Fv1\u002Frealtime_sessions",{"type":42,"tag":82,"props":521,"children":523},{"id":522},"errors",[524],{"type":48,"value":525},"Errors",{"type":42,"tag":94,"props":527,"children":528},{},[529,534,539,544,555],{"type":42,"tag":98,"props":530,"children":531},{},[532],{"type":48,"value":533},"Validation error → show message, fix field from MCP constraints or docs, retry once.",{"type":42,"tag":98,"props":535,"children":536},{},[537],{"type":48,"value":538},"Auth\u002Fpermission → stop; ask user to authenticate or pick accessible project.",{"type":42,"tag":98,"props":540,"children":541},{},[542],{"type":48,"value":543},"Rate limit → honor retry interval.",{"type":42,"tag":98,"props":545,"children":546},{},[547,553],{"type":42,"tag":114,"props":548,"children":550},{"className":549},[],[551],{"type":48,"value":552},"FAILED",{"type":48,"value":554}," task → report failure details; do not auto-resubmit.",{"type":42,"tag":98,"props":556,"children":557},{},[558],{"type":48,"value":559},"Missing MCP tool → continue account-independent implementation; stop only when live account state or management is required.",{"type":42,"tag":82,"props":561,"children":563},{"id":562},"surface-skills",[564],{"type":48,"value":565},"Surface skills",{"type":42,"tag":414,"props":567,"children":568},{},[569,585],{"type":42,"tag":418,"props":570,"children":571},{},[572],{"type":42,"tag":422,"props":573,"children":574},{},[575,580],{"type":42,"tag":426,"props":576,"children":577},{},[578],{"type":48,"value":579},"Skill",{"type":42,"tag":426,"props":581,"children":582},{},[583],{"type":48,"value":584},"When",{"type":42,"tag":437,"props":586,"children":587},{},[588,605,622,639,656],{"type":42,"tag":422,"props":589,"children":590},{},[591,600],{"type":42,"tag":444,"props":592,"children":593},{},[594],{"type":42,"tag":114,"props":595,"children":597},{"className":596},[],[598],{"type":48,"value":599},"+runway-dev-models",{"type":42,"tag":444,"props":601,"children":602},{},[603],{"type":48,"value":604},"Model generation integration",{"type":42,"tag":422,"props":606,"children":607},{},[608,617],{"type":42,"tag":444,"props":609,"children":610},{},[611],{"type":42,"tag":114,"props":612,"children":614},{"className":613},[],[615],{"type":48,"value":616},"+runway-dev-model-routers",{"type":42,"tag":444,"props":618,"children":619},{},[620],{"type":48,"value":621},"Model Router setup and routed calls",{"type":42,"tag":422,"props":623,"children":624},{},[625,634],{"type":42,"tag":444,"props":626,"children":627},{},[628],{"type":42,"tag":114,"props":629,"children":631},{"className":630},[],[632],{"type":48,"value":633},"+runway-dev-characters",{"type":42,"tag":444,"props":635,"children":636},{},[637],{"type":48,"value":638},"Characters \u002F realtime sessions",{"type":42,"tag":422,"props":640,"children":641},{},[642,651],{"type":42,"tag":444,"props":643,"children":644},{},[645],{"type":42,"tag":114,"props":646,"children":648},{"className":647},[],[649],{"type":48,"value":650},"+runway-dev-recipes",{"type":42,"tag":444,"props":652,"children":653},{},[654],{"type":48,"value":655},"Recipe pipelines",{"type":42,"tag":422,"props":657,"children":658},{},[659,668],{"type":42,"tag":444,"props":660,"children":661},{},[662],{"type":42,"tag":114,"props":663,"children":665},{"className":664},[],[666],{"type":48,"value":667},"+runway-dev-workflows",{"type":42,"tag":444,"props":669,"children":670},{},[671],{"type":48,"value":672},"Runway app workflows → API endpoints",{"type":42,"tag":51,"props":674,"children":675},{},[676,678,684],{"type":48,"value":677},"Use ",{"type":42,"tag":114,"props":679,"children":681},{"className":680},[],[682],{"type":48,"value":683},"+runway-dev",{"type":48,"value":685}," with the relevant surface skill or skills when both are installed. Surface skills repeat their minimum setup so they remain useful when installed alone. Usually one surface matches the user's goal; load more when the task crosses surfaces.",{"items":687,"total":842},[688,695,710,721,734,747,759,773,790,803,816,828],{"slug":4,"name":4,"fn":5,"description":6,"org":689,"tags":690,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[691,692,693,694],{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"slug":696,"name":696,"fn":697,"description":698,"org":699,"tags":700,"stars":24,"repoUrl":25,"updatedAt":709},"runway-dev-characters","integrate Runway Characters into applications","Build, modify, debug, or verify Runway Characters integrations: inspect preset or custom avatars with MCP, manage live Sessions via SDK, and connect the application UI. Use with +runway-dev. UI says Characters; MCP\u002FAPI use avatars. Not for avatar video generation endpoints.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[701,704,705,706],{"name":702,"slug":703,"type":16},"Agents","agents",{"name":19,"slug":20,"type":16},{"name":9,"slug":8,"type":16},{"name":707,"slug":708,"type":16},"SDK","sdk","2026-09-01T08:30:22.724931",{"slug":711,"name":711,"fn":712,"description":713,"org":714,"tags":715,"stars":24,"repoUrl":25,"updatedAt":720},"runway-dev-model-routers","integrate and debug Runway Model Routers","Build, modify, debug, or verify Runway Model Routers: inspect live config and eligible models via MCP, manage approved settings, integrate routed SDK calls, and inspect routing results. Use with +runway-dev. Not for direct per-model endpoints or agent REST CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[716,717,718,719],{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},"2026-09-01T08:30:23.12408",{"slug":722,"name":722,"fn":723,"description":724,"org":725,"tags":726,"stars":24,"repoUrl":25,"updatedAt":733},"runway-dev-models","implement Runway model generation in applications","Build, modify, debug, or verify Runway model generation in an application: discover accessible models and constraints with MCP, implement SDK calls, and wire inputs and outputs into the product UI. Use with +runway-dev. Not for Model Routers, Characters, recipes, or agent-side generate scripts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[727,728,731,732],{"name":19,"slug":20,"type":16},{"name":729,"slug":730,"type":16},"Generative Art","generative-art",{"name":9,"slug":8,"type":16},{"name":707,"slug":708,"type":16},"2026-09-01T08:30:21.949847",{"slug":735,"name":735,"fn":736,"description":737,"org":738,"tags":739,"stars":24,"repoUrl":25,"updatedAt":746},"runway-dev-recipes","integrate Runway recipes into applications","Choose, build, modify, debug, or verify Runway recipe integrations: match a recipe to the user's use case, follow its current contract, implement SDK client.recipes calls, and wire results into the application. Use with +runway-dev. Not for direct model endpoints or Model Routers.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[740,741,744,745],{"name":19,"slug":20,"type":16},{"name":742,"slug":743,"type":16},"Automation","automation",{"name":9,"slug":8,"type":16},{"name":707,"slug":708,"type":16},"2026-09-01T08:30:38.431923",{"slug":748,"name":748,"fn":749,"description":750,"org":751,"tags":752,"stars":24,"repoUrl":25,"updatedAt":758},"runway-dev-workflows","expose Runway workflows as API endpoints","Build, modify, debug, or verify integrations that expose Runway app workflows as API endpoints. Use get_workflows_setup_guide for current setup and API guidance. Use with +runway-dev. Not for model generation, routers, or Characters sessions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[753,754,755],{"name":19,"slug":20,"type":16},{"name":9,"slug":8,"type":16},{"name":756,"slug":757,"type":16},"Workflow Automation","workflow-automation","2026-09-01T08:30:41.242146",{"slug":760,"name":760,"fn":761,"description":762,"org":763,"tags":764,"stars":24,"repoUrl":25,"updatedAt":772},"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},[765,768,771],{"name":766,"slug":767,"type":16},"Operations","operations",{"name":769,"slug":770,"type":16},"Reporting","reporting",{"name":9,"slug":8,"type":16},"2026-09-01T07:59:12.947491",{"slug":774,"name":774,"fn":775,"description":776,"org":777,"tags":778,"stars":24,"repoUrl":25,"updatedAt":789},"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},[779,782,785,788],{"name":780,"slug":781,"type":16},"AI Infrastructure","ai-infrastructure",{"name":783,"slug":784,"type":16},"Audio","audio",{"name":786,"slug":787,"type":16},"Creative","creative",{"name":9,"slug":8,"type":16},"2026-04-17T04:51:59.892185",{"slug":791,"name":791,"fn":792,"description":793,"org":794,"tags":795,"stars":24,"repoUrl":25,"updatedAt":802},"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},[796,797,798,801],{"name":780,"slug":781,"type":16},{"name":786,"slug":787,"type":16},{"name":799,"slug":800,"type":16},"Image Generation","image-generation",{"name":9,"slug":8,"type":16},"2026-04-17T04:52:01.158325",{"slug":804,"name":804,"fn":805,"description":806,"org":807,"tags":808,"stars":24,"repoUrl":25,"updatedAt":815},"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},[809,810,811,812],{"name":780,"slug":781,"type":16},{"name":786,"slug":787,"type":16},{"name":9,"slug":8,"type":16},{"name":813,"slug":814,"type":16},"Video","video","2026-04-17T04:51:58.600919",{"slug":817,"name":817,"fn":818,"description":819,"org":820,"tags":821,"stars":24,"repoUrl":25,"updatedAt":827},"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},[822,823,824,825,826],{"name":19,"slug":20,"type":16},{"name":742,"slug":743,"type":16},{"name":786,"slug":787,"type":16},{"name":9,"slug":8,"type":16},{"name":813,"slug":814,"type":16},"2026-09-01T07:59:11.930214",{"slug":829,"name":829,"fn":830,"description":831,"org":832,"tags":833,"stars":839,"repoUrl":840,"updatedAt":841},"runway-studio-skills","generate media with Runway API","Use this skill when the user wants to generate videos, images, or audio using\nthe Runway API. Covers product ad videos, text-to-video, image-to-video,\nvideo-to-video, character performance, image generation, sound effects, TTS,\nspeech-to-speech, voice dubbing, and voice isolation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[834,835,836,837,838],{"name":780,"slug":781,"type":16},{"name":783,"slug":784,"type":16},{"name":786,"slug":787,"type":16},{"name":9,"slug":8,"type":16},{"name":813,"slug":814,"type":16},0,"https:\u002F\u002Fgithub.com\u002Frunwayml\u002Frunway-studio-skills","2026-04-22T04:49:53.114818",12,{"items":844,"total":892},[845,852,859,866,873,880,886],{"slug":4,"name":4,"fn":5,"description":6,"org":846,"tags":847,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[848,849,850,851],{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"slug":696,"name":696,"fn":697,"description":698,"org":853,"tags":854,"stars":24,"repoUrl":25,"updatedAt":709},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[855,856,857,858],{"name":702,"slug":703,"type":16},{"name":19,"slug":20,"type":16},{"name":9,"slug":8,"type":16},{"name":707,"slug":708,"type":16},{"slug":711,"name":711,"fn":712,"description":713,"org":860,"tags":861,"stars":24,"repoUrl":25,"updatedAt":720},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[862,863,864,865],{"name":19,"slug":20,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"slug":722,"name":722,"fn":723,"description":724,"org":867,"tags":868,"stars":24,"repoUrl":25,"updatedAt":733},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[869,870,871,872],{"name":19,"slug":20,"type":16},{"name":729,"slug":730,"type":16},{"name":9,"slug":8,"type":16},{"name":707,"slug":708,"type":16},{"slug":735,"name":735,"fn":736,"description":737,"org":874,"tags":875,"stars":24,"repoUrl":25,"updatedAt":746},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[876,877,878,879],{"name":19,"slug":20,"type":16},{"name":742,"slug":743,"type":16},{"name":9,"slug":8,"type":16},{"name":707,"slug":708,"type":16},{"slug":748,"name":748,"fn":749,"description":750,"org":881,"tags":882,"stars":24,"repoUrl":25,"updatedAt":758},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[883,884,885],{"name":19,"slug":20,"type":16},{"name":9,"slug":8,"type":16},{"name":756,"slug":757,"type":16},{"slug":760,"name":760,"fn":761,"description":762,"org":887,"tags":888,"stars":24,"repoUrl":25,"updatedAt":772},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[889,890,891],{"name":766,"slug":767,"type":16},{"name":769,"slug":770,"type":16},{"name":9,"slug":8,"type":16},11]