kernel-typescript-sdk

📁 kernel/skills 📅 14 days ago
44
总安装量
13
周安装量
#8873
全站排名
安装命令
npx skills add https://github.com/kernel/skills --skill kernel-typescript-sdk

Agent 安装分布

claude-code 9
cursor 9
opencode 7
codex 7
github-copilot 5

Skill 文档

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 the kernel-cli skill 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 execution
  • kernel.browsers.computer – OS-level controls (mouse, keyboard, screenshots)
  • kernel.browserPools – Pre-warmed browser pool management
  • kernel.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 configuration
  • kernel.extensions – Chrome extension management
  • kernel.deployments – App deployment
  • kernel.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.resultMUST use return in 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.execute as a Buffer object. In TypeScript, always use dedicated APIs.

References