kernel-typescript-sdk
SKILL.md
When to Use This Skill
Use the Kernel TypeScript SDK when you need to:
- Build browser automation scripts - Create TypeScript programs that control remote browsers
- Execute server-side automation - Run Playwright code directly in the browser VM without local dependencies
- Manage browser sessions programmatically - Create, configure, and control browsers from code
- Build scalable scraping/testing tools - Use browser pools and profiles for high-volume automation
- Deploy automation as actions - Package scripts as Kernel actions for invocation via API
When NOT to use:
- For CLI commands (e.g.,
kernel browsers create), use thekernel-cliskill instead - For quick one-off tasks, the CLI may be simpler than writing code
Core Concepts
SDK Architecture
The SDK is organized into resource-based modules:
kernel.browsers- Browser session management (create, list, delete)kernel.browsers.playwright- Server-side Playwright executionkernel.browsers.computer- OS-level controls (mouse, keyboard, screenshots)kernel.browserPools- Pre-warmed browser pool managementkernel.profiles- Persistent browser profiles (auth state)kernel.auth.connections- Managed auth (create, login, submit, follow, retrieve, delete)kernel.credentialProviders- External credential providers (1Password)kernel.proxies- Proxy configurationkernel.extensions- Chrome extension managementkernel.deployments- App deploymentkernel.invocations- Action invocation
Two Automation Approaches
1. Server-side Execution (RECOMMENDED)
- Execute Playwright code directly in browser VM using
kernel.browsers.playwright.execute() - Response accessed via
response.result- MUST usereturnin code to get data back - Best for: Most use cases, production automation, parallel execution, actions
2. CDP Connection (Client-side)
- Connect Playwright/Puppeteer to browser via CDP WebSocket URL (
browser.cdp_ws_url) - Code runs locally, browser runs remotely; requires local Playwright installation
- Best for: Complex debugging, specific local development needs
Patterns Reference
SDK Initialization
import { Kernel } from "@onkernel/sdk";
const kernel = new Kernel(); // Reads KERNEL_API_KEY from environment
Attribute Access: Use snake_case (e.g., browser.session_id, browser.cdp_ws_url)
Binary Data Handling
Binary data does not serialize through playwright.execute (returns undefined). Use dedicated APIs:
// For screenshots:
const response = await kernel.browsers.computer.captureScreenshot(browser.session_id);
// For files:
const response = await kernel.browsers.filesystem.readFile(browser.session_id, { path: '/path/to/file' });
// Convert to buffer:
const blob = await response.blob();
const buffer = Buffer.from(await blob.arrayBuffer());
Note: This differs from the Python SDK where binary data CAN be returned via
playwright.executeas a Buffer object. In TypeScript, always use dedicated APIs.
References
- Kernel Documentation: https://www.kernel.sh/docs
- Quickstart Guide: https://www.kernel.sh/docs/quickstart
- Templates: https://www.kernel.sh/docs/reference/cli/create#available-templates
- TypeScript Types: Available in
@onkernel/sdkpackage - Examples: examples
Weekly Installs
109
Repository
kernel/skillsGitHub Stars
3
First Seen
Jan 30, 2026
Security Audits
Installed on
cursor104
claude-code103
codex103
opencode22
gemini-cli22
github-copilot19