-
Notifications
You must be signed in to change notification settings - Fork 11
Add Cookbooks page #537
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Cookbooks page #537
Changes from all commits
21a89b6
15398b5
10dcac3
4c60b36
65fcae2
91dab99
adce39e
d0f2613
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| --- | ||
| title: "cookbooks" | ||
| description: "end-to-end recipes to teach agents to use the internet" | ||
| mode: "wide" | ||
| --- | ||
|
|
||
| Self-contained cookbooks to clone and run. Use as 1-click starts for your agents or as templates for your own build. | ||
|
|
||
| import { CookbookSearch } from '/snippets/cookbook-search.jsx'; | ||
|
|
||
| <CookbookSearch /> | ||
|
|
||
| <Columns className="responsive-columns" cols={3}> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove features section per canvas notes |
||
| <Card title="Agentic Payments" img="/images/cookbooks/payments.png" href="/browsers/enable-payments-in-browser-agent"> | ||
| <div className="cookbook-tag">common patterns</div> | ||
| Enable Payments in a Browser Agent | ||
| </Card> | ||
| <Card title="AI SDK Agent" img="/images/cookbooks/vercel.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/ai-sdk-agent"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Browser automation with the Vercel AI SDK and Kernel's Playwright execution API. | ||
| </Card> | ||
| <Card title="Tinker RL" img="/images/cookbooks/tinker.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/tinker-rl"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| RL training for computer use agents, using Tinker. | ||
| </Card> | ||
| <Card title="Mastra Web Task Assistant" img="/images/cookbooks/mastra.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/mastra-web-task-assistant"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Human-in-the-loop web task assistant with memory, built on Mastra. | ||
| </Card> | ||
| <Card title="Claude Managed Agents" img="/images/cookbooks/claude.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/claude-managed-agents"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Run parallel computer-use agent swarms, with API keys secured via Vaults. | ||
| </Card> | ||
| <Card title="Modal PR QA Agent" img="/images/cookbooks/modal.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/modal-pr-qa-agent"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| QA your PR previews with Claude computer use on Modal, recorded with Replays. | ||
| </Card> | ||
| <Card title="Browser Use Model" img="/images/cookbooks/browser-use.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/browser-use-model"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Run the Browser Use bu-1.0 model on Kernel browser infrastructure. | ||
| </Card> | ||
| <Card title="Playwright & Computer Use" img="/images/cookbooks/playwright.png" href="/browsers/playwright-computer-use-fallback"> | ||
| <div className="cookbook-tag">common patterns</div> | ||
| Using Playwright with Computer Use Fallback | ||
| </Card> | ||
| <Card title="Stagehand Google CUA Agent" img="/images/cookbooks/stagehand.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/stagehand-google-cua-agent"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Computer use agent with Google's Gemini 2.5 and Stagehand. | ||
| </Card> | ||
| <Card title="Vibium" img="/images/cookbooks/vibium.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/vibium"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Vibium browser automation over WebDriver BiDi. | ||
| </Card> | ||
| <Card title="Claude Computer Use Loop" img="/images/cookbooks/claude.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/claude-computer-use-loop"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Minimal implementation of Anthropic's computer use loop. | ||
| </Card> | ||
| <Card title="Modal Web Scraper" img="/images/cookbooks/modal.png" href="https://github.com/kernel/cookbooks/tree/main/integrations/modal-web-scraper"> | ||
| <div className="cookbook-tag">harnesses & models</div> | ||
| Scrape JS-rendered pages behind a login, on Modal with a Kernel headful browser. | ||
| </Card> | ||
| </Columns> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "AI SDK Agent" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/ai-sdk-agent" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Browser Use Model" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/browser-use-model" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Claude Computer Use Loop" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/claude-computer-use-loop" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Claude Managed Agents" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/claude-managed-agents" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Mastra Web Task Assistant" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/mastra-web-task-assistant" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Modal PR QA Agent" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/modal-pr-qa-agent" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Modal Web Scraper" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/modal-web-scraper" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Stagehand Google CUA Agent" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/stagehand-google-cua-agent" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Tinker RL" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/tinker-rl" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| --- | ||
| title: "Vibium" | ||
| url: "https://github.com/kernel/cookbooks/tree/main/integrations/vibium" | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| const { useState, useCallback } = React; | ||
|
|
||
| export const CookbookSearch = () => { | ||
| const [matches, setMatches] = useState(null); | ||
|
|
||
| const getCards = () => { | ||
| const anchors = Array.from( | ||
| document.querySelectorAll('a[href^="https://github.com/kernel/cookbooks/tree/main/"]') | ||
| ).filter((a) => !a.closest('nav') && !a.closest('aside')); | ||
| const cards = anchors.map((a) => a.closest('.card') || a); | ||
| return Array.from(new Set(cards)); | ||
| }; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Search skips internal cookbook cardsMedium Severity
Additional Locations (2)Reviewed by Cursor Bugbot for commit adce39e. Configure here. |
||
|
|
||
| const handleInput = useCallback((e) => { | ||
| const q = e.target.value.trim().toLowerCase(); | ||
| const cards = getCards(); | ||
| let count = 0; | ||
| cards.forEach((card) => { | ||
| const hit = q === '' || card.textContent.toLowerCase().includes(q); | ||
| card.style.display = hit ? '' : 'none'; | ||
| if (hit) count++; | ||
| }); | ||
| setMatches(q === '' ? null : count); | ||
| }, []); | ||
|
|
||
| return ( | ||
| <div style={{ margin: '1.5rem 0 0.5rem' }}> | ||
| <input | ||
| type="search" | ||
| placeholder="search cookbooks..." | ||
| onInput={handleInput} | ||
| aria-label="Search cookbooks" | ||
| style={{ | ||
| width: '100%', | ||
| padding: '0.625rem 0.875rem', | ||
| fontSize: '0.9375rem', | ||
| fontFamily: 'inherit', | ||
| border: '1px solid rgba(128, 128, 128, 0.35)', | ||
| borderRadius: '0.5rem', | ||
| background: 'transparent', | ||
| outline: 'none', | ||
| }} | ||
| /> | ||
| {matches === 0 && ( | ||
| <p style={{ marginTop: '1rem', opacity: 0.7 }}> | ||
| no cookbooks match your search. | ||
| </p> | ||
| )} | ||
| </div> | ||
| ); | ||
| }; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -312,3 +312,23 @@ html.dark .callout[class*="yellow"] svg { | |
| html.dark #navigation-items img[src*="/images/integration-icons/"] { | ||
| filter: invert(1); | ||
| } | ||
|
|
||
| /* cookbooks: sidebar entries under /cookbooks/ are external GitHub links (url frontmatter), | ||
| so hide pagination that would point at them */ | ||
| #pagination a[href^="/cookbooks/"] { | ||
| display: none; | ||
| } | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Pagination hide misses production URLsMedium Severity The pagination hide rule matches only hrefs that start with Reviewed by Cursor Bugbot for commit 10dcac3. Configure here. |
||
|
|
||
| /* cookbooks card category label — matches the site eyebrow/type setup in the reference */ | ||
| .cookbook-tag { | ||
| display: block; | ||
| font-size: 0.6875rem; | ||
| font-weight: 400; | ||
| letter-spacing: -0.015em; | ||
| opacity: 0.72; | ||
| margin-bottom: 0.5rem; | ||
| } | ||
|
|
||
| html.dark .cookbook-tag { | ||
| color: rgba(237, 238, 240, 0.7); | ||
| } | ||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very cool addition, tysm!