A CapCut-style scrubber over Shadow's captured screen/input/window/audio lanes with keyframe preview, a Dayflow work journal, and jump-to-moment focus.
The public home of
ryu-timeline. Source, builds, and releases live here — binaries for every platform are attached to each release.This tree is generated from the Ryu monorepo, so commits pushed here directly are replaced on the next sync. Pull requests are welcome — open them here and they are ported into the monorepo, then flow back out. Ryu as a whole: https://github.com/amajorai/ryu
App: Install (opens the Ryu desktop app and asks you to confirm)
CLI:
ryu apps add @ryu/timelineThis is the source of record for the app UI. It imports Ryu's private
@ryu/ui design system, so it does not build standalone outside the
monorepo — it builds inside the amajorai/ryu monorepo workspace.
The shipped bundle below is the built artifact: a prebuilt single-file
companion bundle is included at dist/timeline.ui.html —
the runnable UI Ryu loads for this app.
Apache-2.0 — see LICENSE.
ui/— companion (@ryu/timeline-app). A sandboxed full-page Companion (Path B,ui_format: "html"), built to one self-containeddist/index.htmlviavite-plugin-singlefile, consuming@ryu/ui(tree-shaken into the bundle). No backend crate of its own — it reads Shadow's local/timeline+/journal+/frameendpoints through the bridge, every call overwindow.ryu.
- id
@ryu/timeline· onecompanionrunnable (Timeline, icontimeline). - Grant:
timeline:read— the read-only bridge capability the companion drives Shadow's timeline/journal/frame surface through. - No sidecar: the data lives in the already-running Shadow capture service.
Registers as the Timeline companion in the desktop app store / launcher. Read-only: switch between the CapCut-style Replay lanes and the chronological Timeline history view, preview keyframes, browse the Dayflow journal, and jump to a moment. The Timeline view groups derived work blocks by day and opens any block back in Replay.
The companion binds to the timeline:read capability, not to Shadow directly —
any capture backend that serves the same timeline/journal/frame contract behind
that grant can back the view without touching the UI.