Skip to content

Add persistent browser sessions for interactive browsing#64

Open
tcdent wants to merge 5 commits intomainfrom
claude/review-agent-browser-ktHBg
Open

Add persistent browser sessions for interactive browsing#64
tcdent wants to merge 5 commits intomainfrom
claude/review-agent-browser-ktHBg

Conversation

@tcdent
Copy link
Owner

@tcdent tcdent commented Feb 6, 2026

Introduces a browser session system that allows agents to open, interact
with, and close persistent browser sessions. Sessions stay alive between
tool calls, enabling multi-step workflows like logging in, navigating,
filling forms, and extracting content.

New tools: browser_open, browser_action, browser_snapshot,
browser_list_sessions, browser_close. Replaces the fixed 10s page load
timer with document.readyState polling + network settle heuristic.

Inspired by vercel-labs/agent-browser's snapshot+ref paradigm, adapted
to codey's in-process Rust architecture (no daemon, no IPC).

https://claude.ai/code/session_01QvEcr1eaxtqwA2Ry5DGwhp

Introduces a browser session system that allows agents to open, interact
with, and close persistent browser sessions. Sessions stay alive between
tool calls, enabling multi-step workflows like logging in, navigating,
filling forms, and extracting content.

New tools: browser_open, browser_action, browser_snapshot,
browser_list_sessions, browser_close. Replaces the fixed 10s page load
timer with document.readyState polling + network settle heuristic.

Inspired by vercel-labs/agent-browser's snapshot+ref paradigm, adapted
to codey's in-process Rust architecture (no daemon, no IPC).

https://claude.ai/code/session_01QvEcr1eaxtqwA2Ry5DGwhp
Replaces the duplicate browser launch/wait/extract logic in fetch_html
with calls to session::launch_browser and session::extract_page_content.
Deletes fetch_with_browser entirely. fetch_html is now a thin wrapper:
launch → extract → tear down, using the same code path as persistent
browser sessions.

https://claude.ai/code/session_01QvEcr1eaxtqwA2Ry5DGwhp
Rebase onto main to pick up record_correction tool, declarative block
macros (define_tool_block!/define_simple_tool_block!), layered cancel,
and configurable agent name.

Converts all 5 browser session blocks from manual boilerplate to the
new macro conventions. BrowserOpenBlock uses define_tool_block! (with
params_type + agent label), the rest use define_simple_tool_block!.

https://claude.ai/code/session_01QvEcr1eaxtqwA2Ry5DGwhp
@tcdent tcdent force-pushed the claude/review-agent-browser-ktHBg branch from b41e2b7 to 8c77886 Compare February 6, 2026 23:05
- Add BrowserAction::parse() for action string + JSON params validation
- Add SessionResult::format() for consistent LLM output formatting
- Add BrowserSessionManager::action_from_raw() as the high-level API
- Add BrowserSessionManager::format_list() for list output
- Slim app.rs effect handlers to clean one-liner match arms

https://claude.ai/code/session_01QvEcr1eaxtqwA2Ry5DGwhp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants