Skip to content

Training data that talks like a friend

Convo writes thousands of conversations between a person with a life and an AI friend who is openly an AI, checks every one, and exports JSONL for a chat trainer.

Change any part of it
Every prompt slot is a segment you can swap. Run on any OpenAI-compatible server, in the cloud, on your machine or on your network, and re-cut the judge's thresholds without regenerating.
Start from working defaults
48 built-in segments, Baseline, Call-steady and Texting-sunny prompt sets, 914 persona cards, and a guided tour on every tab.
An accepted conversation in Convo's viewer. The person's messages are on the right and the AI friend's short replies are on the left.

What you start with

These are the built-ins. One seed command loads them into your workspace, and they're there before you write a word.

Built-in prompt segments
48
At least 3 for each of the 11 prompt slots
Source: Convo database, built-in catalog, as of 2026-10-30
Persona cards
914
Source: Convo database, built-in catalog, as of 2026-10-30
Prompt sets
3
Baseline, Call-steady, Texting-sunny
Source: Convo database, built-in catalog, as of 2026-10-30
Guided tutorials
13
On every tab
Source: Convo source, as of 2026-10-30

Stuck on a page? It will show you around.

Press “Tutorial” in the top bar and the page walks you through itself, one highlighted control at a time. It points and explains, you do the clicking, and Esc ends it at any step.

See the guided tours
Mid-tour on Prompt sets: the slot table is spotlit and a small card explains it, with Back, Next and Cancel.

Planned before it's generated, checked before it's kept

Each run plans every conversation up front from its run seed: who the person is, which voice answers, the mood, why they're talking today and what the friend remembers. A model writes it, three layers of filters check it, and your reviewers can read, fix and label it. Every conversation keeps the seed that planned it, so you can always see why it exists.

Filters, cheapest firstMemory updatewhat the friend now knows, for the next conversation in this threadSeed(run_seed, index)Generateyour model, anyOpenAI-styleendpointRulesLayer 1no model callsDiversityLayer 2no model callsJudgeLayer 3one cheap callAcceptedjudge scoresstoredExportJSONLassistant_embodiednear_duplicatejudge_below_thresholdRejected, every one with a reasonFilters, cheapest firstMemory updatefor the nextconversation inthis threadSeed(run_seed, index)Generateyour model, anyOpenAI-styleendpointRulesLayer 1no model callsDiversityLayer 2no model callsJudgeLayer 3one cheap callAcceptedjudge scoresstoredExportJSONLassistant_embodiednear_duplicatejudge_below_thresholdRejected, every one with a reason
Follow one conversation through the pipeline

The prompt set matters, and Convo shows you by how much

In our pilot, the built-in prompt sets wrote conversations for the same 34 seeds. Call-steady kept 16 of 34. The people and their moods were identical; only the prompt changed.

Accepted conversations by prompt set, identical seeds
34 seeds per set, Ollama Cloud, single-pass
Source: Pilot runs, Convo database, as of 2026-10-30
Accepted conversations by prompt set, identical seeds
CategoryValue
Call-steady47%
Texting-sunny29%
Baseline29%

A small pilot, pending a blind read by a person. The pilot report treats only the gap between Call-steady and the others as a real signal at this size.

We like vibes. We also like receipts.

Some people make this kind of data by turning the temperature up and hoping. Convo keeps the fun part and writes everything down: the seed of every conversation, the reason for every reject, and every judge score, so you can change your mind about the thresholds next week.

Beyond vibe training

Ready when you are

Already have an account? Go straight to the app. Running it yourself? The whole stack comes up with Docker Compose.