Changelog

What shipped in ThinkRun — the recorder, the extension, and the CLI.

  1. Simpler recording sharing

    Open Share and choose Create share link to share your recording. The extra content-scope question has been removed.

    You can still choose whether to include console logs or network requests, add an optional password, and use Revoke link to stop access through the link.

    Older recording links that were unavailable stay unavailable until you create a new link.

    Making a recording private keeps you on the recording page. After you enter your email, the options close and your recording stays available while the page shows the email status. A previous request or an unconfirmed send has its own message. Choose Create account when you are ready.

    The email links back to your recording. Open it in the browser you used to create the recording, then verify your account to keep it before it expires.

    Saving a recording keeps its original analysis. A finished result moves into your account without running analysis again. If analysis is still in progress, the recording stays saved privately while it finishes. If analysis failed, saving keeps the video available without automatically retrying it.

    Browser-captured recordings keep a usable timeline. You can seek and skip through recordings that previously showed zero duration.

  2. Watch how to share a recording with your coding agent

    Watch how to give Claude Code a screen recording. The guide includes a video, screenshots, a prompt you can copy, and answers to common questions about sharing the evidence with your coding agent.

    Recording links created before the new privacy review are unavailable. To share a recording again, open it and confirm that the entire video is safe to share, then create a new link. If part of the recording needs to be removed, edit or recapture a safe version first. Session-sharing links continue to work as before.

    If a recording reaches its analysis retry limit, its detail page now says so and stops offering another retry. Recordings still being analyzed continue to show their in-progress state.

  3. Browse your full recording history

    Older recordings remain in your account list as your collection grows. You can browse beyond the newest batch and reach recordings further back in your history.

  4. An ongoing changelog you can actually read

    thinkrun.ai/changelog is an ongoing feed. It lists what shipped, by date, in plain language — recorder, extension, CLI and MCP. It had been a single entry from July; it now covers June onward.

    The CLI and MCP packages ship their own version history. Installing @thinkrun/cli or @thinkrun/mcp now gives you a CHANGELOG.md for the version you installed, instead of leaving you to work out what changed.

  5. Recording privacy and wider browser support

    Your account email stays hidden while you record. The app header no longer displays your email address, so it cannot end up in a screen recording you share. The account menu still labels who is signed in.

    Browser recording is offered wherever your browser supports it. Web capture used to be refused on any non-Chromium browser. It is now offered whenever the browser actually provides secure-context screen capture and media recording — Safari included. Uploading a file remains the fallback when capture is unavailable.

    The agent skills catalog is public. Browse the portable skills you can drop into Claude Code, Codex, or Cursor at thinkrun.ai/skills.

  6. Windows setup steps and working docs anchors

    Windows setup steps are in the docs. The local mode documentation now walks through setup on Windows alongside macOS and Linux.

    Documentation links land on the right section. An in-page link such as /docs/local-mode#windows used to open at the top of the page, because the browser jumped to the anchor before the section had rendered. It now scrolls to the target, keeps it clear of the sticky header, and moves keyboard focus there.

  7. Record your first video without an account

    You can record your first video before creating an account. Start a recording from the homepage and watch it back — no signup, no extension install first.

    Add your email to make a recording private. First recordings are public by default. Entering your email converts the recording into a normal private, account-owned recording, keeping its analysis and its existing video.

    Homepage recordings use the full recording page. A recording made before signup opens in the same detail view as a share link or a signed-in recording, rather than a reduced one-off page. Unknown capture details stay hidden instead of being guessed at, and failed analysis is labelled plainly instead of looking ready.

    Playback survives a rejected account claim. If claiming a recording into an account fails, the recording and its video remain available instead of disappearing.

  8. Bounded analysis retries and mobile-friendly analysis tabs

    Recording analysis retries within a fixed budget. A failing analysis now retries automatically a bounded number of times and then reports failure, instead of retrying indefinitely or stopping after the first error.

    Analysis tabs fit small screens. The tabs on a recording's detail page no longer overflow on a phone, and keyboard focus is visible as you move through them.

    Clearer guidance for a first recording. The onboarding copy leads with recording rather than with setup.

  9. Agents can upload recordings directly

    Upload a recording straight from an agent. CLI 0.1.38 and MCP 0.3.14 can upload a video file as a recording directly, so an agent can hand you back a recording without the browser extension in the loop.

  10. Valid API keys stay valid under load

    A valid API key is no longer rejected during a storage hiccup. Cloud key validation now distinguishes an authoritative "this key is not valid" from a temporary failure to look the key up. A temporary failure returns a retryable error instead of remembering a verdict it never reached, so a working key keeps working. Revoked and expired keys still fail immediately. If you see this error, retry — you do not need to rotate a valid key.

  11. doctor reports the extension version that is actually running

    thinkrun doctor shows the extension version that is actually running. Chrome can keep executing a cached older version of an extension after a newer one is installed on disk — which is exactly how a fixed bug can appear to come back. doctor now reports the version the extension is really executing, or says not reported when it cannot tell. It surfaces the mismatch; it does not prevent it.

    doctor no longer reports health it has not established. A reachable service that returned any parseable response was treated as healthy, including an empty one. It now requires the response to actually identify the service or state its status.

  12. fill and type report what really happened

    fill and type no longer report success on an element they cannot edit. Both commands now verify the target is editable and rendered, verify the committed value after typing, and roll back partial input if a delayed type is cancelled. A target that cannot be edited is rejected rather than silently doing nothing and returning success.

    The CLI and MCP agree on what input commands do. Across CLI 0.1.36 and MCP 0.3.13: type appends by default, clear replaces existing content, fill replaces directly, and delay is a bounded per-character value. Help text, tool descriptions, and the connector schema now all say the same thing.

  13. Sign-in fixed

    Signing in works again. An authentication dependency had started sending a different account identifier than the one our storage layer expected, so valid login attempts failed with a server error. The identifier is pinned and verified in CI, and the fix is live.

  14. Remote pickup recovers after handoff and revocation

    Standing remote pickup no longer stalls. Restoring or pre-empting a session is now serialized, so a handoff cannot leave pickup stuck. A session revoked from another machine releases its dedicated tab within one pickup interval instead of holding it and blocking later work.

  15. The extension opens on Record

    The side panel opens on Record. Recording is the first thing you see, with a keyboard-accessible record control and protection against starting the same recording twice. Remote agent controls moved to their own Agents tab, which shows pending requests first.

    An interrupted upload recovers correctly. A recording held for upload keeps its identity across extension restarts, ignores stale messages from a previous context, and only clears local copies once the reset is authorized.

  16. Self-owned tab overrides keep their session identity

    --tab works again for a tab you own. The local CLI forwards session identity for --tab when the selected tab is locally self-owned and matches your active session binding. This restores the isolated-window workflow without widening access: unowned tabs remain anonymous, and a tab owned by another agent is still rejected.

  17. Explicit capture controls and CLI 0.1.36

    Capture controls say what they capture. The Simple / Power / Developer selector is gone. Audio, DOM, Console, Network, and analysis Intent are now the controls, so you choose what gets recorded rather than picking a persona. Existing recordings need no migration.

    The internal capture preset is no longer shown as your role. A recording's details used to display the preset name — so plenty of ordinary product-feedback recordings were labelled developer. That row is gone.

    CLI 0.1.36 — transactional tab ownership and durable Activity Feed sessions. Claiming a tab is now all-or-nothing, and sessions survive in the Activity Feed rather than vanishing.

    Extension 0.2.11 submitted to the Chrome Web Store, carrying the recording configuration and remote-control updates above.

  18. Standing remote sessions no longer hang on handoff

    Passive remote-control sessions no longer hang during restore or cancel. Handing a standing session back and forth used to race with itself, which could leave the session wedged. Restore and cancel are now ordered.

  19. Retry-safe checkout and accurate token accounting

    Checkout is safe to retry. Retrying a payment no longer risks granting the same paid credits twice — a completed checkout grants its credits exactly once.

    Usage is billed from what the provider reports. Token accounting no longer infers usage when the real number is available, so analysis cannot be over-charged against an estimate.

    A revoked API key stops working promptly everywhere. Revocation now converges across machines instead of lingering on whichever one had the key cached.

  20. Verification credentials stay server-side

    Registration responses no longer carry a verification token. Sign-up responses are now filtered to a strict allowlist of public fields, so the email-verification credential never reaches the browser.

    CLI 0.1.35 recovers from a stale local bridge port. thinkrun and thinkrun doctor used to keep talking to a port the local bridge had moved off. They now re-discover it instead of reporting a broken connection.

  21. Delegated task status recovery

    A delegated task reports its real status. Status recovery was hardened so a task that finished — or failed — no longer appears stuck in progress.

    The in-page execution delay guard is restored. Scripted in-page actions honor their delay bound again.

  22. Pro is $19 per month

    Pro is $19 per month, and the number now comes from a single source shared by the pricing page, the app, and checkout — so the three cannot drift apart.

  23. MCP setup and first-run guidance

    MCP 0.3.11 — doctor and native-host setup commands. Onboarding no longer requires you to work out the local host wiring by hand.

    MCP 0.3.12 — first-run guidance reads as guidance. Setup you have not done yet was being reported as Error, which made a normal first run look broken.

  24. Retried analysis no longer re-buys completed work

    Retrying an analysis no longer pays for work that already finished. A retry now reuses the completed media work instead of buying it again.

    A stale extension id no longer silently breaks the local host. After reinstalling the extension, the native host could hold an old id and simply stop responding, with nothing explaining why. It is detected and reported now, and CLI 0.1.34 ships the fix.

    Stuck video posters and playback files self-heal. A derivative that failed to generate is regenerated instead of leaving a recording permanently unplayable.

  25. Deploys no longer strand in-flight analyses

    A recording being analyzed during a deploy now completes. In-flight analyses used to be stranded for up to 35 minutes when a deploy landed mid-run.

  26. Docs are local-first and extension links work

    /docs leads with local mode again, and the extension links in it point at real destinations rather than placeholders.

  27. Approval-gated browser sharing with a remote agent

    Share your browser with a known remote agent, behind an approval. A remote agent can request access to your local browser; nothing happens until you approve the request, and access stays scoped to what you approved.

    CLI 0.1.32 — the Chrome Web Store extension connects out of the box. The published extension no longer needs manual wiring to reach the local bridge.

    MCP 0.3.10 publishes the remote-browser support to npm, which had shipped in source without a version bump.

  28. List your sessions from the CLI

    thinkrun sessions list. Enumerate your browser sessions and recordings from the terminal, without opening the app.

  29. Complete audit trail for local sessions

    Local sessions keep a complete audit trail. Commands run against a local browser session are recorded in full, so you can review what an agent did locally the same way you can for a cloud session.

  30. Recording analysis reliability

    Analysis failures are readable and retryable. A failed analysis shows a plain message and a Re-analyze button instead of a raw internal error.

    A failed analysis is no longer hidden behind stale insights. An incomplete or failed run used to display the previous run's results as though they were current.

    Analysis returns real insights again. Recording analysis had been falling back to generic boilerplate rather than analyzing the recording.

    Media processing cannot deadlock. A recording whose processing lock was left behind no longer stays pending forever.

    Older recordings play again. Playback links for older recordings were returning a server error.

  31. Portrait video, focus, and posters

    Portrait and square videos render correctly. Phone-shaped recordings now play in a matching frame instead of being letterboxed inside black bars.

    Starting a recording keeps your focus where it was. Beginning a capture no longer pulls focus to the surface being recorded.

    Video posters no longer show a black frame. The still image for older recordings was frequently a black frame from the very start of the video.

    Extension 0.2.9 consolidates the record lifecycle behind these fixes.

  32. Navigation standardized across the app

    Navigation is consistent across the app. Headers, back links, and tab bars now come from one shared design system, so they look and behave the same on every page instead of being hand-written per screen.

  33. CLI 0.1.28

    CLI 0.1.28 — a popup option that did nothing now works. The option was accepted and silently ignored.

  34. Screenshots of background tabs

    Screenshots work for occluded and background tabs. Capturing a tab that was behind another window, or not in the foreground, could return a blank or stale image.

  35. A consistent player frame

    The recording player uses a consistent 16:9 frame, so the page no longer reflows as a video loads.

    Clearer CLI task authentication and caching. Task commands report an authentication problem as an authentication problem, and stop serving a stale cached result.