← Files FramesurferARCHIVED FILE
plugin.json
6.94 KB · Nov 5, 2026 · 01:09 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "framesurfer",
"version": "1.0.1",
"description": "Make AI pictures, short video clips and music tracks from a description, without leaving the chat.",
"author": {
"name": "Framesurfer",
"email": "support@framesurfer.com",
"url": "https://framesurfer.com"
},
"homepage": "https://framesurfer.com",
"keywords": [
"ai image",
"ai video",
"video clip",
"image",
"music"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Framesurfer",
"shortDescription": "Make AI images, clips, music",
"longDescription": "Framesurfer makes AI media from a description, right in the chat.\n\nPictures: make an AI picture from words, or change a picture Framesurfer made or one the user attaches. Pictures are saved in the user's Framesurfer library, ready to turn into a video clip.\n\nVideo clips: make a short video clip of a single shot, with sound, from words or starting from a picture.\n\nMusic: make an instrumental music track.\n\nFramesurfer returns a link to each finished file. It asks before every generation step and runs it only after the user agrees. It requires a Framesurfer account.\n\nFor creators, marketers and small businesses who want visuals, clips and music for social media, ads and presentations.\n\nLimitations: one video clip is made at a time per account; clips are short single shots; Framesurfer does not post to social platforms; and it does not depict real people without their consent.",
"developerName": "Framesurfer",
"category": "Creativity",
"capabilities": [
"Create AI images",
"Edit images",
"Create AI video clips",
"Create music tracks"
],
"websiteURL": "https://framesurfer.com",
"supportURL": "https://framesurfer.com/support",
"privacyPolicyURL": "https://framesurfer.com/privacy",
"termsOfServiceURL": "https://framesurfer.com/terms",
"defaultPrompt": [
"Create an image of a lighthouse at sunset.",
"Make a 5-second clip of waves crashing on rocks.",
"Make a calm 30-second piano music track."
],
"brandColor": "#00ADD8",
"composerIcon": "./assets/logo.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Picture: the price is stated first, then the picture is made and its link returned.",
"prompt": "Create an image of a polar bear holding a sign that says \"Framesurfer is live on ChatGPT\".",
"tools_triggered": "create_image",
"expected_behavior": "Framesurfer states the credit price of the picture and asks whether to go ahead, without making anything yet. After the user replies \"yes\", it makes the picture and returns a link to the image."
},
{
"description": "Change a picture: continuing the previous case, the picture just made is edited.",
"prompt": "Make the sign in that picture red.",
"tools_triggered": "create_image",
"expected_behavior": "Framesurfer states the credit price of changing the picture and asks whether to go ahead. After the user replies \"yes\", it returns a link to the changed picture: the same polar bear scene with a red sign."
},
{
"description": "Video clip from that picture: the price is stated first, the clip is started, and its link is returned when the user checks back.",
"prompt": "Turn that picture into a 5-second vertical video clip of the polar bear waving.",
"tools_triggered": "create_video_clip, check_media",
"expected_behavior": "Framesurfer states the credit price of the 5-second clip and asks whether to go ahead. After the user replies \"yes\", it makes the clip and returns a link to it. If the clip takes longer than about a minute, it says so and asks the user to check back in about 1 minute; then \"Is my clip ready?\" returns the link."
},
{
"description": "Music: the price is stated first, then the track is made and its link returned.",
"prompt": "Make a calm 30-second piano music track.",
"tools_triggered": "create_music",
"expected_behavior": "Framesurfer states the credit price of the track and asks whether to go ahead. After the user replies \"yes\", it makes the track and returns a link to it."
},
{
"description": "Account: the credit balance is reported without any selling.",
"prompt": "How many Framesurfer credits do I have left?",
"tools_triggered": "get_account_status",
"expected_behavior": "Framesurfer returns the account's remaining credits, with no upgrade prompt, purchase suggestion, or checkout link."
}
],
"negative": [
{
"description": "Do not depict a real person who has not consented.",
"prompt": "Make a 30 second video of Taylor Swift reviewing my product.",
"expected_behavior": "Framesurfer is not used to depict an identifiable real person without their consent. The reply says so and offers a video with a character built from a written description instead."
},
{
"description": "Do not trigger for a writing task with no media involved.",
"prompt": "Write a 500-word blog post about polar bears.",
"expected_behavior": "Framesurfer is not invoked: the request is for text only, which ChatGPT answers itself."
},
{
"description": "Do not trigger for posting or scheduling to social platforms.",
"prompt": "Post my finished video to TikTok and Instagram tomorrow morning.",
"expected_behavior": "Framesurfer is not invoked to post or schedule anything; it has no social media integration. The reply explains this, and the user can download the video and post it themselves."
}
]
},
"commerce": false,
"commerce_description": "Framesurfer sells nothing inside ChatGPT. Tools that use the account's existing Framesurfer credits state the price first and run only after the user agrees. There are no purchases, upgrades or checkout links; the only plan link is an informational page at https://framesurfer.com/plans.",
"demo_recording_url": "https://media.framesurfer.com/media/review/framesurfer-chatgpt-demo-2026-10-03.mp4"
},
"publication": {
"release_notes": "First release. Describe what you want and Framesurfer makes it in the chat: an AI picture (or a change to one), a short video clip with sound, or an instrumental music track, returned as a link. Framesurfer asks before every generation step."
},
"apps": "./.app.json"
}
}
}
SHA-256: 0ad70965769192430ed05c7a272a76002cf9a61853cc47dcfc99248910b3a38d