GitHub

A kindergarten for your AI agents

Claude, Codex & friends keep coding on your PC at home — and you watch the whole classroom live, from any browser, anywhere.

Open the classroom

self-hosted · open source (MIT) · your keys stay home

a letter home

Why I built this

Dear parent or guardian,

You kick off a long agent run, and then life happens — you leave the desk, you leave the house. Meanwhile a very enthusiastic child is alone at your computer: maybe finishing the refactor, maybe stuck on a permission prompt for forty minutes, maybe writing tests nobody asked for. You simply cannot tell from the bus.

So I built them a classroom. Every agent on your PC becomes a student you can watch live — a real terminal you can type into from your phone. When a dev server appears it goes on the Show & Tell shelf. When somebody stalls, errors out, or raises a hand to ask permission, you get a note. And if you'd like, I will personally read their scrollback and send home a report card.

One thing I insist on: the relay between us stores nothing — no database, no logs, just passed notes. And the children's credentials never leave your house. They use the CLIs you already installed and logged in yourself.

— Miss Clankerclassroom teacher (a robot, and proud of it)

what's inside

The report card

Every feature, graded the only fair way: by the teacher.

AgentKindergarten Elementary

Student: your home PC · Term: while you were out

  • A+

    Students — live terminals

    Every agent session (Claude Code, Codex, any CLI) streams as a real terminal you can watch and type into from any browser. Phone included.

  • A+

    Same session, everywhere

    Your terminal, your browser, and your phone are three windows into one session living on your PC. Start at the desk, continue on the couch — it never forks, and closing a window never kills it.

  • A

    Show & Tell

    Dev servers your agents start (localhost:3000 and friends) are spotted automatically and can be opened live through the tunnel — see the actual app, not a description of it.

  • A

    Raised hands

    Stalled for ten minutes? Hit an error? Waiting on a permission prompt? The student's hand goes up and your phone gets a push notification. No more discovering the 40-minute nap at midnight.

  • B+

    The Teacher

    Miss Clanker reads each student's scrollback and writes an actual report card — grade, highlights, concerns, next step. Bring your own OpenRouter key, or she just borrows the claude CLI you already have.

    "B+ for grading herself. Shows initiative."

  • A

    Roll call

    Which machines are connected and which students are awake, at a glance — with avatars, because every class needs a photo wall.

Parent / guardian signature: ______________ (that's you)
today's lesson

How it works

Three parts. The important arrow points the wrong way on purpose.

you, anywhere browser or the phone PWA
HTTPS + WSS access token
relay — your VPS passes bytes. stores nothing.
daemon dials OUT ← pairing token
daemon — your PC wraps agent CLIs in PTYs
  • The daemon calls the relay, never the reverse. No port-forwarding, no inbound firewall holes. Kill the daemon and your PC is a stranger to the internet again.
  • The relay is a pure pass-through. No database, no session logs, nothing persisted. Your code stays between your devices.
  • Your agent logins never leave your machine. The daemon runs the CLIs you already installed and authenticated — AgentKindergarten never sees a Claude token.
posted by the door

Playground rules

Anyone holding your access token can drive your machine — that is literally the product. So the rules are strict.

1

Nothing listens

Your PC opens no public ports. The daemon dials out over WSS and that's the only door — and it only opens from the inside.

2

One kill switch

Cookies are derived from your access token. Rotate the token on the relay and every logged-in browser everywhere is out. Instantly.

3

Locked toy box

With --lock-commands the daemon only ever spawns its built-in presets — even a fully hijacked relay can't launch arbitrary commands.

4

Look, don't touch

With --view-only the daemon drops all keystrokes arriving from the relay. The web can watch; only your local terminal may type.

enrollment

First day of school

setup — once, on your PC
# install the daemon
> npm install -g agentkindergarten

# point it at your relay, then leave it running
> agk init --relay wss://your.relay --token <pairing>
> agk start
every day after
# type this instead of `claude`
> agk claude

# born in the classroom AND in your terminal.
# phone, browser, terminal: one session, three windows.
# Ctrl+] leaves quietly — the kid keeps playing.

The relay is one small Docker container on any VPS — Compose file and Let's Encrypt included. Then open it in a browser, log in, and take attendance.

copied — gold star!