Khan Progress Rewards for Your Coding Agent
The reusable version of "watch Khan and reward what the kid actually did." Invoke it in Codex or Claude Code and it stands up an hourly loop: read your kid's real Khan Academy progress read-only, auto-award genuine mastery gains in Sprout within a daily budget, ask you one-tap only for milestones or over-budget cases, and stay silent otherwise. One daily digest, never re-asks.
Age range All ages

About
Sets up a home-agent loop (Codex or Claude Code) that hourly reads a kid's real Khan Academy progress read-only, rewards genuine mastery gains in Sprout within a daily budget, asks the parent one-tap only for milestones or over-budget cases, and stays silent otherwise — one daily digest, no re-asking, durable local history. This is the reusable version of the "watch Khan and reward what the kid actually did" loop. Authored for the coding agent; not a kid-facing activity.
How it works
- 1Install the engineSaves a tiny deterministic engine plus your reward config to ~/.sprout-khan and writes the fixed hourly run instruction.
- 2Schedule it hourlyWires an idempotent hourly job in your agent (Codex or Claude Code) that reads Khan read-only and runs the engine.
- 3Reward quietlyAuto-awards real mastery gains within your daily budget, asks you one-tap for milestones or over-budget gains, stays silent otherwise, and never re-asks the same progress.
- 4One daily digestPosts a single daily summary and keeps a durable local history that survives even if a Sprout or Khan account is deleted.
Inputs
Target coding agent(s)
Which agent to wire the hourly job into: `codex`, `claude`, or `all`. Blank → detect which agent you are running in.
targetSprout child id
UUID of the Sprout child whose Khan progress is rewarded (used for gems_adjust).
child_idKid key
Short stable key for the local state folder, e.g. the child's first name in lowercase.
kid_keyKhan progress URL (parent view)
The child's Khan Academy progress page as seen in the PARENT/coach account. A canonical URL, no query string.
khan_urlDaily digest hour (optional)
Local hour 0-23 to post the one daily summary. Default 18.
digest_hourDaily auto-award budget (optional)
Max gems auto-awarded per day before it starts asking you instead. Default 60.
daily_auto_budget