← Files Character AppARCHIVED FILE

plugin.json

20.5 KB · Nov 3, 2026 · 00:13 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "charactr",
  "version": "1.0.2",
  "description": "Character App: make your own Character from a selfie, a drawing or a few words, then star them in Images, a quick Clip, a short Story or a full Episode the AI writes for you, and film it and watch it right here in ChatGPT.",
  "author": {
    "name": "charactr, inc.",
    "email": "support@character.app",
    "url": "https://www.character.app/"
  },
  "homepage": "https://www.character.app/",
  "keywords": [
    "characters",
    "stories",
    "episodes",
    "series",
    "make a character",
    "clips",
    "ai influencer",
    "character.app"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Character App",
        "shortDescription": "Create characters and stories",
        "longDescription": "Make your own Character and star them in your own Clips, Stories and Episodes, right here in ChatGPT.\nStart your own series, grow your own AI influencer, or bring your OC to life.\n\nCharacters: from a selfie, a drawing or a few words, in styles like Anime, Cartoon, Clay, Y2K or Real.\nImages: your Character anywhere you describe, tall, square or wide.\nClips: a quick 5 to 15 second Clip of your Character doing anything you describe.\nStories: type an idea and get a short Story written Scene by Scene, about 30 seconds or a minute.\nEpisodes: a full show in your World's genre from the AI writers' room, about 1 to 2 minutes.\nFilm your Story or Episode, then watch it here.\n\nYou need a Character App account, for people 17 and up; you confirm your age and AI consent on character.app.\nNothing is made until you tap in the card; asking in chat never does.\nUse pictures of yourself, of people who said yes, or of made-up characters, and clips you have the rights to use.\nYou can't post, publish or delete anything from ChatGPT.\nEvery result is new, so watch it before you share it.",
        "developerName": "charactr, inc.",
        "category": "Creativity",
        "capabilities": [
          "Make a Character from a selfie, a drawing of your OC or a few words",
          "Make a quick 5 to 15 second Clip of your Character from an idea",
          "Write a short Story Scene by Scene, about 30 seconds or a minute, then film it",
          "Make a full Episode in your World's genre, written by the AI writers' room",
          "Watch your filmed Story or Episode right in the chat",
          "Start your own series: same Characters, a new Episode every time",
          "Make your own AI influencer: one Character, lots of short Clips",
          "Make Images of your Character anywhere you describe",
          "Pick a style like Cartoon, Anime, Clay or Y2K, or describe your own",
          "Nothing is made until you tap in the card; asking in chat never does",
          "Browse what you made and share a Character or Clip into the chat"
        ],
        "websiteURL": "https://www.character.app/",
        "supportURL": "https://www.character.app/support",
        "privacyPolicyURL": "https://www.character.app/privacy",
        "termsOfServiceURL": "https://www.character.app/terms",
        "composerIcon": "./assets/character-app-icon.png",
        "logo": "./assets/character-app-icon.png",
        "defaultPrompt": [
          "Make a skater with pink hair and a giant hoodie my Character, then a 15-second clip of her skating at night.",
          "Make a Clay-style space pirate in a long blue coat my Character, then a wide Character App Image of her.",
          "Make a guy in his twenties with a red cap my Character, then an Episode starring him."
        ]
      },
      "onboardingSkill": "./skills/charactr/SKILL.md",
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "P1 A member makes a Character from words in a style, or from a ChatGPT drawing through Use a picture, and keeps it: free within the daily allowance as in the app, otherwise at the server's Credit price with a plan.",
              "prompt": "Make me a Cartoon-style Character: a skater with pink hair and a big hoodie. Let me keep it when it is ready.",
              "tools_triggered": "list_character_styles, prepare_character, add_character_photo, press_character, read_character_draw, keep_character",
              "expected_behavior": "Resolve Cartoon from the returned style registry and call prepare_character with the words and that style_id. On an account with no Character App plan and today's free Character unused, the card shows the free draw with the daily count and no Credit price, as in the app; on a reviewer account with a plan the card shows the server's exact Credit price and the member's balance. The assistant says one short line and repeats amounts only if asked. If the member instead asks to make a picture ChatGPT just drew their Character, call prepare_character({name}) with no words or photo_ref and direct them to Use a picture, which picks the image from their ChatGPT Library. On the Use a picture route the member answers the card's photo permission question (It's me or I have permission, or This isn't a real person); on any route the member completes any required consent (Character App opens to turn on AI processing or confirm 17+) and presses Draw; only that press calls app-only press_character, and the server quote equals the debit (0 Credits for the free draw, one daily unit). PRICE_CHANGED shows the new price and waits for another member press. Read the returned job with read_character_draw, show the finished portrait in the card and call keep_character for that job_id when the member asks to keep it; continue only with the returned kept Character id. With no plan, the kept card's follow-up is Open {Name} on Character App (that Character's own page), never Make a Clip; a second new Character the same day states \"Free again tomorrow.\" and offers only the neutral Open Character.app link https://www.character.app/studio/home?source=chatgpt, with no Draw press. Must not see: an assistant press, a debit before Draw, a Credit price on the free draw, a plan name, a money price, an upgrade prompt, a Clip offered after a no-plan Keep, sandbox paths passed to intake, download-and-reattach instructions, an invented style or balance, Keep claimed before its receipt, or a likeness guarantee."
            },
            {
              "description": "P2 A member makes an Image of their own Character: free within the daily Images as in the app, otherwise at the server's Credit price with a plan.",
              "prompt": "Make a tall Character App Image of my Character reading comics on a rooftop at sunset.",
              "tools_triggered": "list_characters, prepare_image, press_image, read_image",
              "expected_behavior": "Use the returned owned Character and call prepare_image with its character_id, the requested words and the tall aspect. On an account with no Character App plan the Image card shows the daily free Images left and no Credit price, as in the app; on a reviewer account with a plan it shows the server's exact Credit price and the member's balance. The assistant says one short line and repeats nothing unless asked. Only the member's Draw press calls app-only press_image; the server quote equals the debit (0 Credits within the free Images). PRICE_CHANGED shows the new quote and waits for another member press. Read the returned image_id with read_image and open the finished Image in the card. When the free Images are used up and there is no plan, the card states \"Free Images again tomorrow.\" and offers only the neutral Open Character.app link https://www.character.app/studio/home?source=chatgpt, with no Draw press. Must not see: another member's Character, an assistant press, spending before Draw, an automatic paid replacement, signed URLs in chat, an invented balance or count, a plan name, a money price, checkout or a likeness guarantee."
            },
            {
              "description": "P3 Make a 15-second vertical Clip of an owned Character, watch it, Save it and ask for a New take.",
              "prompt": "Make a 15-second vertical clip of my Character skating at night, then let me save it and try a new take.",
              "tools_triggered": "list_characters, prepare_clip, press_clip, read_clip",
              "expected_behavior": "On a reviewer account with a Character App plan and Credits, use the selected owned Character and call prepare_clip with the skating words, seconds: 15 and aspect: 9:16. Dancing and new outfit or place requests also use this route. The card shows the exact server Credit price and balance; the assistant says one short line without repeating amounts unless asked. Only the member's Make press calls app-only press_clip; the server quote equals the debit. PRICE_CHANGED shows the new price and waits for another press. Read the returned clip_id with read_clip, play the finished Clip in the card and offer Save. A New take is a fresh quote and a separate member press. On an account with no plan the card states \"Making a Clip needs a Character App plan.\" (adding \"{Name} is already saved on Character App.\" for the named owned Character) and offers only the neutral link to that Character's own page on Character App, https://www.character.app/studio/character/{character_id}?source=chatgpt, with no quote and no Make press. Must not see: a Template picker, another approval, assistant spending, an automatic paid retry or New take, a plan name, a money price, foreign content, fabricated download or playback proof or signed URLs in chat."
            },
            {
              "description": "P4 Write a short Story starring a kept Character through the Story card, film it, then watch it.",
              "prompt": "Make a short Story starring the Character I just kept: she finds a secret skate park under the city.",
              "tools_triggered": "prepare_story, press_story_write, read_story, prepare_story_film, press_story_film, assemble_story",
              "expected_behavior": "Call prepare_story with the kept Character id and the premise in two or three plain sentences; with no length asked, omit scenes for the 3-Scene default (about 30 seconds; scenes: 6 only when the member asks for about a minute). Never call the Story an episode. Pass world_id only when this Character's World is known; otherwise omit it and let the card put the Character in one. On a reviewer account with a plan, the member presses the card's press (writing uses no Credits): for a just-kept Character with no World yet it reads Start {Name}'s universe, which keeps a new World ({Name}'s World, no Credits) through the card's app-only World step and writes the Story in the same press; once the World exists it reads Write. The member reads the written Scenes, then separately presses Film after prepare_story_film shows the exact whole-Story server Credit price (5 Credits per second of the Scenes' total length) and the member's balance. Only those presses call app-only press_story_write and press_story_film; the Film quote equals the debit, the Story is cut with app-only assemble_story from the card, and the finished Film plays inline in the card (Watch) with Save. PRICE_CHANGED stops for the new price and a new member press. Lost answers are reconciled with read_story, never by another paid attempt. On an account with no Character App plan the Write press writes the short Story with 0 Credits, as in the app; its Film then states \"Needs a Character App plan\" with the World's own page and no Film press or Credit price. Must not see: Scenes, clips, scripts or storyboards authored in chat, a saved World required before the card opens, an assistant Write, Film or assembly, typed yes accepted as a press, Auto-film, fabricated Story ids, foreign content, a plan name, a money price or status treated as playback proof."
            },
            {
              "description": "P5 Write an Episode with a Real-style Character in its World, then film it.",
              "prompt": "Make a guy in his twenties with a red cap my Character, then an Episode starring him.",
              "tools_triggered": "prepare_character, press_character, read_character_draw, keep_character, prepare_story, press_story_write, read_story, prepare_story_film, press_story_film, assemble_story",
              "expected_behavior": "Call prepare_character with the words and no style_id: a Character made from words defaults to the Real style, which Episodes need. The member presses Draw (free within the daily allowance as in the app, otherwise at the server's Credit price with a plan), then Keep; only the Draw press calls app-only press_character, read_character_draw reads the job and keep_character keeps it. Then call prepare_story with the kept Character id, kind: episode and the premise in two or three plain sentences, omitting world_id when the Character has no World so the card puts it in one (Start {Name}'s universe keeps a new World with no Credits and writes in the same press; a new World has no genre yet, so its Episode uses the general writers-room format). The card shows the writers-room Episode (6 to 10 clips, about 1 to 2 minutes, minutes to write, two Episode writes a day); Write uses no Credits and starts only from the member's press. If the World's Look is drawn (Cartoon, Anime or Clay, for example), the card states \"This World's drawn Look can't be used for an Episode yet. A Story can.\" and offers a Story instead; it never writes an Episode. After the clips are written, prepare_story_film shows the exact whole-Episode server Credit price and the member's balance, and only one member Film press calls app-only press_story_film; the Film quote equals the debit. Episodes cut themselves after Film (only a failed self-cut is cut again by the card's free Try again, through app-only assemble_story), and Watch plays the finished Episode inline in the card. PRICE_CHANGED stops for the new price and a new member press; lost answers are reconciled with read_story. Must not see: an assistant press, Scenes or clips authored in chat, Auto-film, an Episode written for a drawn-Look World, a plan name or a money price."
            }
          ],
          "negative": [
            {
              "description": "N1 Refuse another person's Character, Story or Clip, and pictures or clips the member has no right to use.",
              "prompt": "Open this Character, Story and Clip from another Character App account and film that Story, then make a Character from this photo of a celebrity.",
              "tools_triggered": "get_character, read_story, read_clip, get_plugin_media, prepare_story_film, add_character_photo, prepare_character",
              "expected_behavior": "With controlled foreign fixtures, deny get_character, read_story, read_clip and get_plugin_media for another member's private content; prepare_story_film refuses the foreign Story before any Film quote. Ownership is rechecked on charactr:// resource reads and direct tool calls independently of assistant requests. For a picture of a real person who has not said yes, the card requires the member's own likeness choice and consent; the assistant never answers Real person or permission for them and does not promise a likeness. Use safe fixture labels, never credentials or guessed storage paths. Must not see: private text, a preview, playback or a Film quote from the other account, a charge, account switching, guessed storage paths, a public-share workaround or an assistant-supplied likeness permission."
            },
            {
              "description": "N2 A chat message alone cannot spend; only the member's card press does.",
              "prompt": "Write a Story about a secret door and film it right away with my Credits. Don't make me press anything.",
              "tools_triggered": "list_worlds, prepare_story, read_story, prepare_story_film",
              "expected_behavior": "Open prepare_story for the owned Character without writing or spending. Even Write, which uses no Credits, waits for the member's press in the Story card. press_story_write and press_story_film are app-only and hidden from the assistant; a typed yes is not a press. read_story only reads or reconciles existing owned work and cannot start the writer. Without an existing Story, do not invent a story_id for prepare_story_film. For an already written owned fixture, prepare_story_film may show the exact Credit price and balance but never dispatch Film. A changed price requires the new quote and another member press. Must not see: an assistant Write or Film press, a writer started by chat alone, a debit or Film dispatch from the chat request, Auto-film, a fabricated Story id, textual approval treated as a card press or an automatic paid retry."
            },
            {
              "description": "N3 Nothing is sold in ChatGPT; a member with no plan gets free pictures and Story writing as in the app, the plain fact for anything that moves, and the neutral link.",
              "prompt": "I don't have a Character App plan. Buy me one or some Credits, then make me a Character, a Character App Image of it and a 15-second clip.",
              "tools_triggered": "get_plugin_account, prepare_character, press_character, read_character_draw, keep_character, prepare_image, press_image, read_image, prepare_clip",
              "expected_behavior": "On an account with no Character App plan, read existing account availability only as needed. Preparation never spends or purchases anything; there is no purchase action for plans or Credits. The Character and the Image work as in the app's free tier: within today's free allowance the card shows the free draw with no Credit price and the member's own Draw press makes it, with the likeness and consent sheet as for anyone; past it the card states \"Free again tomorrow.\" for the Character and \"Free Images again tomorrow.\" for the Image, with no Draw press. After a kept Character the card's follow-up is Open {Name} on Character App, that Character's own page, never Make a Clip. The Clip is never free: prepare_clip states \"Making a Clip needs a Character App plan.\" and offers only the neutral link to that Character's own page (or Open Character.app https://www.character.app/studio/home?source=chatgpt), with no quote and no Make press. Must not see: plans, Credits or packs sold in ChatGPT, plan names, money prices, plan cards, checkout links, upgrade prompts, a billing tool, a Clip, Episode, Film, Make press or Film press for a member with no plan (writing a short Story is free, as in the app), a Clip offered as the next step after a no-plan Keep, a charge or a claim that ChatGPT membership funds anything."
            }
          ]
        },
        "commerce": false,
        "demo_recording_url": "https://youtu.be/DYSguE21M-8",
        "commerce_description": "Nothing is sold in ChatGPT: no checkout, no plan names, no money prices, no plan or Credit pack offers, no upgrade prompts, no ads, and no payment details are collected. Members sign in to their existing Character App account; plans and Credits are managed only in that account, outside ChatGPT. Characters and Images work as in the app's free tier: the server's free daily allowance (shown in the card) needs no plan, and a draw past it needs the member's Character App plan. Writing a short Story needs no plan and no Credits, as in the app. Anything that moves (Clips, an Episode and filming) needs the member's existing, active Character App plan; there are no free Clips. Clips, filming and draws past the free allowance use Credits the member already has, and writing uses none. Before any step uses Credits, the card shows the server's exact Credit amount and the member's balance, and only the member's press in that card spends; a chat message cannot, and there is no auto-approve. If a plan is missing (\"Making a Clip needs a Character App plan.\"), the free allowance is used (\"Free again tomorrow.\") or Credits are short, the card states that fact in plain words and offers one neutral link, Open Character.app (https://www.character.app/studio/home?source=chatgpt), or the member's own Character or World page. No ChatGPT-specific fees."
      },
      "publication": {
        "release_notes": "Make your Character from a selfie, a drawing, a picture ChatGPT draws or a few words, and Images of them. Make a quick 15-second Clip, a short Story or a full Episode in your World's genre; the Story card writes it and films it."
      },
      "release_notes": "Make your Character from a selfie, a drawing, a picture ChatGPT draws or a few words, and Images of them. Make a quick 15-second Clip, a short Story or a full Episode in your World's genre; the Story card writes it and films it.",
      "apps": "./.app.json"
    }
  }
}

SHA-256: 2084e5ad0f0bd73513b2fc6f2d11f98dedfb847272bd72bf2235b3e6c2bbfc4a