/ AI Companions / Create an AI Girlfriend, and Who Owns the File

Create an AI Girlfriend, and Who Owns the File

What you actually fill in when you create an AI girlfriend, the one platform that documents its fields, and the open format that makes a character portable.

Create an AI Girlfriend, and Who Owns the File

When you create an AI girlfriend, what you are making is a few hundred words of text that get pasted in front of every message you ever send. That's it. That's the product.

Direct answer, then the detail. Creating a companion means filling in a small set of text fields that become part of the model's prompt, and the fields matter far more than the app does. Exactly one company in this category publishes what its fields are and how to write them, which is Kindroid, and its documentation names nine separate surfaces plus a numeric setting with a default of 0.95. Nobody else documents anything comparable. And there's an open, published character format that does the same job in a file you keep, defining six mandatory fields in version one and nine more in version two, embedded inside an ordinary PNG. Every hosted platform keeps your definition in its database instead, and none of them offers an import or export path, so a character you build on one service cannot be moved to another.

Everything below comes from published documentation and specification files loaded on 29 July 2026. Where a platform documents nothing, that is stated.

A Character Is Just Prompt Text

Worth getting the mechanics straight before comparing anything, because the marketing obscures this on purpose.

A large language model has no memory between calls. Every reply is generated from whatever text sits in its context window at that moment. So a persistent character is an illusion built by re-sending the same description on every turn, alongside as much recent conversation as the platform can afford to include.

That means the description is not a setup step you complete once and forget. It's an active cost, competing for the same context budget as your actual conversation. Kindroid's documentation is unusually direct about this, splitting memory into persistent, cascaded and retrievable, and putting backstory, key memories, example messages and directives in the persistent bucket alongside chat history. Persistent means always present. Always present means always paying for space.

Which is why the same document keeps telling you to be concise. Its stated criteria for a good backstory are that it should be concise and clear with no fluff words, grammatically sound, written in third-person pronouns, and worded precisely and positively. Describe what the character is, not what they aren't.

That last instruction is the one I'd underline. Negative framing does not work well on these models, and half the character descriptions people write are lists of things the character should never do.

The Only Platform That Documents Its Fields

Kindroid publishes a Customizing Personality guide, last updated 26 March 2026. Here's what it actually exposes.

Field Where it lives What it does
Backstory Home menu, Backstory Primary source of personality and history
Response Directive Backstory, Response directive Highest-priority instruction on how to reply
Key Memories Home menu, Backstory Facts and dates the character should hold
Example Message Home menu, Backstory Sets format, tense, perspective, reply length
Journal Entries Backstory, Journal entries Retrievable rather than persistent
Conversation Dynamism General, Chat dynamism Numeric variability control, default 0.95
Model Flairs Model select menu Companion, Roleplay, Narrative or Minimal interpretation
User Backstory Profile and Personas What every character knows about you
User Personas Profile and Personas Saved bundles of your own name, gender, backstory, avatar

Read from kindroid.ai/docs on 2026-07-29.

Nine surfaces, each with a stated purpose and a stated location. Compare that to what a typical companion app gives you, which is a name, an avatar picker and a personality dropdown with eight adjectives in it.

Two details in there are worth pulling out. The persona limit is 100, which is a hard number in a category that publishes almost none. And the example message field doubles as a length control, because the documentation says the number of characters you use there loosely determines how long a reply you get back. That's a lever most people never realise they're holding.

One more thing, and it belongs in an adults-only category. The template backstory in Kindroid's own documentation ends with the line that the character is over 18 years old and single. The platform put an age statement in its worked example. Every product in this space is adults-only in its terms, the enforcement is thin, and this is the only place I've seen a company build the assumption into the thing it teaches you to write. The wider state of age gating across the category is audited in the age rating breakdown.

The Setting With A Default Of 0.95

Dynamism is the one I'd expect people to get wrong, and it's the only numeric creation control published anywhere in this category.

The documentation describes it as a control over how chaotic responses get. Higher values produce more varied or florid language, with a risk of losing recent context. Lower values are more stable but become predictable if you push them too far. Default is 0.95. The guide adds a technical note warning that small changes create large differences, and that higher dynamism can cause parts of the backstory and key memories to be ignored entirely.

So the two things you might tune are in direct tension. Write a detailed character, then raise dynamism, and the model starts ignoring the character you wrote. Nobody's landing page mentions that, because it's the sort of thing you only find out four weeks in when the personality has quietly drifted.

There's a second control in the same place, reasoning effort, for models that support it, defaulting to none. The documentation says lower reasoning does not mean worse and may be better for some setups. That is an unusually honest thing for a company to write about its own premium-looking option.

Free Creation Is A Different Product

This is the finding I did not expect and it changes how you should evaluate a free tier.

Kindroid's memory documentation states that Cascaded Memory, its medium-term system, is available to subscribers only and not to free users. Then it gives free users a piece of direct advice, which is that they should use shorter backstories and simpler setups.

Read that again as a creation instruction rather than a pricing note. The advice is to build a smaller character if you're not paying. Not a worse character, a smaller one, because the machinery that would carry a rich definition through a long conversation isn't switched on.

Which means the free tier of a companion platform is not a free trial of the paid product. It's a structurally different thing, and evaluating creation depth on a free account will give you a false read in either direction. The same tier gating shows up as context limits across the category, and the published numbers are compared in the roleplay memory guide.

Three subscription tiers exist above free on that platform, named Standard, Ultra and MAX, and the documentation says plainly that serving longer context costs more, which is why the tiers exist at all. I appreciate a company saying that out loud rather than dressing memory up as a feature they generously unlocked.

The Open Format Nobody Sells You

There is a published, versioned specification for portable AI characters, it has existed since 2023, and it's the reason a whole ecosystem of shareable characters works at all.

Version one defines six mandatory fields. Name, description, personality, scenario, first message and example messages. All six are mandatory and all six must default to an empty string rather than null or absent. The spec also defines macro substitution, so the strings representing the character name and the user name get replaced case-insensitively at prompt time, which is how one character file works for any user.

Version two keeps those six and adds nine more. Creator notes, a system prompt, post-history instructions, alternate greetings, a character book, tags, creator, character version, and an extensions object for arbitrary key-value data that implementations are forbidden from destroying even when they don't understand it.

The embedding method is the part that makes it real. The character JSON is base64-encoded and stored inside the metadata of an ordinary PNG. So the character is a picture. You can save it, back it up, email it, put it in a folder, and any compatible front end reads the definition straight out of the image. A plain JSON file is permitted too, though the spec discourages it on usability grounds, and WEBP is explicitly excluded because of technical ambiguity.

Hosted builder Open character card
Where the definition lives Company database A PNG file on your disk
Documented field list One platform out of the field Published specification, two versions
Can you copy it out No It's already a file
Survives the company closing No Yes
Works with a different model Whatever they run Any front end that reads the format

The obvious catch is that you need somewhere to run it, which means either a hosted service that accepts the format or a model on your own machine. That's an evening of setup rather than a download, and it's the same trade covered in the roleplay platform comparison.

Nothing Transfers Between Apps

Here's the practical consequence and it's worth being blunt.

No hosted companion platform I've looked at publishes an import path from another platform, and none publishes an export. Your character is a text description plus a conversation history in somebody else's database, and both of those stay there. If a service raises its price, changes its model, tightens its content rules or shuts down, you rebuild from nothing.

That isn't a conspiracy either. Building an importer for a competitor's format is work with no revenue attached, and character definitions are the closest thing these companies have to a moat. But it does mean the switching cost you're accepting when you create something is much higher than the monthly price suggests, and it's invisible at signup. What people actually lose when they move between the big platforms is detailed in the Character AI alternatives comparison.

Questions That Come Up

How long should a character description be? Long enough to be clear, short enough to leave room for the conversation. The only documented guidance in the category says concise, third person, positively worded, and warns against fluff. If you're on a free tier, shorter still.

Can I make it look like a specific real person? Replika's terms explicitly forbid configuring a companion to represent or simulate a specific real person without their written consent, naming former partners, family members and public figures. That clause and the rest of the policy picture is in the platform policy review.

Does the app or the model matter more? The prompt matters most, then the context budget, then the model. Which is inconvenient for everyone selling an app, since two of those three are things you control.

Can I edit a character after creating it? On every hosted platform I've seen, yes, the fields are editable. What you can't do is roll back to a previous version, because none of them versions your definition. Copy it into a note before you make big changes.

Why does my character forget things? Because the definition and recent history compete for the same finite context. That's a memory question rather than a creation question, and it's tested properly in the roleplay chatbot guide.

Is creating one free? Creating is always free. Keeping the character behaving well over months is what gets metered, which is the whole business model of the category and the reason the main girlfriend app guide leads with pricing.

How I'd Actually Build One

Write the description in a text file first, outside whatever app you end up using. Third person, present tense, no negatives, a few hundred words at most. Save it somewhere you'll find it again. That single habit converts a locked-in character into something you can rebuild anywhere in ten minutes, and it costs nothing.

Then set the example message deliberately rather than leaving it blank, because it's doing more work than the personality field on most platforms. Format, tense, perspective, length, all set by demonstration rather than instruction.

Then leave the variability setting alone at first. Default exists for a reason, the interaction between it and your carefully written backstory is unintuitive, and changing two things at once means you learn nothing from either.

And if the point of the exercise is a character you'll still have in three years, the honest answer is that a hosted app isn't the shape for that, and a portable file is. Nobody in this market has any incentive to tell you so.