diff --git a/docs.json b/docs.json index 19f2a64..ac8804e 100644 --- a/docs.json +++ b/docs.json @@ -240,8 +240,9 @@ "pages": [ "integrations/vercel/overview", "integrations/vercel/ai-sdk", + "integrations/vercel/marketplace", "integrations/vercel/eve-extension", - "integrations/vercel/marketplace" + "integrations/vercel/foreman" ] }, { diff --git a/integrations/vercel/foreman.mdx b/integrations/vercel/foreman.mdx new file mode 100644 index 0000000..5a2a97c --- /dev/null +++ b/integrations/vercel/foreman.mdx @@ -0,0 +1,78 @@ +--- +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. + +Follow [Foreman's guide for adding the Kernel browser](https://ask-foreman.dev/recipes/add-the-kernel-browser) for the full recipe, including the shadowed connection and tool allowlist. + +## 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. + +
+ + + view the recipe ↗ + +
+ +## Related + +- [Eve Extension](/integrations/vercel/eve-extension) +- [Vercel Marketplace Integration](/integrations/vercel/marketplace) +- [Managed Auth](/auth/overview) diff --git a/snippets/copy-prompt-button.jsx b/snippets/copy-prompt-button.jsx index 381d0bd..8be5fee 100644 --- a/snippets/copy-prompt-button.jsx +++ b/snippets/copy-prompt-button.jsx @@ -1,9 +1,6 @@ const { useState, useCallback } = React; -export const CopyPromptButton = () => { - const [copied, setCopied] = useState(false); - - const prompt = `# Setup Kernel +const DEFAULT_PROMPT = `# Setup Kernel ## Prerequisites - Read the kernel-cli skill at https://github.com/kernel/skills/blob/main/plugins/kernel-cli/skills/kernel-cli/SKILL.md for reference on commands and capabilities. @@ -30,6 +27,9 @@ export const CopyPromptButton = () => { - Tell the user they can use the live view immediately. - If browser creation fails, stop and ask the user for help.`; +export const CopyPromptButton = ({ prompt = DEFAULT_PROMPT, label = 'copy prompt' } = {}) => { + const [copied, setCopied] = useState(false); + const handleCopy = useCallback(async () => { try { await navigator.clipboard.writeText(prompt); @@ -92,7 +92,7 @@ export const CopyPromptButton = () => { - copy prompt + {label} )}