[{"data":1,"prerenderedAt":1023},["ShallowReactive",2],{"guide-\u002Fguides\u002Ffor-agents":3,"developer-code-34eaj7":1011,"developer-code-1tp71zs":1012,"developer-code-1gdh9rw":1013,"developer-code-7a8atz":1014,"developer-code-1svhdzf":1015,"developer-code-1gs3h2m":1016,"developer-code-1ex5t56":1017,"developer-code-9on7ab":1018,"developer-code-zvmysn":1019,"developer-code-2u142j":1020,"developer-code-c47igf":1021,"developer-code-1ue5dp2":1022},{"id":4,"title":5,"body":6,"description":1002,"extension":1003,"meta":1004,"navigation":1005,"path":1007,"seo":1008,"stem":1009,"__hash__":1010},"guides\u002Fguides\u002Ffor-agents.md","VisionStory API for AI Agents",{"type":7,"value":8,"toc":986},"minimark",[9,18,23,126,129,158,181,185,192,201,212,236,239,257,268,365,375,382,389,414,417,441,445,455,524,530,533,537,543,629,639,663,667,682,707,724,727,768,790,838,842,845,852,858,862,865,871,893,897,950,954,982],[10,11,12,13,17],"p",{},"AI agents can generate VisionStory videos, images, speech, avatars, and voices through MCP, the Python SDK, CLI, or machine-readable documentation. The focused Agent Skill covers the common talking-avatar workflow. Every channel uses the same REST API and ",[14,15,16],"code",{},"VISIONSTORY_API_KEY","; choose the integration that matches where your agent runs.",[19,20,22],"h2",{"id":21},"choose-an-ai-agent-integration","Choose an AI agent integration",[24,25,26,42],"table",{},[27,28,29],"thead",{},[30,31,32,36,39],"tr",{},[33,34,35],"th",{},"Channel",[33,37,38],{},"Install",[33,40,41],{},"Best when",[43,44,45,63,79,94,109],"tbody",{},[30,46,47,54,60],{},[48,49,50],"td",{},[51,52,53],"strong",{},"MCP server",[48,55,56,59],{},[14,57,58],{},"uvx visionstory-mcp"," — your client runs it, nothing to host",[48,61,62],{},"Claude Desktop, coding agents, and other local MCP clients",[30,64,65,70,76],{},[48,66,67],{},[51,68,69],{},"CLI",[48,71,72,75],{},[14,73,74],{},"curl -fsSL https:\u002F\u002Fdevelopers.visionstory.ai\u002Fcli | bash"," (latest release)",[48,77,78],{},"People and agents that want one persistent terminal command",[30,80,81,86,91],{},[48,82,83],{},[51,84,85],{},"Python SDK",[48,87,88],{},[14,89,90],{},"pip install visionstory",[48,92,93],{},"Agents that write and run Python",[30,95,96,101,106],{},[48,97,98],{},[51,99,100],{},"Agent Skill",[48,102,103],{},[14,104,105],{},"npx skills add visionstory-ai\u002Fskills --skill visionstory-api",[48,107,108],{},"Skill-compatible coding agents creating talking-avatar videos inside a repo",[30,110,111,120,123],{},[48,112,113],{},[51,114,115,116,119],{},"llms.txt + ",[14,117,118],{},".md"," pages",[48,121,122],{},"nothing — just fetch the URLs",[48,124,125],{},"Agents that browse the web and read docs on demand",[10,127,128],{},"Whichever channel you use, configure the key the same way — the agent reads it from an environment variable. If the variable is missing, the agent must explain how to set it locally and must never ask you to paste the key into chat:",[130,131,136],"pre",{"className":132,"code":133,"language":134,"meta":135,"style":135},"language-bash shiki shiki-themes github-light github-dark","export VISIONSTORY_API_KEY=\"sk-vs-xxxxxxxxxxxxxxxxxxx\"\n","bash","",[14,137,138],{"__ignoreMap":135},[139,140,143,147,151,154],"span",{"class":141,"line":142},"line",1,[139,144,146],{"class":145},"szBVR","export",[139,148,150],{"class":149},"sVt8B"," VISIONSTORY_API_KEY",[139,152,153],{"class":145},"=",[139,155,157],{"class":156},"sZZnC","\"sk-vs-xxxxxxxxxxxxxxxxxxx\"\n",[10,159,160,161,164,165,168,169,172,173,180],{},"Before asking an agent to submit a paid generation, run the read-only ",[14,162,163],{},"visionstory credits"," command or call the MCP ",[14,166,167],{},"get_credits"," tool. A ",[14,170,171],{},"401"," response means the local key is missing, expired, or invalid and must be replaced at ",[174,175,179],"a",{"href":176,"rel":177},"https:\u002F\u002Fwww.visionstory.ai\u002Fopenapi",[178],"nofollow","visionstory.ai\u002Fopenapi",".",[19,182,184],{"id":183},"connect-the-visionstory-mcp-server","Connect the VisionStory MCP server",[10,186,187,188,191],{},"For most users, the recommended local setup below is enough. Your MCP client starts VisionStory on demand and receives the same ",[51,189,190],{},"24 public operations"," available through the SDK and CLI.",[193,194,196,197,200],"h3",{"id":195},"recommended-setup-run-with-uvx","Recommended setup — Run with ",[14,198,199],{},"uvx"," 👍",[10,202,203,204,207,208,211],{},"Install ",[14,205,206],{},"uv"," once. Skip this command if ",[14,209,210],{},"uvx --version"," already works:",[130,213,215],{"className":132,"code":214,"language":134,"meta":135,"style":135},"curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n",[14,216,217],{"__ignoreMap":135},[139,218,219,223,227,230,233],{"class":141,"line":142},[139,220,222],{"class":221},"sScJk","curl",[139,224,226],{"class":225},"sj4cs"," -LsSf",[139,228,229],{"class":156}," https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh",[139,231,232],{"class":145}," |",[139,234,235],{"class":221}," sh\n",[10,237,238],{},"Confirm VisionStory MCP can start:",[130,240,242],{"className":132,"code":241,"language":134,"meta":135,"style":135},"uvx --refresh visionstory-mcp --check\n",[14,243,244],{"__ignoreMap":135},[139,245,246,248,251,254],{"class":141,"line":142},[139,247,199],{"class":221},[139,249,250],{"class":225}," --refresh",[139,252,253],{"class":156}," visionstory-mcp",[139,255,256],{"class":225}," --check\n",[10,258,259,260,263,264,267],{},"When it prints ",[14,261,262],{},"✓ VisionStory MCP started successfully",", add this configuration to your MCP client. In Claude Desktop, open ",[51,265,266],{},"Settings → Developer → Edit Config",":",[130,269,273],{"className":270,"code":271,"language":272,"meta":135,"style":135},"language-json shiki shiki-themes github-light github-dark","{\n  \"mcpServers\": {\n    \"visionstory\": {\n      \"command\": \"uvx\",\n      \"args\": [\"visionstory-mcp\"],\n      \"env\": { \"VISIONSTORY_API_KEY\": \"YOUR_LOCAL_VISIONSTORY_API_KEY\" }\n    }\n  }\n}\n","json",[14,274,275,280,289,297,312,327,347,353,359],{"__ignoreMap":135},[139,276,277],{"class":141,"line":142},[139,278,279],{"class":149},"{\n",[139,281,283,286],{"class":141,"line":282},2,[139,284,285],{"class":225},"  \"mcpServers\"",[139,287,288],{"class":149},": {\n",[139,290,292,295],{"class":141,"line":291},3,[139,293,294],{"class":225},"    \"visionstory\"",[139,296,288],{"class":149},[139,298,300,303,306,309],{"class":141,"line":299},4,[139,301,302],{"class":225},"      \"command\"",[139,304,305],{"class":149},": ",[139,307,308],{"class":156},"\"uvx\"",[139,310,311],{"class":149},",\n",[139,313,315,318,321,324],{"class":141,"line":314},5,[139,316,317],{"class":225},"      \"args\"",[139,319,320],{"class":149},": [",[139,322,323],{"class":156},"\"visionstory-mcp\"",[139,325,326],{"class":149},"],\n",[139,328,330,333,336,339,341,344],{"class":141,"line":329},6,[139,331,332],{"class":225},"      \"env\"",[139,334,335],{"class":149},": { ",[139,337,338],{"class":225},"\"VISIONSTORY_API_KEY\"",[139,340,305],{"class":149},[139,342,343],{"class":156},"\"YOUR_LOCAL_VISIONSTORY_API_KEY\"",[139,345,346],{"class":149}," }\n",[139,348,350],{"class":141,"line":349},7,[139,351,352],{"class":149},"    }\n",[139,354,356],{"class":141,"line":355},8,[139,357,358],{"class":149},"  }\n",[139,360,362],{"class":141,"line":361},9,[139,363,364],{"class":149},"}\n",[10,366,367,368,370,371,374],{},"Replace the API-key placeholder only in your local client configuration, then restart the client. Ask it to call ",[14,369,167],{}," and ",[14,372,373],{},"list_models","; the connection is ready when both succeed.",[193,376,378,379],{"id":377},"alternative-install-with-pip","Alternative — Install with ",[14,380,381],{},"pip",[10,383,384,385,388],{},"Use this only if you prefer a permanently installed ",[14,386,387],{},"visionstory-mcp"," command:",[130,390,392],{"className":132,"code":391,"language":134,"meta":135,"style":135},"python3 -m pip install --upgrade visionstory-mcp\n",[14,393,394],{"__ignoreMap":135},[139,395,396,399,402,405,408,411],{"class":141,"line":142},[139,397,398],{"class":221},"python3",[139,400,401],{"class":225}," -m",[139,403,404],{"class":156}," pip",[139,406,407],{"class":156}," install",[139,409,410],{"class":225}," --upgrade",[139,412,413],{"class":156}," visionstory-mcp\n",[10,415,416],{},"In the configuration above, replace the command and arguments with:",[130,418,420],{"className":270,"code":419,"language":272,"meta":135,"style":135},"\"command\": \"visionstory-mcp\",\n\"args\": []\n",[14,421,422,433],{"__ignoreMap":135},[139,423,424,427,429,431],{"class":141,"line":142},[139,425,426],{"class":156},"\"command\"",[139,428,305],{"class":149},[139,430,323],{"class":156},[139,432,311],{"class":149},[139,434,435,438],{"class":141,"line":282},[139,436,437],{"class":156},"\"args\"",[139,439,440],{"class":149},": []\n",[193,442,444],{"id":443},"advanced-connect-to-a-remote-mcp-endpoint","Advanced — Connect to a remote MCP endpoint",[10,446,447,448,450,451,454],{},"The local ",[14,449,58],{}," setup above remains the simplest option and continues to support files on your computer. Teams that want one centrally managed MCP service can additionally deploy the repository's stateless Streamable HTTP service and connect to its ",[14,452,453],{},"\u002Fmcp"," endpoint.",[130,456,458],{"className":270,"code":457,"language":272,"meta":135,"style":135},"{\n  \"mcpServers\": {\n    \"visionstory-remote\": {\n      \"url\": \"https:\u002F\u002FYOUR_MCP_HOST\u002Fmcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_LOCAL_VISIONSTORY_API_KEY\"\n      }\n    }\n  }\n}\n",[14,459,460,464,470,477,489,496,506,511,515,519],{"__ignoreMap":135},[139,461,462],{"class":141,"line":142},[139,463,279],{"class":149},[139,465,466,468],{"class":141,"line":282},[139,467,285],{"class":225},[139,469,288],{"class":149},[139,471,472,475],{"class":141,"line":291},[139,473,474],{"class":225},"    \"visionstory-remote\"",[139,476,288],{"class":149},[139,478,479,482,484,487],{"class":141,"line":299},[139,480,481],{"class":225},"      \"url\"",[139,483,305],{"class":149},[139,485,486],{"class":156},"\"https:\u002F\u002FYOUR_MCP_HOST\u002Fmcp\"",[139,488,311],{"class":149},[139,490,491,494],{"class":141,"line":314},[139,492,493],{"class":225},"      \"headers\"",[139,495,288],{"class":149},[139,497,498,501,503],{"class":141,"line":329},[139,499,500],{"class":225},"        \"Authorization\"",[139,502,305],{"class":149},[139,504,505],{"class":156},"\"Bearer YOUR_LOCAL_VISIONSTORY_API_KEY\"\n",[139,507,508],{"class":141,"line":349},[139,509,510],{"class":149},"      }\n",[139,512,513],{"class":141,"line":355},[139,514,352],{"class":149},[139,516,517],{"class":141,"line":361},[139,518,358],{"class":149},[139,520,522],{"class":141,"line":521},10,[139,523,364],{"class":149},[10,525,526,527,529],{},"This option is for teams operating a shared MCP service. Local files must be uploaded or available through HTTP(S); choose ",[14,528,199],{}," when the agent needs direct access to files on your computer.",[10,531,532],{},"For every setup, keep the API key local and never paste it into chat or commit it to Git. Generation tools wait for results by default, and deletion tools require explicit confirmation.",[19,534,536],{"id":535},"use-the-python-sdk-from-an-agent","Use the Python SDK from an agent",[10,538,539,540,542],{},"If your agent writes and runs code, ",[14,541,90],{}," gives it a typed, zero-dependency client:",[130,544,548],{"className":545,"code":546,"language":547,"meta":135,"style":135},"language-python shiki shiki-themes github-light github-dark","from visionstory import VisionStoryClient, build_video_payload\n\nclient = VisionStoryClient.from_env()   # reads VISIONSTORY_API_KEY\nvideo = client.generate_video(build_video_payload(\n    avatar_id=\"YOUR_AVATAR_ID\", text=\"Hello from VisionStory.\", voice_id=\"YOUR_VOICE_ID\"))\n","python",[14,549,550,564,570,584,594],{"__ignoreMap":135},[139,551,552,555,558,561],{"class":141,"line":142},[139,553,554],{"class":145},"from",[139,556,557],{"class":149}," visionstory ",[139,559,560],{"class":145},"import",[139,562,563],{"class":149}," VisionStoryClient, build_video_payload\n",[139,565,566],{"class":141,"line":282},[139,567,569],{"emptyLinePlaceholder":568},true,"\n",[139,571,572,575,577,580],{"class":141,"line":291},[139,573,574],{"class":149},"client ",[139,576,153],{"class":145},[139,578,579],{"class":149}," VisionStoryClient.from_env()   ",[139,581,583],{"class":582},"sJ8bj","# reads VISIONSTORY_API_KEY\n",[139,585,586,589,591],{"class":141,"line":299},[139,587,588],{"class":149},"video ",[139,590,153],{"class":145},[139,592,593],{"class":149}," client.generate_video(build_video_payload(\n",[139,595,596,600,602,605,608,611,613,616,618,621,623,626],{"class":141,"line":314},[139,597,599],{"class":598},"s4XuR","    avatar_id",[139,601,153],{"class":145},[139,603,604],{"class":156},"\"YOUR_AVATAR_ID\"",[139,606,607],{"class":149},", ",[139,609,610],{"class":598},"text",[139,612,153],{"class":145},[139,614,615],{"class":156},"\"Hello from VisionStory.\"",[139,617,607],{"class":149},[139,619,620],{"class":598},"voice_id",[139,622,153],{"class":145},[139,624,625],{"class":156},"\"YOUR_VOICE_ID\"",[139,627,628],{"class":149},"))\n",[10,630,631,632,370,635,638],{},"Select both IDs from ",[14,633,634],{},"client.list_avatars()",[14,636,637],{},"client.list_voices()"," immediately before building a request. Values shown in examples are placeholders, not guaranteed resources.",[10,640,641,642,645,646,649,650,654,655,658,659,662],{},"Prefer the terminal? ",[14,643,644],{},"pip install visionstory-cli"," gives a ",[14,647,648],{},"visionstory"," ",[174,651,653],{"href":652},"\u002Fguides\u002Fcli","command-line tool",", so an agent can run ",[14,656,657],{},"visionstory create-video ..."," without writing code. See the ",[174,660,85],{"href":661},"\u002Fguides\u002Fsdk"," guide for the full client.",[19,664,666],{"id":665},"install-the-visionstory-agent-skill","Install the VisionStory Agent Skill",[10,668,669,670,678,679,267],{},"For skill-compatible coding agents (Claude Code, Codex, …), install the skill straight from GitHub. The ",[174,671,674,677],{"href":672,"rel":673},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fskills",[178],[14,675,676],{},"skills"," CLI"," auto-detects your agent and drops the skill into ",[14,680,681],{},".agents\u002Fskills\u002F",[130,683,685],{"className":132,"code":684,"language":134,"meta":135,"style":135},"npx skills add visionstory-ai\u002Fskills --skill visionstory-api\n",[14,686,687],{"__ignoreMap":135},[139,688,689,692,695,698,701,704],{"class":141,"line":142},[139,690,691],{"class":221},"npx",[139,693,694],{"class":156}," skills",[139,696,697],{"class":156}," add",[139,699,700],{"class":156}," visionstory-ai\u002Fskills",[139,702,703],{"class":225}," --skill",[139,705,706],{"class":156}," visionstory-api\n",[10,708,709,710,713,714,717,718,723],{},"The installer may display Snyk warning ",[14,711,712],{},"W011"," because the text you ask the avatar to speak is sent to ",[14,715,716],{},"POST \u002Fapi\u002Fv1\u002Fvideo",". That network transfer is the purpose of the skill, not an undeclared dependency; review the generated security-audit link and the public ",[174,719,722],{"href":720,"rel":721},"https:\u002F\u002Fgithub.com\u002Fvisionstory-ai\u002Fskills",[178],"skill source"," before accepting it.",[10,725,726],{},"No Node? Clone the repo and copy the skill folder in yourself:",[130,728,730],{"className":132,"code":729,"language":134,"meta":135,"style":135},"git clone https:\u002F\u002Fgithub.com\u002Fvisionstory-ai\u002Fskills.git\nmkdir -p .agents\u002Fskills\ncp -r skills\u002Fvisionstory-api .agents\u002Fskills\u002F\n",[14,731,732,743,754],{"__ignoreMap":135},[139,733,734,737,740],{"class":141,"line":142},[139,735,736],{"class":221},"git",[139,738,739],{"class":156}," clone",[139,741,742],{"class":156}," https:\u002F\u002Fgithub.com\u002Fvisionstory-ai\u002Fskills.git\n",[139,744,745,748,751],{"class":141,"line":282},[139,746,747],{"class":221},"mkdir",[139,749,750],{"class":225}," -p",[139,752,753],{"class":156}," .agents\u002Fskills\n",[139,755,756,759,762,765],{"class":141,"line":291},[139,757,758],{"class":221},"cp",[139,760,761],{"class":225}," -r",[139,763,764],{"class":156}," skills\u002Fvisionstory-api",[139,766,767],{"class":156}," .agents\u002Fskills\u002F\n",[10,769,770,771,774,775,778,779,784,785,789],{},"The package contains ",[14,772,773],{},"SKILL.md"," (workflow instructions the agent follows) and ",[14,776,777],{},"scripts\u002Fvisionstory_api.py",", a zero-dependency Python helper for the talking-avatar workflow, including resource discovery, authentication, base64 encoding, polling, timeouts, and downloads. Use MCP, the standalone CLI, or the Python SDK when the agent needs all 24 public operations such as AI Video, image generation, text to speech, and assets. Skills-compatible agents pick it up automatically; you can also ",[174,780,783],{"href":781,"rel":782},"https:\u002F\u002Fopenapi.visionstory.ai\u002Fskills\u002Fvisionstory-api\u002FSKILL.md",[178],"view SKILL.md"," without downloading, or browse the source at ",[174,786,788],{"href":720,"rel":787},[178],"github.com\u002Fvisionstory-ai\u002Fskills",". The helper works standalone too:",[130,791,793],{"className":132,"code":792,"language":134,"meta":135,"style":135},"python3 .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py models\npython3 .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py create-video --avatar-id YOUR_AVATAR_ID --text \"Hello from VisionStory.\" --voice-id YOUR_VOICE_ID --output result.mp4\n",[14,794,795,805],{"__ignoreMap":135},[139,796,797,799,802],{"class":141,"line":142},[139,798,398],{"class":221},[139,800,801],{"class":156}," .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py",[139,803,804],{"class":156}," models\n",[139,806,807,809,811,814,817,820,823,826,829,832,835],{"class":141,"line":282},[139,808,398],{"class":221},[139,810,801],{"class":156},[139,812,813],{"class":156}," create-video",[139,815,816],{"class":225}," --avatar-id",[139,818,819],{"class":156}," YOUR_AVATAR_ID",[139,821,822],{"class":225}," --text",[139,824,825],{"class":156}," \"Hello from VisionStory.\"",[139,827,828],{"class":225}," --voice-id",[139,830,831],{"class":156}," YOUR_VOICE_ID",[139,833,834],{"class":225}," --output",[139,836,837],{"class":156}," result.mp4\n",[19,839,841],{"id":840},"give-agents-llmstxt-and-openapi","Give agents llms.txt and OpenAPI",[10,843,844],{},"Point any web-capable agent at the docs index; it links every guide in agent-readable form:",[130,846,850],{"className":847,"code":849,"language":610,"meta":135},[848],"language-text","Read https:\u002F\u002Fdevelopers.visionstory.ai\u002Fllms.txt for the VisionStory API docs index.\nAppend .md to any guide URL to get that guide as Markdown.\nLoad the one guide that matches the task, then use OpenAPI for exact fields.\nUse https:\u002F\u002Fdevelopers.visionstory.ai\u002Fllms-full.txt only when the task spans several capabilities.\nUse https:\u002F\u002Fdevelopers.visionstory.ai\u002Fopenapi.json for the complete machine-readable API contract.\n",[14,851,849],{"__ignoreMap":135},[10,853,854,855,857],{},"You can also hand a single ",[14,856,118],{}," guide URL or the OpenAPI JSON URL to an agent directly.",[19,859,861],{"id":860},"generate-a-video-with-one-agent-instruction","Generate a video with one agent instruction",[10,863,864],{},"With the Skill installed (or the MCP server connected), a single instruction produces a video:",[866,867,868],"blockquote",{},[10,869,870],{},"Create a talking-avatar video that says \"Welcome to our launch week!\", pick a friendly public avatar and an energetic voice, wait for it to finish, and save it as launch.mp4.",[10,872,873,874,876,877,880,881,884,885,888,889,180],{},"The agent will list avatars and voices, submit ",[14,875,716],{},", poll ",[14,878,879],{},"GET \u002Fapi\u002Fv1\u002Fvideo?video_id=..."," until ",[14,882,883],{},"created",", and download the ",[14,886,887],{},"video_url"," — the same flow as the ",[174,890,892],{"href":891},"\u002Fguides\u002Fquick-start","Quick start",[19,894,896],{"id":895},"security-and-reliability-rules-for-agents","Security and reliability rules for agents",[898,899,900,907,910,923,926,933,936,943],"ul",{},[901,902,903,904,906],"li",{},"Read the key from ",[14,905,16],{},"; never print, log, or commit it.",[901,908,909],{},"If the key is missing, explain how the user can set it locally; never ask them to paste it into chat.",[901,911,912,913,607,916,607,919,922],{},"Discover resources (",[14,914,915],{},"GET \u002Fapi\u002Fv1\u002Fmodels",[14,917,918],{},"\u002Fapi\u002Fv1\u002Favatars",[14,920,921],{},"\u002Fapi\u002Fv1\u002Fvoices",") instead of guessing IDs.",[901,924,925],{},"Treat every ID shown in documentation as a placeholder until it has been returned by a discovery or creation request.",[901,927,928,929,932],{},"Pass ",[14,930,931],{},"client_request_id"," when the create operation supports it so network retries cannot create a second charged task.",[901,934,935],{},"Poll no faster than every 5 seconds; stop after 10 minutes unless asked to keep waiting.",[901,937,938,939,942],{},"Handle the ",[14,940,941],{},"failed"," status explicitly and report the server's error message (with credentials redacted).",[901,944,945,946,949],{},"Never call a ",[14,947,948],{},"DELETE"," operation without an explicit user request and confirmation immediately before the call.",[19,951,953],{"id":952},"related-visionstory-developer-guides","Related VisionStory developer guides",[898,955,956,961,968,975],{},[901,957,958,960],{},[174,959,892],{"href":891}," — the underlying five-step flow.",[901,962,963,967],{},[174,964,966],{"href":965},"\u002Fguides\u002Fai-video","AI Video"," — text-to-video and image-to-video for agents with beta access.",[901,969,970,974],{},[174,971,973],{"href":972},"\u002Freference","API reference"," — every endpoint the channels are built on.",[901,976,977,981],{},[174,978,980],{"href":979},"\u002Fguides\u002Fchangelog","Changelog"," — documentation version, API changes, and deprecation status.",[983,984,985],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":135,"searchDepth":282,"depth":282,"links":987},[988,989,996,997,998,999,1000,1001],{"id":21,"depth":282,"text":22},{"id":183,"depth":282,"text":184,"children":990},[991,993,995],{"id":195,"depth":291,"text":992},"Recommended setup — Run with uvx 👍",{"id":377,"depth":291,"text":994},"Alternative — Install with pip",{"id":443,"depth":291,"text":444},{"id":535,"depth":282,"text":536},{"id":665,"depth":282,"text":666},{"id":840,"depth":282,"text":841},{"id":860,"depth":282,"text":861},{"id":895,"depth":282,"text":896},{"id":952,"depth":282,"text":953},"Connect AI agents to VisionStory with MCP, the Agent Skill, Python SDK, CLI, llms.txt, and OpenAPI for secure, automated media generation.","md",{},{"title":1006,"order":521},"For agents","\u002Fguides\u002Ffor-agents",{"title":5,"description":1002},"guides\u002Ffor-agents","Ubi8MfotuVBxsp_4SEIsJo37yeK2rs8Q7jRwNpgV638","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">export\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"sk-vs-xxxxxxxxxxxxxxxxxxx\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">npx\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> skills\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> add\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory-ai\u002Fskills\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --skill\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory-api\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>Read https:\u002F\u002Fdevelopers.visionstory.ai\u002Fllms.txt for the VisionStory API docs index.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Append .md to any guide URL to get that guide as Markdown.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Load the one guide that matches the task, then use OpenAPI for exact fields.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Use https:\u002F\u002Fdevelopers.visionstory.ai\u002Fllms-full.txt only when the task spans several capabilities.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Use https:\u002F\u002Fdevelopers.visionstory.ai\u002Fopenapi.json for the complete machine-readable API contract.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -LsSf\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> |\u003C\u002Fspan>\u003Cspan style=\"color:#FFA657\"> sh\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">uvx\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --refresh\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory-mcp\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --check\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"mcpServers\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"visionstory\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">      \"command\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"uvx\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">      \"args\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: [\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"visionstory-mcp\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">      \"env\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: { \u003C\u002Fspan>\u003Cspan style=\"color:#7EE787\">\"VISIONSTORY_API_KEY\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"YOUR_LOCAL_VISIONSTORY_API_KEY\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">    }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">python3\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -m\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> pip\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> install\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --upgrade\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> visionstory-mcp\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">\"command\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"visionstory-mcp\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#A5D6FF\">\"args\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: []\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"mcpServers\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"visionstory-remote\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">      \"url\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"https:\u002F\u002FYOUR_MCP_HOST\u002Fmcp\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">      \"headers\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"Authorization\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Bearer YOUR_LOCAL_VISIONSTORY_API_KEY\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">    }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">from\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> visionstory \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient, build_video_payload\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">client \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient.from_env()   \u003C\u002Fspan>\u003Cspan style=\"color:#8B949E\"># reads VISIONSTORY_API_KEY\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">video \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> client.generate_video(build_video_payload(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    avatar_id\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"YOUR_AVATAR_ID\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFA657\">text\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Hello from VisionStory.\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFA657\">voice_id\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"YOUR_VOICE_ID\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">git\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> clone\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> https:\u002F\u002Fgithub.com\u002Fvisionstory-ai\u002Fskills.git\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">mkdir\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -p\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> .agents\u002Fskills\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">cp\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -r\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> skills\u002Fvisionstory-api\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> .agents\u002Fskills\u002F\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">python3\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> models\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">python3\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> .agents\u002Fskills\u002Fvisionstory-api\u002Fscripts\u002Fvisionstory_api.py\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> create-video\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --avatar-id\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> YOUR_AVATAR_ID\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --text\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"Hello from VisionStory.\"\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --voice-id\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> YOUR_VOICE_ID\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> --output\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> result.mp4\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1788166855862]