Mastra `@mastra/core@1.27.0` adds browser automation and Tavily tools
The `@mastra/core@1.27.0` release introduces CLI-driven browser automation with live screencasts, a new `@mastra/tavily` integration package, S3 prefix mounts for workspace sandboxes, and fixes for parallel `foreach` workflow resumes and observational memory duplication.
Score breakdown
The parallel `foreach` `suspendPayload` fix directly unblocks reliable human-in-the-loop and tool-approval workflows in Mastra agents, while the new browser automation and Tavily integrations expand the out-of-the-box capabilities available to agentic pipelines.
- 01New `@mastra/browser-viewer` package launches Chrome via Playwright with remote debugging and automatic CDP URL injection for browser CLIs (`agent-browser`, `browser-use`, `browse`).
- 02Live browser screencasts stream directly to Mastra Studio; external CDP endpoints (e.g. browser-use cloud) are also supported.
- 03New `@mastra/tavily` package exposes four tools — `createTavilySearchTool`, `createTavilyExtractTool`, `createTavilyCrawlTool`, `createTavilyMapTool` — with full Zod schemas.
The `@mastra/core@1.27.0` release, authored by PaulieScanlon and published April 24, 2026, centers on two major additions. First, CLI-driven browser automation arrives via `@mastra/core` and the new `@mastra/browser-viewer` package. `BrowserViewer` launches Chrome through Playwright with remote debugging, while `BrowserCliHandler` automatically detects browser CLIs (`agent-browser`, `browser-use`, `browse`) and injects the CDP URL into commands without manual wiring. Sessions are thread-isolated with automatic lifecycle management, live screencasts stream directly to Studio, and external CDP endpoints such as browser-use cloud are also supported. Second, the new `@mastra/tavily` package wraps `@tavily/core` as four first-class Mastra tools — `createTavilySearchTool`, `createTavilyExtractTool`, `createTavilyCrawlTool`, and `createTavilyMapTool` — each with full Zod input/output schemas and lazy client initialization. A convenience `createTavilyTools()` function returns all four with shared config, and the API key resolves from config or the `TAVILY_API_KEY` environment variable.
Suspended iterations now retain their `suspendPayload` across resume cycles, while completed iterations still have it cleared to keep snapshots compact.
On the bug-fix side, a significant workflow correctness issue is resolved: in parallel `foreach` iterations, resuming one sibling previously cleared the `suspendPayload` on all other suspended iterations, causing them to lose context such as `__streamState` needed for tool-call approvals. Suspended iterations now retain their `suspendPayload` across resume cycles, while completed iterations still have it cleared to keep snapshots compact. Observational memory also receives two improvements: a new opt-in `observationalMemory.temporalMarkers: true` flag injects a persisted time-gap marker before any user message arriving more than 10 minutes after the previous one, and `savePerStep` is now force-disabled when observational memory is enabled to prevent message duplication caused by the two features conflicting. Additionally, workspace packages `@mastra/s3`, `@mastra/daytona`, `@mastra/e2b`, and `@mastra/blaxel` gain a `prefix` option for mounting an S3 subdirectory rather than an entire bucket. No breaking changes are noted in this release.
Key facts
- 01New `@mastra/browser-viewer` package launches Chrome via Playwright with remote debugging and automatic CDP URL injection for browser CLIs (`agent-browser`, `browser-use`, `browse`).
- 02Live browser screencasts stream directly to Mastra Studio; external CDP endpoints (e.g. browser-use cloud) are also supported.
- 03New `@mastra/tavily` package exposes four tools — `createTavilySearchTool`, `createTavilyExtractTool`, `createTavilyCrawlTool`, `createTavilyMapTool` — with full Zod schemas.
- 04A `createTavilyTools()` convenience function returns all four Tavily tools with shared config; API key resolves from config or `TAVILY_API_KEY` env var.
- 05Bug fix: parallel `foreach` iterations no longer lose their `suspendPayload` when a sibling iteration is resumed, preserving per-iteration stream state for HITL/tool-approval flows.
- 06Opt-in `observationalMemory.temporalMarkers: true` injects a time-gap marker before user messages arriving more than 10 minutes after the previous one.
- 07`@mastra/s3`, `@mastra/daytona`, `@mastra/e2b`, and `@mastra/blaxel` now support a `prefix` option to mount an S3 subdirectory instead of an entire bucket.
Topics
Summary and scoring are generated automatically from the original article. We always link back to the publisher and never republish images or paywalled content. Last processed Apr 25, 2026 · 21:38 UTC. How this works →