From d7688e62a8a4b611f8a4bc6e1fbc87e4ec1b8fb3 Mon Sep 17 00:00:00 2001 From: andrewleesteele <8799863+andrewleesteele@users.noreply.github.com> Date: Wed, 7 Oct 2026 18:22:45 +0000 Subject: [PATCH] Restructure Start building: quickstart, skills, integrations, cookbooks Co-Authored-By: Claude Opus 5.5 --- cookbooks.mdx | 102 +++++++------ docs.json | 123 ++------------- images/integration-icons/openagi.svg | 4 + images/integration-icons/openai.svg | 1 + images/integration-icons/tzafon.svg | 3 + images/integration-icons/yutori.png | Bin 0 -> 1579 bytes integrations/claude/overview.mdx | 2 +- integrations/computer-use/overview.mdx | 2 +- integrations/openai/agents-sdk.mdx | 50 +++++++ integrations/openai/codex.mdx | 35 +++++ integrations/overview.mdx | 190 ++++++++++++++++++------ integrations/stripe-projects.mdx | 2 +- integrations/vercel/foreman.mdx | 86 ----------- integrations/vercel/overview.mdx | 2 +- skills/overview.mdx | 57 +++++-- start/quickstart.mdx | 197 +++++++++++++++++++++++++ style.css | 5 + 17 files changed, 566 insertions(+), 295 deletions(-) create mode 100644 images/integration-icons/openagi.svg create mode 100644 images/integration-icons/openai.svg create mode 100644 images/integration-icons/tzafon.svg create mode 100644 images/integration-icons/yutori.png create mode 100644 integrations/openai/agents-sdk.mdx create mode 100644 integrations/openai/codex.mdx delete mode 100644 integrations/vercel/foreman.mdx create mode 100644 start/quickstart.mdx diff --git a/cookbooks.mdx b/cookbooks.mdx index bbdea841..d21a0b8d 100644 --- a/cookbooks.mdx +++ b/cookbooks.mdx @@ -1,5 +1,6 @@ --- title: "cookbooks" +sidebarTitle: "Cookbooks" description: "end-to-end recipes to teach agents to use the internet" mode: "wide" --- @@ -13,22 +14,22 @@ import { CookbookSearch } from '/snippets/cookbook-search.jsx'; ## Common patterns - -
common patterns
- Collect credentials from a human, then let your agent fill the form. -
- -
common patterns
- Enable Payments in a Browser Agent. -
common patterns
Using Playwright with computer use fallback.
+ +
common patterns
+ Collect credentials from a human, then let your agent fill the form. +
common patterns
Use WebMCP for supported page actions and Browser REPL helpers for everything else.
+ +
common patterns
+ Enable Payments in a Browser Agent. +
common patterns
Hold an agent while Kernel's captcha solver works, and tell it what actually happened. @@ -37,77 +38,94 @@ import { CookbookSearch } from '/snippets/cookbook-search.jsx'; ## Harnesses & models +### Computer use models + - +
harnesses & models
- Run a browser use loop with Jev System One. + Minimal implementation of Anthropic's computer use loop.
- +
harnesses & models
- Browser automation with the Vercel AI SDK and KERNEL's Playwright execution API. + Computer use agent with Google's Gemini 2.5 and Stagehand. +
+ +
harnesses & models
+ Run the Browser Use bu-1.0 model on KERNEL browser infrastructure. +
+ +
harnesses & models
+ Run a browser use loop with Jev System One.
harnesses & models
RL training for computer use agents, using Tinker.
- +
+ +### Agent and automation frameworks + + +
harnesses & models
- Human-in-the-loop web task assistant with memory, built on Mastra. + Browser automation with the Vercel AI SDK and KERNEL's Playwright execution API.
- +
harnesses & models
- Host a Jev browser use agent on Val Town. + Human-in-the-loop web task assistant with memory, built on Mastra.
- +
harnesses & models
- Run parallel computer-use agent swarms, with API keys secured via Vaults. + Run agentic and deterministic end-to-end checks in a KERNEL browser with e2e.
- +
harnesses & models
- QA your PR previews with Claude computer use on Modal, recorded with Replays. + Vibium browser automation over WebDriver BiDi.
- +
+ +### Hosted agents + + +
harnesses & models
- Run the Browser Use bu-1.0 model on KERNEL browser infrastructure. + Run parallel computer-use agent swarms, with API keys secured via Vaults.
harnesses & models
Build a browser agent with eve and KERNEL managed auth.
- +
harnesses & models
- Computer use agent with Google's Gemini 2.5 and Stagehand. + Build a Link and Eve agent that browses with KERNEL and uses a Link wallet for approved purchases.
- +
harnesses & models
- Minimal implementation of Anthropic's computer use loop. + Give Vercel foreman access to a KERNEL browser for QA.
- +
harnesses & models
- Vibium browser automation over WebDriver BiDi. + Run Vercel's fx agent inside a KERNEL browser VM, co-located with the browser it drives.
- +
+ +### Sandboxes and platforms + + +
harnesses & models
- Scrape JS-rendered pages behind a login, on Modal with a KERNEL browser. + QA your PR previews with Claude computer use on Modal, recorded with Replays.
- +
harnesses & models
- Give Vercel foreman access to a KERNEL browser for QA. + Scrape JS-rendered pages behind a login, on Modal with a KERNEL browser.
harnesses & models
Connect e2b sandboxes with KERNEL browsers.
- -
harnesses & models
- Run Vercel's fx agent inside a KERNEL browser VM, co-located with the browser it drives. -
- -
harnesses & models
- Run agentic and deterministic end-to-end checks in a KERNEL browser with e2e. -
- +
harnesses & models
- Build a Link and Eve agent that browses with KERNEL and uses a Link wallet for approved purchases. + Host a Jev browser use agent on Val Town.
diff --git a/docs.json b/docs.json index 436975ca..34ee5fea 100644 --- a/docs.json +++ b/docs.json @@ -8,6 +8,7 @@ { "source": "/careers/customer-engineer", "destination": "https://jobs.ashbyhq.com/usekernel" }, { "source": "/browsers/bot-detection/hcaptcha", "destination": "/browsers/bot-detection/stealth#hcaptcha-beta" }, { "source": "/apps/secrets", "destination": "/apps/deploy#secrets" }, + { "source": "/integrations/vercel/foreman", "destination": "/cookbooks/eve-foreman" }, { "source": "/apps/stop", "destination": "/apps/invoke#stop-an-invocation" }, { "source": "/auth/agent/overview", "destination": "/auth/managed-auth" }, { "source": "/auth/agent/hosted-ui", "destination": "/auth/hosted-ui" }, @@ -46,7 +47,7 @@ { "source": "/browsers/pools/overview", "destination": "/browsers/pools" }, { "source": "/browsers/pools/faq", "destination": "/browsers/pools" }, { "source": "/introduction", "destination": "/" }, - { "source": "/quickstart", "destination": "/" }, + { "source": "/quickstart", "destination": "/start/quickstart" }, { "source": "/home", "destination": "/" }, { "source": "/llm.md", "destination": "/integrations/stripe-projects" }, { "source": "/llm-browser.md", "destination": "/integrations/stripe-projects-browser" }, @@ -121,6 +122,15 @@ "index" ] }, + { + "group": "Start building", + "pages": [ + "start/quickstart", + "skills/overview", + "integrations/overview", + "cookbooks" + ] + }, { "group": "How it works", "pages": [ @@ -275,78 +285,6 @@ } ] }, - { - "group": "Integrations", - "pages": [ - "integrations/overview", - "integrations/browser-use", - { - "group": "Claude", - "icon": "/images/integration-icons/claude.svg", - "pages": [ - "integrations/claude/overview", - "integrations/claude/claude-code-and-desktop", - "integrations/claude/claude-agent-sdk", - "integrations/claude/claude-managed-agents" - ] - }, - { - "group": "Computer Use Models", - "icon": "/images/integration-icons/computer-cursor-rounded.svg", - "pages": [ - "integrations/computer-use/overview", - "integrations/computer-use/anthropic", - "integrations/computer-use/gemini", - "integrations/computer-use/openagi", - "integrations/computer-use/openai", - "integrations/computer-use/tzafon", - "integrations/computer-use/yutori" - ] - }, - "integrations/docker-sandboxes", - "integrations/e2e", - "integrations/hermes-agent", - "integrations/laminar", - "integrations/replit", - "integrations/stagehand", - { - "group": "Stripe Projects", - "icon": "/images/integration-icons/stripe.svg", - "pages": [ - "integrations/stripe-projects", - "integrations/stripe-projects-browser" - ] - }, - "integrations/terraform", - "integrations/valtown", - { - "group": "Vercel", - "icon": "/images/integration-icons/vercel.svg", - "pages": [ - "integrations/vercel/overview", - "integrations/vercel/agent-browser", - "integrations/vercel/ai-sdk", - "integrations/vercel/marketplace", - "integrations/vercel/eve-extension", - "integrations/vercel/foreman", - "integrations/vercel/fx" - ] - }, - "integrations/vibium", - "integrations/1password" - ] - }, - { - "group": "Agent Skills", - "pages": [ - "skills/overview", - "skills/kernel-cli", - "skills/bot-detection", - "skills/profiles", - "skills/kernel-auth", - "skills/create-site-skills" - ] - }, { "group": "Community", "pages": [ @@ -372,45 +310,6 @@ "tab": "API Reference", "openapi": "https://api.onkernel.com/spec.json" }, - { - "tab": "Cookbooks", - "pages": [ - "cookbooks", - { - "group": "Common Patterns", - "pages": [ - "browsers/playwright-computer-use-fallback", - "browsers/code-mode-webmcp", - "browsers/telemetry/pausing-for-captcha-solves", - "browsers/enable-payments-in-browser-agent", - "browsers/use-vault-credentials-in-browser-agent" - ] - }, - { - "group": "Harnesses & Models", - "pages": [ - "cookbooks/ai-sdk-agent", - "cookbooks/browser-use-model", - "cookbooks/claude-managed-agents", - "cookbooks/claude-computer-use-loop", - "cookbooks/e2b", - "cookbooks/e2e-kernel", - "cookbooks/eve-foreman", - "cookbooks/eve-managed-auth", - "cookbooks/fx-colocated-agent", - "cookbooks/jev-browser-use", - "cookbooks/jev-browser-use-val-town", - "cookbooks/mastra-web-task-assistant", - "cookbooks/modal-web-scraper", - "cookbooks/modal-pr-qa-agent", - "cookbooks/personal-shopper", - "cookbooks/stagehand-google-cua-agent", - "cookbooks/tinker-rl", - "cookbooks/vibium" - ] - } - ] - }, { "tab": "CLI", "groups": [ diff --git a/images/integration-icons/openagi.svg b/images/integration-icons/openagi.svg new file mode 100644 index 00000000..ab1d37e7 --- /dev/null +++ b/images/integration-icons/openagi.svg @@ -0,0 +1,4 @@ + + + + diff --git a/images/integration-icons/openai.svg b/images/integration-icons/openai.svg new file mode 100644 index 00000000..887c1f49 --- /dev/null +++ b/images/integration-icons/openai.svg @@ -0,0 +1 @@ +OpenAI \ No newline at end of file diff --git a/images/integration-icons/tzafon.svg b/images/integration-icons/tzafon.svg new file mode 100644 index 00000000..7a93f6b7 --- /dev/null +++ b/images/integration-icons/tzafon.svg @@ -0,0 +1,3 @@ + + + diff --git a/images/integration-icons/yutori.png b/images/integration-icons/yutori.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5e30e5806df4f4638016ffdaf6d8586df8b507 GIT binary patch literal 1579 zcmV+`2Gse9P)000H@Nkl zJ#O4a7>3^s+$MlivtYp+#DKO)kqg*>bC48K5d&${xJUqBBnGSl*kuC5H(y@%!v7Q$sp{qiz#nt} z(|7G|`uqJa34$*sR?wxYn|}a&x#TmWqur3eV#!Cm>bv&!#xx3NSR;5!-?cj_(Ia<# z*S-)+>*|s6(s%7{xAogHm$-DA*MeZ+jU09gi9VnRPe&{006<;zND+P>O~E5yXeK_T zs+-SNU#cinb@S6uC#sSG9Ha+h$y|Gc8`t^XP4vjM3HJ)BC&SNsTv%z*V!ZI&gw>vP&lK58z#3pXWdbDnb3L7THTHKtT` z^CN&?O-htNB;f>saqyg;WN+XGKn&@_{ zk3|F4)zRTNFTBSyx*e~7-*@ewOFy)^q6nIG^Qo9q6mPmtv54>%ZWY}Ql0~{H@yhWO zt|_~!n|A=7Yo&hz(N#jtit!RIzKm)e#Ts8&_2$k?xKw3XO4e+V%toyd?|B=RdDTdI z3Fgz22oYl03Rw*zUFM+{%Y_>xXSs*YbvaS1Qj6rrP^=qERxq<<&y_s0U7&Le6>uw* z&SG+x43I?hl(m&kEScg444r6T`3(bB$=*>sg{B~+JpA}nt1FQrlxR}PBjR0&Bw<98OP>8Z17SoUEhLtZA5Rn-#X?kwgzrNXwiMw ze(#vK$QroS)?gRWjQgG)`Pm{9uZVu{lrJMMEi&;ET?S&tMDC+K=Fi74lp%@8q8a$b zy8x*a(N{tdy^U|Z3y?|?y^Zg@3y?}=(G1TuF_a;R$f64i@DlC0M$LxF6wOQYYo~k} z`CyTWi|AZ7#Y!XVCb?@QT2V%QStGc;S=$Fm6Ah}00!24Pw)^e@kiFJl&I6z^g zX%w~ML|>8T!kD0lXux#Z^7i;fg7!+$uv`nJXn?1Jw!m}^w4wp7 zidq5H*`d^;fv~b~*)~>$sl-5|@n?P4e)KNHF=0dl{IZ!_ANrEVt=Ok%j0fIqeFOBy`~~QPs^m0MA!`{I2iX d7n0@i +This is a starter guide. A full walkthrough is coming. + + +The [OpenAI Agents SDK](https://openai.github.io/openai-agents-python/) is OpenAI's framework for building agents. The quickest way to give an agent a KERNEL browser is to connect it to the [KERNEL MCP server](/reference/mcp-server), which exposes browser creation, Playwright execution, screenshots, and computer controls as tools. + +## Install + +```bash +pip install openai-agents +``` + +Set `OPENAI_API_KEY` and `KERNEL_API_KEY` in your environment. + +## Connect an agent to KERNEL + +```python Python +import asyncio +import os + +from agents import Agent, Runner +from agents.mcp import MCPServerStreamableHttp + + +async def main(): + async with MCPServerStreamableHttp( + name="kernel", + params={ + "url": "https://mcp.onkernel.com/mcp", + "headers": {"Authorization": f"Bearer {os.environ['KERNEL_API_KEY']}"}, + }, + ) as kernel: + agent = Agent( + name="Browser agent", + instructions="Use the KERNEL tools to create a browser, do the task, then delete the browser.", + mcp_servers=[kernel], + ) + result = await Runner.run(agent, "Go to news.ycombinator.com and list the top 5 story titles.") + print(result.final_output) + + +asyncio.run(main()) +``` + +The MCP server accepts your KERNEL API key as a bearer token. See [MCP authentication](/reference/mcp-server/authentication). diff --git a/integrations/openai/codex.mdx b/integrations/openai/codex.mdx new file mode 100644 index 00000000..18bdcc51 --- /dev/null +++ b/integrations/openai/codex.mdx @@ -0,0 +1,35 @@ +--- +title: "Codex" +description: "Give OpenAI's Codex a KERNEL browser" +--- + + +This is a starter guide. A full walkthrough is coming. + + +[Codex](https://developers.openai.com/codex) is OpenAI's coding agent. You can give it KERNEL know-how with the KERNEL plugin, and KERNEL browsers as tools with the KERNEL MCP server. Use either or both. + +## Install the KERNEL plugin + +The plugin adds [Agent Skills](/skills/overview) for the KERNEL CLI and SDKs, so Codex knows how to create and drive browsers. + +```bash +codex plugin marketplace add kernel/skills +codex plugin add kernel-cli@kernel +codex plugin add kernel-sdks@kernel +``` + +You can also find the KERNEL plugins under **Plugins** in the ChatGPT desktop app after adding the marketplace. + +## Connect the MCP server + +The [KERNEL MCP server](/reference/mcp-server) gives Codex tools to create browsers, run Playwright code, take screenshots, and more. + +```bash +codex mcp add kernel --url https://mcp.onkernel.com/mcp +codex mcp login kernel +``` + +`codex mcp login` opens your browser so you can authorize access to your KERNEL account. To use an API key instead, see [MCP authentication](/reference/mcp-server/authentication). + +Start a Codex session and run `/mcp` to confirm the KERNEL tools are available. diff --git a/integrations/overview.mdx b/integrations/overview.mdx index 2b4af56c..3e74f71e 100644 --- a/integrations/overview.mdx +++ b/integrations/overview.mdx @@ -1,57 +1,163 @@ --- -title: "Overview" +title: "Integrations" +sidebarTitle: "Integrations" +description: "Run Kernel browsers from the agent frameworks, models, and platforms you already use" +mode: "wide" --- -Kernel's browsers are compatible with all browser and Computer Use frameworks. +Kernel browsers work with any tool that speaks the Chrome DevTools Protocol or WebDriver BiDi. The guides below cover the integrations with first-class support. For anything else, see [how you drive the browser](/introduction/control). For every integration from one vendor on one page, see [Claude](/integrations/claude/overview) and [Vercel](/integrations/vercel/overview). -## Universal CDP compatibility + + + +## Add a browser to an agent you already use -Kernel browsers work with any framework or tool that supports the Chrome DevTools Protocol (CDP). This means you can: +Give a finished agent or coding tool a Kernel browser, usually through MCP, a plugin, or a config setting. You don't write the loop. -- **Use any agent framework**: Integrate with popular frameworks like Browser Use, Stagehand, Playwright, Puppeteer, Selenium, and more -- **Connect via CDP**: All browsers expose a CDP WebSocket URL for direct connection -- **No vendor lock-in**: Switch between frameworks or use multiple frameworks simultaneously -- **Standard protocols**: Built on open standards that work with the entire browser automation ecosystem + + + Give Claude Code and Claude Desktop a Kernel browser. + + + Run Anthropic's hosted agent harness against Kernel browsers. + + + Give OpenAI's Codex a Kernel browser with the Kernel plugin and MCP server. + + + Give Replit Agent a Kernel browser. + + + Give your Vercel Eve agent a Kernel browser. + + + Give Vercel's fx coding agent a Kernel browser over MCP. + + + Run Hermes Agent browser tools on Kernel browsers. + + -## Computer Use +## Build your own agent -For vision-language models (VLMs) that predict browser actions from screenshots, Kernel provides [Computer Controls APIs](/browsers/computer-controls) that enable direct mouse, keyboard, and screen interactions. These low-level controls let you: +Agent frameworks for writing the loop yourself, with a Kernel browser as one of its tools. -- Capture screenshots to send to your VLM -- Execute predicted actions (clicks, typing, scrolling, dragging) -- Build custom agentic loops with any VLM provider + + + Build Claude agents that drive Kernel browsers with playwright execution. + + + Connect agents built with the OpenAI Agents SDK to Kernel browsers over MCP. + + + Give AI SDK agents Kernel browser tools. + + -This approach works with any computer use model, including Anthropic Claude, OpenAI CUA, Google Gemini, and others. + +## Computer use models -## Popular Framework Integrations +Run a vision model's screenshot-and-act loop against a Kernel browser. See the [computer use overview](/integrations/computer-use/overview) for how the loop works. -Kernel provides detailed guides for popular agent frameworks: + + + Claude computer use. + + + OpenAI computer-using agent. + + + Gemini 2.5 Computer Use. + + + Yutori Navigator n1.5 pixels-to-actions model. + + + OpenAGI Lux computer use model. + + + Tzafon Northstar CUA Fast. + + -- **[Agent Browser](/integrations/vercel/agent-browser)** - Browser automation CLI for AI agents -- **[fx](/integrations/vercel/fx)** - Give Vercel's fx coding agent a Kernel cloud browser via MCP -- **[Browser Use](/integrations/browser-use)** - AI browser agent framework -- **[e2e](/integrations/e2e)** - Run agentic end-to-end tests in Kernel cloud browsers -- **[Hermes Agent](/integrations/hermes-agent)** - Run Hermes browser tools on Kernel cloud browsers -- **[Claude Code and Desktop](/integrations/claude/claude-code-and-desktop)** - Give the Claude apps a Kernel browser via the marketplace plugin or MCP -- **[Claude Agent SDK](/integrations/claude/claude-agent-sdk)** - Run Claude Agent SDK automations in cloud browsers -- **[Claude Managed Agents](/integrations/claude/claude-managed-agents)** - Run Anthropic's hosted agent harness against cloud browsers -- **[Docker Sandboxes](/integrations/docker-sandboxes)** - Give agents in Docker Sandboxes a Kernel cloud browser with the Kernel kit -- **[Replit](/integrations/replit)** - Give Replit Agent a Kernel cloud browser -- **[Stagehand](/integrations/stagehand)** - AI browser automation with natural language -- **[Terraform](/integrations/terraform)** - Manage durable Kernel infrastructure as code -- **[Computer Use (Anthropic)](/integrations/computer-use/anthropic)** - Claude's computer use capability -- **[Computer Use (OpenAI)](/integrations/computer-use/openai)** - OpenAI's computer use capability -- **[Computer Use (Gemini)](/integrations/computer-use/gemini)** - Gemini's computer use capability -- **[Computer Use (OpenAGI)](/integrations/computer-use/openagi)** - OpenAGI's computer use capability -- **[Computer Use (Yutori)](/integrations/computer-use/yutori)** - Yutori Navigator n1.5 pixels-to-actions model -- **[Laminar](/integrations/laminar)** - Observability and tracing for AI browser automations -- **[wallets](/integrations/wallets/overview)** - connect payment methods through native wallet integrations -- **[Val Town](/integrations/valtown)** - Serverless function runtime -- **[Stripe Projects](/integrations/stripe-projects)** - Provision Kernel plans and API keys via the Stripe Projects CLI -- **[Vercel](https://github.com/onkernel/vercel-template)** - Deploy browser automations to Vercel -- **[Web Bot Authentication](/browsers/bot-detection/web-bot-auth)** - Create signed Chrome extensions for web bot authentication -- **[1Password](/integrations/1password)** - Use credentials from your 1Password vaults for Managed Auth +## Browser automation frameworks -## Custom Integrations +Drive the page itself — navigate, click, fill, extract — against a Kernel browser. -Kernel works with any tool that supports CDP. Check out our [browser control guide](/introduction/control) to learn how to connect any other agent framework. + + + Run Playwright code inside the browser's VM, or connect over CDP. + + + Vercel's browser automation CLI for AI agents. + + + Mix code and natural language browser automation on Kernel. + + + Drive Kernel browsers with a WebDriver BiDi automation framework. + + + Run agentic and deterministic end-to-end tests in Kernel browsers. + + + Run Browser Use agents on Kernel browsers. + + + +## Credentials, identity, and payments + +Give the browser what it needs to log in, prove who it is, and check out, without handing secrets to your agent. See [authentication](/auth/overview) and [payments](/browsers/payments) for how these work end to end. + + + + Use credentials from your 1Password vaults. + + + Approve a one-use payment credential for a browser checkout. + + + Approve browser checkouts against an enrolled payment method. + + + Sign your agent's requests with Cloudflare's Web Bot Auth, so participating sites can verify its identity. + + + +## Deploy and provision + +Provision and run Kernel from the platforms you deploy on. + + + + Add Kernel to a Vercel project through the Marketplace. + + + Deploy browser automations to Vercel from a starter template. + + + Provision Kernel browsers and plans with the Stripe Projects CLI. + + + Manage durable Kernel infrastructure with Terraform. + + + Run browser automations from Val Town's serverless runtime. + + + Give agents running in Docker Sandboxes a Kernel browser. + + + +## Observability + +Send traces, evaluations, and browser telemetry to the tools you already monitor with. + + + + Trace and evaluate browser agents with Laminar. + + + Export a session's telemetry events to any OTLP/HTTP backend. + + diff --git a/integrations/stripe-projects.mdx b/integrations/stripe-projects.mdx index 2adc066e..fd1caef3 100644 --- a/integrations/stripe-projects.mdx +++ b/integrations/stripe-projects.mdx @@ -1,5 +1,5 @@ --- -title: "Overview" +title: "Stripe Projects" description: "Provision Kernel cloud browsers and plans through the Stripe Projects CLI" --- diff --git a/integrations/vercel/foreman.mdx b/integrations/vercel/foreman.mdx deleted file mode 100644 index 4da727ae..00000000 --- a/integrations/vercel/foreman.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Foreman" -description: "Give your Foreman agent a Kernel cloud browser" ---- - -## Overview - -[Foreman](https://ask-foreman.dev) is a free, open-source software factory: specialized AI agents classify, plan, implement, and review work pulled from GitHub issues, Linear, CI failures, and more, then push draft PRs for a human to approve. Nothing ships without you — Foreman stops at the draft PR. - -Foreman is built on [Vercel Eve](https://vercel.com/eve), so it mounts extensions the same way any Eve agent does. - -### Foreman + Kernel - -Mounting Kernel's [Eve extension](/integrations/vercel/eve-extension) gives Foreman's implementation agent a real cloud browser, so it can go beyond reading code to reproduce bugs and verify fixes in flows that only break behind authentication: - -- **Sign-in, not just code review** — the agent drives an authenticated browser session to reproduce the bug the way a signed-in user would hit it. -- **Per-user identity** — each teammate authenticates through their own Vercel Connect consent, so the browser acts as them rather than a shared credential. -- **An approval gate** — Foreman parks its first browser action per session for the person driving it, before it acts inside a logged-in session. - -### Steps - -1. **Install the software factory template** — deploy [`vercel-labs/eve-software-factory-template`](https://github.com/vercel-labs/eve-software-factory-template) so Foreman is running against your repo. -2. **Add the Kernel extension** — run `eve add extension/kernel` to mount `@onkernel/eve-extension`. -3. **Add a sign-in approval gate** — wire the browser connection through Vercel Connect so it authenticates as you, and require your approval before its first action in a signed-in session, via Eve's `once()` approval (`eve/tools/approval`). That's what lets the implementation agent reproduce a bug behind auth instead of just reading the code. - - -Do not mount the Kernel extension under `agent/subagents/`. Stations run in task mode and cannot park for a consent prompt, an approval card, or a sign-in hand-off. - - -The copy prompt below drives your coding agent through steps 2 and 3. - -## Quickstart prompt - -import { CopyPromptButton } from '/snippets/copy-prompt-button.jsx'; - -Paste this into your coding agent to add the Kernel browser to your Foreman repo. It registers the `@onkernel/eve-extension` mount, wires it to Vercel Connect instead of an API key, shadows the browser connection with an approval gate, and holds the tool allowlist to the seven tools it ships with. - - - -## Related - -- [Eve Extension](/integrations/vercel/eve-extension) -- [Vercel Marketplace Integration](/integrations/vercel/marketplace) -- [Managed Auth](/auth/managed-auth) diff --git a/integrations/vercel/overview.mdx b/integrations/vercel/overview.mdx index b42b31a9..4d849a87 100644 --- a/integrations/vercel/overview.mdx +++ b/integrations/vercel/overview.mdx @@ -1,5 +1,5 @@ --- -title: "Overview" +title: "Vercel" description: "Integrate Kernel with Vercel for seamless browser automation in your web applications" --- diff --git a/skills/overview.mdx b/skills/overview.mdx index d0f1df5e..5cabdfe2 100644 --- a/skills/overview.mdx +++ b/skills/overview.mdx @@ -1,15 +1,54 @@ --- -title: "Overview" +title: "Agent Skills" +sidebarTitle: "Agent Skills" +description: "Kernel skills that teach your coding agent how to use cloud browsers" +mode: "wide" --- -Kernel offers a suite of agent skills that can be used to debug your development workflows and give your browser agents runtime superpowers. +Skills give your coding agent Kernel know-how it keeps across sessions, so it doesn't have to re-read the docs every time. Install every Kernel skill into your project: -If you're building an agent that needs to access the internet, check out the [Kernel CLI skill](https://www.skills.sh/kernel/skills/kernel-cli). It gives your agent a direct path to Kernel's browser, proxy, profile, and authentication capabilities. It's a great starting point for users building custom agent harnesses. +```bash +npx skills add kernel/skills +``` -Especially useful skills: -- [Bot Detection](/skills/bot-detection) — teaches your agent how to profile a site's bot-detection setup and land on a browser configuration that gets through it. -- [Browser Profiles](/skills/profiles) — teaches your agent how to compare the actual contents of two Kernel browser profiles to identify state differences that could explain a reported issue. -- [Kernel Auth](/skills/kernel-auth) — teaches your agent best practices for using managed auth to log in to websites. -- [Create Site Skills](/skills/create-site-skills) — teaches your agent how to turn a verified browser workflow into a reusable skill for automating a specific site. +This works with any coding agent. To install KERNEL as your agent's native plugin instead, ask your agent to follow the install steps for itself in [kernel/skills](https://github.com/kernel/skills). -View Kernel's full list of available skills [here](https://skills.sh/kernel/skills). +## Most installed + + + + Best practices for using agent-browser with Kernel cloud browsers. + + + Manage browsers, pools, profiles, proxies, replays, extensions, managed auth, and app deployment from the CLI. + + + Build browser automation in TypeScript with playwright execution or CDP, profiles, and proxies. + + + Profile a site's bot-detection vendors and find a browser configuration that gets through. + + + Use managed auth to log in to websites that require an authenticated session. + + + Build and debug Python browser automation with the Kernel SDK. + + + +## More skills + + + + Turn a verified browser workflow into a reusable skill for automating a specific site. + + + Debug VM issues, network errors, Chrome crashes, page-load failures, and live view problems. + + + Best practices for using browser-use's browser-harness with Kernel over CDP. + + + Compare two profile snapshots to find state differences that explain an issue. + + diff --git a/start/quickstart.mdx b/start/quickstart.mdx new file mode 100644 index 00000000..4528ccea --- /dev/null +++ b/start/quickstart.mdx @@ -0,0 +1,197 @@ +--- +title: "Quickstart" +description: "Hand setup to your coding agent, or create your first cloud browser yourself" +mode: "wide" +--- + +import { CopyPromptButton } from '/snippets/copy-prompt-button.jsx'; + +Pick the way in that matches how you work. The first two are walked through on this page; the rest open their own guides. + + + + Copy one prompt into Cursor, Claude Code, or Codex and let it set up KERNEL. + + + Create and drive your first browser in TypeScript, Python, or Go. + + + Call KERNEL over HTTP from any language, starting with creating a browser. + + + Create, drive, and debug browsers from a terminal. + + + Give any MCP client, like Claude or Cursor, a cloud browser as a set of tools. + + + Teach your coding agent the KERNEL CLI, SDKs, and auth with one install. + + + Guides for the agent frameworks, models, and platforms you already use. + + + Clone an end-to-end recipe and adapt it to your task. + + + +## Path 1: hand it to your coding agent + +Copy this prompt into Claude Code, Codex, Cursor, or any agent that can run terminal commands. It installs the KERNEL CLI, signs you in, and opens a live view of a KERNEL browser that you or your agent can drive. From there, ask your agent to do a task on a site you care about. + +
+ +
+ + + +1. Checks for the KERNEL CLI and installs or upgrades it with Homebrew. +2. Checks whether you're signed in, and if not, runs `kernel login` and waits for you to finish signing in. +3. Creates a browser and opens its live view so you can watch it. + +It stops and asks you for help if any step fails. + + +| Surface | What it's for | +| --- | --- | +| [`kernel.sh/llms.txt`](https://www.kernel.sh/llms.txt) | Hand-written. What KERNEL is, when to use it, every machine endpoint. Start here. | +| [`kernel.sh/docs/llms.txt`](https://www.kernel.sh/docs/llms.txt) | Index of every docs page, for fetching the ones a task needs. | +| [`kernel.sh/docs/llms-full.txt`](https://www.kernel.sh/docs/llms-full.txt) | The whole docs corpus in one file, for agents with room for it. | +| [Agent Skills](/skills/overview) | KERNEL know-how installed into the agent, so it doesn't re-read docs every session. | +| [MCP server](/reference/mcp-server) | KERNEL's API as tools, for agents that call tools instead of writing code. | +| [OpenAPI 3.1](https://www.kernel.sh/openapi.json) | For generating a client or calling the REST API directly. | + + + +## Path 2: write it yourself with an SDK + + + +Create an API key in the [dashboard](https://dashboard.onkernel.com) and set it as `KERNEL_API_KEY`. Every SDK, the CLI, and the MCP server read it from the environment. + +```bash +export KERNEL_API_KEY= +``` + + + + +```bash TypeScript +npm install @onkernel/sdk +``` + +```bash Python +pip install kernel +``` + +```bash Go +go get github.com/kernel/kernel-go-sdk +``` + + + + +This creates a browser, runs Playwright code inside the browser's VM, returns the result, and cleans up. No local Chromium, no CDP connection to manage. + + +```typescript TypeScript +import Kernel from '@onkernel/sdk'; + +const kernel = new Kernel(); + +const browser = await kernel.browsers.create({ timeout_seconds: 300 }); +console.log('live view:', browser.browser_live_view_url); + +try { + const { result } = await kernel.browsers.playwright.execute(browser.session_id, { + code: ` + await page.goto('https://news.ycombinator.com'); + return await page.$$eval('.titleline > a', (as) => as.slice(0, 5).map((a) => a.textContent)); + `, + }); + console.log(result); +} finally { + await kernel.browsers.deleteByID(browser.session_id); +} +``` + +```python Python +from kernel import Kernel + +kernel = Kernel() + +browser = kernel.browsers.create(timeout_seconds=300) +print("live view:", browser.browser_live_view_url) + +try: + response = kernel.browsers.playwright.execute( + browser.session_id, + code=""" + await page.goto('https://news.ycombinator.com'); + return await page.$$eval('.titleline > a', (as) => as.slice(0, 5).map((a) => a.textContent)); + """, + ) + print(response.result) +finally: + kernel.browsers.delete_by_id(browser.session_id) +``` + +```go Go +package main + +import ( + "context" + "fmt" + + "github.com/kernel/kernel-go-sdk" +) + +func main() { + ctx := context.Background() + client := kernel.NewClient() + + browser, err := client.Browsers.New(ctx, kernel.BrowserNewParams{ + TimeoutSeconds: kernel.Int(300), + }) + if err != nil { + panic(err) + } + defer client.Browsers.DeleteByID(ctx, browser.SessionID) + fmt.Println("live view:", browser.BrowserLiveViewURL) + + res, err := client.Browsers.Playwright.Execute(ctx, browser.SessionID, kernel.BrowserPlaywrightExecuteParams{ + Code: ` + await page.goto('https://news.ycombinator.com'); + return await page.$$eval('.titleline > a', (as) => as.slice(0, 5).map((a) => a.textContent)); + `, + }) + if err != nil { + panic(err) + } + fmt.Println(res.Result) +} +``` + + +Open `browser_live_view_url` while it runs and you'll watch the page load. + + + +## Next steps + +Two things determine the shape of everything after this: which control surface you use, and where your loop runs. [How you drive the browser](/introduction/control) covers both. + + + + Stealth and proxies to get past bot detection. + + + Fill credentials from a vault, or let managed auth log in. + + + Complete checkouts without exposing card data to your agent. + + + End-to-end recipes you can clone and run. + + diff --git a/style.css b/style.css index 9b8af45f..19f5385a 100644 --- a/style.css +++ b/style.css @@ -347,3 +347,8 @@ html.dark #navigation-items img[src*="/images/integration-icons/"] { html.dark .cookbook-tag { color: rgba(237, 238, 240, 0.7); } + +.copy-prompt-full button { + width: 100% !important; + max-width: 100% !important; +}