Navigate
Go anywhere on the web
navigate("https://...")bun add @tidesurf/core
Ship production apps with clear docs and stable endpoints.
<nav class="site-nav">
<a href="/docs">Docs</a>
<a href="/pricing">Pricing</a>
<button aria-label="start">Get started</button>
<input placeholder="Your email" />
<section class="features">Fast Secure Scalable</section>
</nav>
# example.com
L1 [LINK] Docs /docs
L2 [LINK] Pricing /pricing
B2 [BUTTON] Get started
I1 [INPUT email] Your email
S1 [SECTION] Fast / Secure / Scalable
Same page. Fewer tokens. Stable IDs remain visible so the agent can act without pixels.
<nav class="main-nav">
<a id="docs" href="/docs">Docs</a>
<a id="blog" href="/blog">Blog</a>
<button class="primary">Start</button>
</nav>
# example.com
URL: https://example.com/
---
L1 [LINK] Docs /docs
L2 [LINK] Blog /blog
B1 [BUTTON] Start /start
Three lines to browse. One tool call to act.
const state = await browser.getState()
state.content -> LLM
await browser.click("L3")
MAIN
HEADING Issues
[L1] Pull requests
[L2] Actions
[L3] Latest issue title
[B1] New issue
Direct CDP tools, token budgets, tab lifecycle, extraction, and MCP wiring in one small TypeScript surface.
Go anywhere on the web
navigate("https://...")Click, type, select, scroll
click("B1"), type("I1")Read precise page content
extract({ selector })Keep output within token limits
getState({ maxTokens })Create, switch, close
newTab(), switchTab()Expose tools to Codex agents
bunx tidesurf mcpconst browser = await TideSurf.launch({
readOnly: true,
allowedOrigins: ["example.com"],
maxTokens: 500
})
Launch a browser, connect to an existing Chrome, or expose TideSurf through MCP.
$ npm install @tidesurf/core
const browser = await TideSurf.launch()
await browser.navigate(
"https://example.com"
)
const state = await browser.getState()
$ npm install @tidesurf/core
const browser = await TideSurf.connect()
await browser.switchTab(0)
const state = await browser.getState({
maxTokens: 500
})
$ bunx tidesurf mcp
{
"mcpServers": {
"tidesurf": {
"command": "bunx",
"args": [
"tidesurf",
"mcp"
]
}
}
}