THE OPEN-SOURCE BROWSER DEMO ENGINE v1

TraceReel.
Agent actions. Frame-perfect demos.

Your agent thinks in steps. Your audience shouldn’t have to.
Reconstruct browser traces into smooth, narrated 1080p60 video.

View on GitHub
$npm install -g tracereel
Ccopy
Your real browser session1920 × 1080 / 60 fpsZero GPU · CPU & CI nativeMIT licensed
deploy-project.trace.jsonSAMPLE TRACE
app.deploy.dev / acme / new-project
Acme Projects New project
VD
NEW DEPLOYMENT

Let’s deploy your next project.

Import a repository and configure your deployment.

Vinayak19112003 / tracereelmain · Updated just now
Imported
tracer|
Vite
Select a region
Environment variables 2 variables
Encrypted by default
Deploy project
TraceReel
60 fps · spring interpolation
VOICEOVER / 01Name the project tracereel-demo.
Name the project tracereel-demo.
1920 × 1080RECONSTRUCTED / 60 FPS
00:03 / 00:12Space
narration.wavEBU R128 · −23 LUFS
00:12.000

Your Agent’s Real Browser.
Never a Blank Sandbox.

Record what your agent actually sees in its main, logged-in browser.
Real cookies. Real auth sessions. Real state. Your extensions, intact.

SAME SESSION. EVERY FRAME.
Your existing browser
github.com / your-agent / pull / 42Authenticated
CookiesAuth sessionsLive stateExtensions
Agent reviews a PR in your workspace
frames + actionsnot a new login
TraceReelCapture → reconstruct1080p / 60fps

No freshly spawned headless browser pretending to be you. No blank-session login wall standing in for your agent’s work.

01 / TRACE INGESTION

The session is the source.

The agent captures state/action traces and screenshot frames directly from its live session. TraceReel ingests that capture—not a re-enactment in a new browser.

Live agentTrace v1 + framesReconstruct
$tracereel reconstruct trace.json -o demo.mp4
02 / CDP ATTACH

Attach. Don’t start over.

Connect over the Chrome DevTools Protocol to existing Chrome or Brave with remote debugging enabled. Work in the agent’s browser, never launch a blank replacement session.

Chrome / BraveCDPLive capture
--remote-debugging-port=9222Browser configuration · local-only endpoint

Install in Your Agent
via Prompt.

Your task. Your agent. Your authenticated browser.
A ready-to-paste starting point for the next take.

CDP 9222 · same logged-in sessionExisting cookies, state & extensions

One prompt. Your real session.

Claude Code · Cursor / Windsurf · any CLI agent

agent-prompt.txt
Task prompt
Install TraceReel with npm install -g tracereel, then run tracereel doctor and inspect the installed CLI help.

Use my running, logged-in browser on local CDP port 9222. Use --cdp 9222 only if the installed capture command supports it; otherwise use your existing browser connection and capture Trace Format v1 states, actions, and frames directly from that session. Never launch a blank browser, copy my cookies, or replace my authenticated profile. If attachment is unavailable, stop and ask me to enable it.

Perform this browser task: [DESCRIBE YOUR TASK HERE]. Ask before purchases, submissions, or other irreversible actions. Track the actions and screenshots, save trace.json and its frames, validate with tracereel validate trace.json, then reconstruct a smooth 1080p60 demo with tracereel reconstruct trace.json -o demo.mp4. Report the output path and any missing prerequisites.

CDP attaches to a browser with remote debugging already enabled; the flag alone does not restore login state. Keep port 9222 local. Prompts check installed support before using --cdp or planned APIs.

60 Hz

Motion, not mouse jumps.

Spring-eased glides · click ripples · natural typing

Auto-frame

The action stays in frame.

Bounding-box focus · eased zooms · viewport pans

EBU R128

A demo with something to say.

Narration · music ducking · SRT / VTT subtitles

ZERO GPU REQUIREDPURE CPU & CI NATIVE

TraceReel encodes on the same machines your agent runs on — no GPU instances, no CUDA, no graphics drivers. Every render path ships with the CPU it was given.

01 / ENVIRONMENTS

Agent environments rarely have GPUs.

Cloud VMs, GitHub Actions runners, Docker containers, and agent sandboxes run on standard x86/ARM CPUs — usually with no graphics hardware attached at all.

x86 / ARM · cloud VMs · CI · sandboxes
02 / RASTERIZATION

SwiftShader renders every frame.

Chromium rasterizes smooth 60fps frames in software mode with --disable-gpu — zero graphics hardware dependencies, identical output on any machine.

chromium --disable-gpu · swiftshader
03 / ENCODING

Auto-detected multi-core libx264.

Parallel time-sliced chunk rendering scales across all available CPU cores, falling back gracefully to libx264 while using hardware encoders when present.

libx264 · threads = auto · hw accel when present

Discrete inputs.
Continuous motion.

The states, actions, and coordinates behind the deployment.
One normalized trace. A completely different viewing experience.

Trace Format v15 keyframes / 12.0s
v1
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
{
  "version": 1,
  "source": {
    "type": "agent-browser",
    "agent": "muse",
    "session": "main"
  },
  "viewport": {
    "width": 1920,
    "height": 1080
  },
  "screenshotsDir": "frames",
  "states": [
    {
      "id": "import",
      "screenshot": "01.png",
      "holdMs": 2100
    },
    {
      "id": "named",
      "screenshot": "02.png",
      "holdMs": 2600
    },
    {
      "id": "region",
      "screenshot": "03.png",
      "holdMs": 2300
    },
    {
      "id": "deployed",
      "screenshot": "04.png",
      "holdMs": 3000
    }
  ],
  "actions": [
    {
      "kind": "type",
      "from": "import",
      "to": "named",
      "x": 1171,
      "y": 432,
      "text": "tracereel-demo"
    },
    {
      "kind": "click",
      "from": "named",
      "to": "region",
      "x": 1382,
      "y": 702
    },
    {
      "kind": "click",
      "from": "region",
      "to": "deployed",
      "x": 1594,
      "y": 853
    }
  ]
}
muse adapter UTF-8 · JSON
LIVE PREVIEW
app.deploy.dev / acme / new-project
Acme Projects New project
VD
NEW DEPLOYMENT

Let’s deploy your next project.

Import a repository and configure your deployment.

Vinayak19112003 / tracereelmain · Updated just now
Imported
tracereel-dem
Vite
Frankfurt (fra1)
Environment variables 2 variables
Encrypted by default
Deploy project
camera · action bounding box
TraceReel
60 fps · spring interpolation
KEYFRAMES4.70s / 12.00s
CURSOR VELOCITY716 px/s

A trace in.
A finished take out.

Validate the capture. Reconstruct the motion. Mix the audio.
Or hand the entire session to your agent over MCP.

CLI reference
tracereel — zshEXAMPLE SESSION
$tracereel reconstruct trace.json -o demo.mp4
[trace] Loaded 4 states · 3 actions · adapter: muse
[motion] Interpolating cursor at 60 Hz
[camera] Framing 3 action bounding boxes
[render] 1920×1080 · H.264 · 60 fps
frame= 720 fps= 86 q=23.0 size= 3840kB
time=00:00:12.00 bitrate=2621.4kbits/s speed=1.43x
✓ demo.mp4 · 3.75 MB · 8.39s
Process complete · sample output
RUNTIMENode.js 20+FFmpegChromiumZero GPU requiredtracereel doctor

Not a recording.
A deterministic reconstruction.

Capture what the agent did. Rebuild how it should be seen.
Four composable systems, from raw state to final frame.

Zero GPU · Pure CPU & CI nativeCAPTURE → NORMALIZE → RENDER
MuseGrokbotGeneric
Trace Format v1states[] · actions[]
01 / NORMALIZATION

Different agents. Identical input.

Adapters translate agent-specific captures into ordered states, screenshots, and coordinate-based actions.

Muse / Grokbot / Generic → Trace v1
Raw captureSpring interpolationΔt = 16.67ms
02 / MOTION & PHYSICS

Rebuild the space between actions.

60 Hz interpolation turns discrete cursor coordinates into eased trajectories, with click rings and natural typing cadence.

cursor(t) → Bézier path → spring easing
1920 × 1080 / source viewport
action.bbox
Deploy project
auto-frame1.075×
03 / SMART CAMERA

Frame the action. Preserve context.

Bounding-box focus guides the camera toward active controls. Eased viewport transitions replace abrupt jump cuts.

action bounds → focus → zoom / pan
takeone mcpstdio / JSON-RPC 2.0
look
do
journal
record
↳ state + screenshotnext action ↲
{"jsonrpc":"2.0","method":"tools/call"}
04 / AUTONOMOUS REHEARSAL

The agent is also the director.

Observe the browser, perform an action, journal the take, and record the result through the MCP stdio tool loop.

takeone_look → do → journal → record

The next generation.
Same real-browser foundation.

Three major engine upgrades, from organic motion to automated delivery.

PLANNED / NOT YET SHIPPED
01 / MOTION
ζ = 1 · 60 Hz

Critically Damped Spring Physics & Smart Camera Framing

Organic cursor momentum without overshoot. Automatic focus bounding boxes keep active inputs and the next action in frame.

02 / RENDERING
Scene 01Scene 02Scene 03
GPU
NVENC / VideoToolbox

Parallel Chunk Rendering & GPU Pipeline

Multithreaded scene chunking meets hardware-accelerated encoding with NVENC and VideoToolbox.

03 / AUTOMATION
PR → job queue → 60fps demo

Headless Agent API & CI/CD Bot

A Hono/Fastify server and job queues for automated agent workflows. Generate 60fps PR demo videos for agent pull requests.

Planned backend capabilities, not services running on this showcase. The headless API orchestrates live-session captures; it doesn’t replace your authenticated browser.

Your agent’s next demo.
Your engine to shape.

Add an adapter. Tune a trajectory. Improve the next take.
TraceReel is MIT licensed, from capture to codec.

Vinayak19112003 / tracereel

AI browser traces → polished 1080p60 demos

TypeScript—MIT