Moment search
Find the second it happened.
Every recording your team makes is searchable by what was said, what was on screen, which file or repo was open, and what ran in the terminal. Results are moments, not videos — click one and playback starts there.
Surface results easily
Every recording your team makes becomes searchable the moment it's uploaded.
Search respects who can see what. You only ever find recordings you were already allowed to watch.
Search by word.
Anything anyone said, from the transcript.
Search by file.
Every recording where
route.tswas open onmain.Search by command.
Every recording where
pnpm db:migrateran.Search from anywhere.
The web, the
shoyucommand line, or your agent through MCP.
Search from anywhere
One search. Three places to ask.
The same index answers the web, the command line, and your agent. Same filters, same permissions, same moments.
$ shoyu recording search "checkout 500" --code-file route.ts --code-branch main --json{ "schemaVersion": 1, "kind": "recording.search", "results": [ { "title": "Checkout returns 500 on retry", "playbackPageUrl": "https://shoyu.cc/r/8f1c…", "matches": [ { "sourceType": "browser", "atMs": 41000, "text": "POST /api/checkout → 500" }, { "sourceType": "code", "atMs": 63000, "text": "route.ts · main · L231–241" } ] } ]}
When did we last see the checkout 500?
Thursday, in “Checkout returns 500 on retry”. The console error is at 0:41 and the retry code is open at 1:03.
Browser · 0:41 · shoyu.cc/r/8f1c…?t=41