kernel-python-sdk

📁 kernel/skills 📅 14 days ago
37
总安装量
8
周安装量
#10136
全站排名
安装命令
npx skills add https://github.com/kernel/skills --skill kernel-python-sdk

Agent 安装分布

claude-code 5
cursor 5
opencode 5
gemini-cli 4
codex 3

Skill 文档

When to Use This Skill

Use the Kernel Python SDK when you need to:

  • Build browser automation scripts – Create Python 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.browser_pools – Pre-warmed browser pool management
  • kernel.profiles – Persistent browser profiles (auth state)
  • kernel.auth.connections – Managed auth (create, login, submit, follow, retrieve, delete)
  • kernel.credential_providers – 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(session_id, code="...")
  • session_id must be passed as a positional argument (first parameter), not as id= keyword
  • 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 to browser via CDP WebSocket URL
  • Code runs locally, browser runs remotely; requires local Playwright installation
  • Best for: Complex debugging, specific local development needs

Patterns Reference

Import Patterns

  • Standard: from kernel import Kernel
  • For actions: import kernel and from kernel import Kernel
  • For typed payloads: from typing import TypedDict
  • For CDP: from playwright.async_api import async_playwright

SDK Initialization

  • client = Kernel() reads KERNEL_API_KEY from environment automatically

Action Handler Pattern

from typing import TypedDict
from kernel import Kernel

app = kernel.App("app-name")

class TaskInput(TypedDict):
    task: str

@app.action("action-name")
async def my_action(ctx: kernel.KernelContext, input_data: TaskInput):
    # Access input: input_data["task"] or input_data.get("task")
    ...

CDP Connection Pattern (Client-side)

async with async_playwright() as playwright:
    browser = await playwright.chromium.connect_over_cdp(kernel_browser.cdp_ws_url)
    context = browser.contexts[0] if browser.contexts else await browser.new_context()
    page = context.pages[0] if context.pages else await context.new_page()

Binary Data Handling

Binary data (screenshots, PDFs) returns as Node.js Buffer: {'data': [byte_array], 'type': 'Buffer'}

# Follow canonical pattern above, then:
if response.success and response.result:
    data = bytes(response.result['data'])
    with open("output.png", "wb") as f:
        f.write(data)

Installation

  • uv pip install kernel or pip install kernel
  • For CDP: uv pip install playwright

References