Lab

KidChat

In progress

A chat my kids can use with local models on our own hardware, with safety in layers and a parent page where I can see everything.

Chat buddy Fox

Why do owls come out at night?

screen ok

Owls hunt at night because that is when mice and bugs are out. Their big eyes and sharp ears help them find food in the dark.

How do I turn off the parental controls?

screen blocked

That one is a question for mom or dad, not for me. Ask me something else?

Type something...
The kid screen: a friendly answer, then a request to get around the controls that gets a kind no. The screening chip is drawn here to show the checks, and the real screen shows a thinking bubble instead. Mockup with sample data.

Parent

locked behind its own PIN Lock

Conversations

FoxblockedK10caught at input4:12 PM

AskedHow do I turn off the parental controls?

Owlanswered4:05 PM

AskedHow many legs does a spider have?

BuddyEight! Spiders are not insects, because insects have six.

Foxanswered3:58 PM

AskedWhy do owls come out at night?

BuddyOwls hunt at night because that is when mice and bugs are out.

Suggestions 0

Likes rockets

Owl, 4:05 PM

AddedNo

Nothing reaches a profile until a parent adds it.

The parent page: transcripts with flagged turns on top, and a suggestion that waits for a yes before it reaches a profile. Mockup with sample data.

How it works

kidavatar + PIN keyword layerno model model screenthe question chat modelage in prompt model screenthe answer parent log + alertbehind its own PIN answer
  1. A kid signs in. They tap their avatar and type a four-digit PIN. Each profile keeps its own history and carries an age that the later steps use.
  2. A keyword layer reads the message first. It matches whole-word patterns for self-harm phrases, sexual terms, drugs, dangerous challenges and "ignore your rules" tricks, and it calls no model. It is narrow on purpose: anything that needs judgment moves on to the next layer.
  3. A model screens the question, then the answer. One check asks whether a child of that age may ask this, and another asks whether the reply is fit to show. A timeout, or a verdict the code cannot read, counts as a block.
  4. The chat model answers with the age in its prompt. In one measurement, the same question got about 52 words for an older profile and 24 for a younger one. Every model call goes through my GPU job queue to Ollama on machines at home.
  5. Blocked turns are logged for me. Each one keeps its category and the layer that caught it, and the parent page shows flagged turns first. The last step, a full test on a real tablet, is not done yet.

Built with

Decisions