Kernel CLI
The Kernel CLI provides command-line access to Kernel's cloud browser platform for browser automation, serverless app deployment, and infrastructure management.
Installation
- Homebrew:
brew install kernel/tap/kernel
- npm:
npm install -g @onkernel/cli
Verify with kernel --version. Use kernel <command> --help as the source of truth for the installed version.
Authentication
- Preferred: Set
KERNEL_API_KEY environment variable
- Fallback: Run
kernel login for interactive OAuth
Quick Start
# Authenticate
export KERNEL_API_KEY=your_api_key
# Create a browser session
kernel browsers create -o json
# Run Playwright automation (use `return` to get a value back)
kernel browsers playwright execute <session_id> '
await page.goto("https://example.com");
return await page.evaluate(() => document.title);
'
# Take a screenshot
kernel browsers computer screenshot <session_id> --to screenshot.png
# Cleanup
kernel browsers delete <session_id>
Safe Operation
- Prefer
-o json plus jq for scripts; deploy and invoke emit JSONL rather than one JSON object.
- Use
--project <id-or-name> or KERNEL_PROJECT when an API key can access multiple projects.
- Keep confirmation prompts for destructive operations unless non-interactive execution is intentional.
- Delete created browser sessions and pools after testing. Never echo, log, commit, or share API keys, credentials, or proxy passwords.
Project, API Key, and Organization Administration
# Rename, archive, or reactivate a project (provide at least one update)
kernel projects update <id-or-name> --name <new-name> -o json
kernel projects update <id-or-name> --status archived -o json
kernel projects update <id-or-name> --status active -o json
# Look up a soft-deleted API key
kernel api-keys get <id> --include-deleted -o json
# Inspect limits before changing the default project cap
kernel org limits get -o json
kernel org limits set --default-project-max-concurrent-sessions <n> -o json
For org limits set, 0 removes the default cap; the value cannot exceed the organization concurrency limit.
Rotate an API key interactively with kernel api-keys rotate <id>. Use --days-to-expire <1-3650> to set the replacement key lifetime and --expire-in-days <n> to set the old key's grace period (default 7 days; 0 revokes it immediately). The output contains the replacement plaintext key once: keep it out of logs, migrate callers during the grace period, and then verify the old key no longer works.
References
- Browser Management - Create, list, view, and delete browser sessions
- App Deployment - Deploy TypeScript/Python apps and invoke actions
- Computer Controls - OS-level mouse, keyboard, and screenshot capabilities
- Process Execution - Execute and manage processes in browser VMs
- Profiles - Manage persistent browser profiles
- Managed Auth - Auth connections, login sessions, credential providers, auto re-authentication
- Proxies - Create and manage datacenter, ISP, residential, and mobile proxies
- Browser Pools - Manage pre-warmed browser pools
- Extensions - Upload and manage Chrome extensions
- Replays - Record and download video replays
- Filesystem Operations - Read, write, upload, and download files
1---2name: kernel-cli3description: Use the Kernel CLI to manage cloud browsers, apps, profiles, proxies, managed auth, API keys, projects, and organization limits. Use when installing or authenticating the CLI, looking up current command syntax, or choosing the right command group.4---5
6# Kernel CLI
7
8The Kernel CLI provides command-line access to Kernel's cloud browser platform for browser automation, serverless app deployment, and infrastructure management.
9
10## Installation
11
12- Homebrew: `brew install kernel/tap/kernel`
13- npm: `npm install -g @onkernel/cli`
14
15Verify with `kernel --version`. Use `kernel <command> --help` as the source of truth for the installed version.
16
17## Authentication
18
19- **Preferred:** Set `KERNEL_API_KEY` environment variable
20- **Fallback:** Run `kernel login` for interactive OAuth
21
22## Quick Start
23
24```bash
25# Authenticate
26export KERNEL_API_KEY=your_api_key
27
28# Create a browser session
29kernel browsers create -o json
30
31# Run Playwright automation (use `return` to get a value back)
32kernel browsers playwright execute <session_id> '
33 await page.goto("https://example.com");
34 return await page.evaluate(() => document.title);
35'
36
37# Take a screenshot
38kernel browsers computer screenshot <session_id> --to screenshot.png
39
40# Cleanup
41kernel browsers delete <session_id>
42```
43
44## Safe Operation
45
46- Prefer `-o json` plus `jq` for scripts; deploy and invoke emit JSONL rather than one JSON object.
47- Use `--project <id-or-name>` or `KERNEL_PROJECT` when an API key can access multiple projects.
48- Keep confirmation prompts for destructive operations unless non-interactive execution is intentional.
49- Delete created browser sessions and pools after testing. Never echo, log, commit, or share API keys, credentials, or proxy passwords.
50
51## Project, API Key, and Organization Administration
52
53```bash
54# Rename, archive, or reactivate a project (provide at least one update)
55kernel projects update <id-or-name> --name <new-name> -o json
56kernel projects update <id-or-name> --status archived -o json
57kernel projects update <id-or-name> --status active -o json
58
59# Look up a soft-deleted API key
60kernel api-keys get <id> --include-deleted -o json
61
62# Inspect limits before changing the default project cap
63kernel org limits get -o json
64kernel org limits set --default-project-max-concurrent-sessions <n> -o json
65```
66
67For `org limits set`, `0` removes the default cap; the value cannot exceed the organization concurrency limit.
68
69Rotate an API key interactively with `kernel api-keys rotate <id>`. Use `--days-to-expire <1-3650>` to set the replacement key lifetime and `--expire-in-days <n>` to set the old key's grace period (default 7 days; `0` revokes it immediately). The output contains the replacement plaintext key once: keep it out of logs, migrate callers during the grace period, and then verify the old key no longer works.
70
71## References
72
73- [Browser Management](./references/browser-management.md) - Create, list, view, and delete browser sessions
74- [App Deployment](./references/app-deployment.md) - Deploy TypeScript/Python apps and invoke actions
75- [Computer Controls](./references/computer-controls.md) - OS-level mouse, keyboard, and screenshot capabilities
76- [Process Execution](./references/process-execution.md) - Execute and manage processes in browser VMs
77- [Profiles](./references/profiles.md) - Manage persistent browser profiles
78- [Managed Auth](./references/managed-auth.md) - Auth connections, login sessions, credential providers, auto re-authentication
79- [Proxies](./references/proxies.md) - Create and manage datacenter, ISP, residential, and mobile proxies
80- [Browser Pools](./references/browser-pools.md) - Manage pre-warmed browser pools
81- [Extensions](./references/extensions.md) - Upload and manage Chrome extensions
82- [Replays](./references/replays.md) - Record and download video replays
83- [Filesystem Operations](./references/filesystem-ops.md) - Read, write, upload, and download files