Repository navigation
Releases
Releases · pschmitt/browser-daemon
v0.17.0
Added
- Flight recorder: a session can keep its last seconds of video (60 by
default, up to 300) in memory and save them as an ordinary recording when
something goes wrong. Video only.POST /api/sessions/{id}/flight-recorder,
browser-daemon session flight-recorder, the session sheet, and the MCP's
browser_flight_recorder. - Human-like input for Chromium clients that ask for it (
human_input=1on
/chromium, NixOShumanInputfor a node-wide default, MCP
--human-input): curved mouse paths before clicks, paced typing, and large
scrolls split into steps. - MCP: bot walls (Cloudflare, DataDome, PerimeterX, Imperva, Akamai, AWS WAF,
captcha and block pages) are reported after navigations and clicks; the MCP
waits up to--challenge-waitseconds (15) for them to clear and otherwise
points tobrowser_ask_human. - MCP:
browser_network_harrecords the page's traffic to a HAR file with
credentials, cookies and secret-looking parameters redacted. - MCP:
browser_take_screenshotis now the censored screenshot: it blacks out
passwords, card and one-time-code fields, filled inputs and filled vault
secrets (censorpicks the categories). The raw Playwright screenshot is
browser_take_screenshot_unsafe. Shared desktop-browser tabs are censored
unlessbrowser_shared_commandpassesunsafe: true.--censor-screenshots
removes the unsafe ways: the unsafe tool is not offered andunsafe: trueis
refused. - MCP:
browser_set_topic(replaces thebrowser-agent-topicscript),
browser_live_link,browser_recording, and with--allow-share
browser_shareandbrowser_unsharefor public links. Every own tool has
full annotations. - Browser extension: tabs that clients open go to a collapsed "Agents" tab
group in the background (Firefox 139+), close after 10 minutes idle
(configurable), show ON/RUN on the toolbar badge, and can be shared or taken
back from the context menu, a keyboard shortcut or the popup. Shared-tab
screenshots can be censored (censorparameter); censoring fails closed.
Changed
- Shared-tab screenshots through the MCP are censored by default, which needs
this version of the browser extension: with an older one they fail with a
request to update it, unless the agent passesunsafe: true.
v0.16.0
Changed
- MCP secret and card fills now use the RBW agent's mTLS API, with a separate
certificate for each vault account and server-side field grants. Saved login
URI matching and the card merchant and hosted-frame checks remain in place.
Configure the API URL, CA, client certificates and keys before enabling fills;
the previous local--rbwMCP option has been removed. The live-view secret
agent and passkeys continue to use the RBW CLI.
v0.15.8
Added
- MCP:
browser_fill_cardfills authorized RBW card fields without exposing
their values. It supports a combinedMM/YYexpiry and checks the exact
merchant and hosted payment-frame origins before typing, including Chromium
frames running in a separate process. It never submits the payment.
v0.15.7
Added
- Dashboard: Ctrl+K (Cmd+K) opens a search over everything: actions (New
session is preselected), the settings of this browser, sessions, profiles,
recordings, nodes, labels, pages and the shortcuts themselves. Every row has a
badge for its kind and the node it lives on, the matching words are marked, and
a match in something the row does not show (a tab's URL, an agent, notes) is
spelled out. Tab narrows to one kind. Whatever you type can be opened in a new
session. On a phone, swipe up from the bottom bar. - Dashboard: right-click (or long press, Shift+F10) on a session, profile,
recording, node or label opens its actions as a menu; Shift+right-click keeps
the browser's menu. - A keyboard shortcuts cheat-sheet in the dashboard (
?, or the overflow menu;
it opens on the current view) and the live view (Alt+H, or its menu). - Dashboard: Alt+N opens the New session dialog; a double click on New starts a
session at once, with the defaults and no start page. - Live view: Alt+Q / Alt+W stop the session (after a confirmation), Alt+D goes
back to the list of sessions.
Changed
- Dashboard: the session count in the navigation leaves out real browsers
(extension nodes); the mascot is back in the header on phones; menus use the
window's height and stay on screen. - Extension popup: "Connect a different browser" is now "Switch server", with an
icon, and "Re-pair" is "Pair again".
v0.15.6
Changed
- Live view: while connecting, the mascot sprints over hurdles (it jumps as each
one reaches it); when something went wrong, the mascot looks sad (worried brows,
a frown, a tear) instead of the warning sign. Still with reduced motion.
Fixed
- Firefox: a shared tab behind another tab of its window follows the window's
size again. Firefox resizes only the tab in front, so after the window was made
smaller and larger the live view stayed small until the tab was clicked; the
extension now warms that tab up to its window's size (or, with nobody at that
window, shows it for a moment) before capturing.
v0.15.5
Changed
- Live view, no connection: the message stays put while it retries (the retry
countdown has its own line, the waits grow from 2.5 s to 30 s), and the tab
strip, navigation, address bar and toolbars are grayed out and inert until it
connects. The session chip stays usable. - Live view, connecting: the mascot dances (it floats with reduced motion), a
progress bar follows the steps (finding the tab, attaching, setting up the
page, …), and the step with its time is on a line of its own.
Added
- Small, springy animations: the nav icon hops when its section opens and counts
pop when they change; the mascot in the rail waves on hover and hops on a click;
New's plus turns; session cards float in; empty states float; the favorite star
pops in and deflates; tiles and the live view's buttons squish when pressed
(reload turns its arrow). None with reduced motion. - The mascot in the rail or header always opens the list of sessions (it used to
reload the page, which reopened the last view). - Firefox without the companion: a focus ring shows which field or button has
focus after a click or Tab. A Firefox window in the background draws none, so
the extension draws its own; it hides while that window itself has focus. - Live view: Alt+L focuses the address bar (like Ctrl+L in a browser, which
can go to the page).
v0.15.4
Changed
- The recording player follows the app's design and theme: its bars use the
app's surfaces, controls are 44px with a round play button, the timeline is
easier to grab, and phones get two rows of controls. - Kept recordings are now favorites, marked with a star instead of a pin, in
the dashboard, the TUI (K) and the CLI (recording favorite|unfavorite, alias
fav;keepandunkeepstill work). The API field stayskeep.
Added
- A star button next to the recordings search shows only the favorites
(remembered in the browser). - Sessions get a + next to the ⋯ menu, like the other sections.
- Pinch to zoom in the recording player: two fingers zoom (up to 6×) and pan the
picture only, not the page or the controls; one finger pans while zoomed; a double
tap or the zoom pill goes back. Ctrl+wheel and a trackpad pinch zoom at the pointer. - One New for everything: a session, a profile, a browser, a daemon, an
ephemeral node or a label. On wide screens it is an entry of the rail, under the
app's icon at the top; on phones the large button in the bottom bar opens it.
Fixed
- Firefox: clicks in the live view land where you click on a zoomed page
(Ctrl++, a site's remembered zoom or display scaling). The capture shows the page at its zoom,
and input now maps back to the page's own coordinates; before, they landed off
by the zoom factor, missing buttons such as OpsGenie's modal close. - Firefox without the companion: a click whose press and release land a few
pixels apart (normal through the live view's scaled picture) is a click again,
not a tiny drag that clicked nothing. Like a browser, the click goes to the
element both were on; text is selected only by a real drag.
v0.15.3
Added
- A Settings sheet for this browser (the rail's last entry; on phones in the ⋯
menu): theme, session card layout, the search engine, the live view's defaults
(screen mode, picture, image quality, touches, sound), links to the engine
defaults and labels, public links, installing the app and About. The ⋯ menu
keeps the section's actions, Settings, Public links and Refresh.
Changed
- Session cards show their details on the picture by default; the other two
layouts stay available in Settings.
v0.15.2
Fixed
- Setting a file on an input through CDP (Playwright's
setInputFiles, the MCP's
browser_file_upload) works for files up to Playwright's 50 MB: the CDP routes
took messages of at most 64 MB and frames of 16 MB, so a larger file dropped the
connection (Playwright: "Cannot read properties of undefined (reading 'url')")
and ended a non-persistent session with its tabs. They now take 256 MB.
Changed
- The Nodes view groups daemons, ephemeral nodes and browsers (through the
extension), each a list of rows: an avatar with a status dot, the name, its
labels and one line of facts, and one button (new session, or take over).
Offline ones come last, dimmed. A row opens a sheet with the address, version,
engines, settings and the rest; a version differing from the other nodes is
flagged on the row. - Every dropdown and every row of choice buttons in the dashboard (node, engine,
screen, size, proxy, appearance, idle stop, lifetimes, profile copies, link
expiry, node and engine settings) is a dropdown in the style of the profile
picker: an icon, a label and a detail, opening a menu (a sheet on phones). - Menus share one style: 15px rows, 44px tall, 20px icons. The Labels filter sits
next to the search field (an icon on phones); selecting recordings has its own
icon. - Session cards lift and glow on hover, and keep one line of facts (who drives
it, labels, indicators) so cards line up. Three layouts can be tried under
Card style in the ⋯ menu: picture then details, details on the picture,
and compact tiles. - Profiles and Nodes have a search field like Sessions and Recordings (always
shown now), with the Labels button beside it; the label filter applies to
ephemeral nodes and browsers too, which have no labels. - A menu only reserves a column for check marks when one of its rows is checked.
v0.15.1
Fixed
browser-daemon mcplists the page tools (browser_navigate,browser_snapshot,
browser_click, …) even when the browser tools could not start yet: it lists
them as they were last seen (kept in~/.cache/browser-daemon/mcp-tools.json),
a call starts the browser, and it retries in the background. It now sends
notifications/tools/list_changedwhen the list changes (after a retry, a
browser_useor a first page tool call), as itslistChangedcapability
promised; before, a session whose first listing failed never got page tools.
Added
browser-daemon session url --tokenputs a token in the URL (&auth=) for clients
on another host that cannot send theX-Browser-Cluster-Secretheader; without it
the command says that the URL needs one of the two.