kernel-agent-browser by kernel/skills
npx skills add https://github.com/kernel/skills --skill kernel-agent-browser此技能记录了使用 agent-browser 内置的 Kernel 提供程序 (-p kernel) 进行云浏览器自动化的最佳实践。
在以下情况下使用此技能:
agent-browser -p kernel 命令自动化网站加载 kernel-cli 技能以进行 Kernel CLI 安装和身份验证。
在首次调用 之前设置这些变量。CLI 在调用之间保持状态。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
agent-browser -p kernel| 变量 | 描述 | 默认值 |
|---|---|---|
KERNEL_API_KEY | 必需。 用于身份验证的 Kernel API 密钥 | (无) |
KERNEL_HEADLESS | 在无头模式下运行浏览器 (true/false) | false |
KERNEL_STEALTH | 启用隐身模式以避免机器人检测 (true/false) | true |
KERNEL_TIMEOUT_SECONDS | 会话超时时间(秒) | 300 |
KERNEL_PROFILE_NAME | 用于持久化 cookie/登录的浏览器配置文件名称 | (无) |
export KERNEL_API_KEY="your-api-key"
export KERNEL_TIMEOUT_SECONDS=600 # 复杂工作流程的 10 分钟超时
export KERNEL_STEALTH=true # 避免机器人检测(默认)
export KERNEL_PROFILE_NAME=mysite # 在运行之间保持登录会话
当设置 KERNEL_PROFILE_NAME 时:
这对于需要登录的站点特别有用——只需认证一次,即可在会话之间重复使用。
agent-browser -p kernel open <url> # 导航到页面
agent-browser -p kernel snapshot -i # 获取带有引用的交互元素
agent-browser -p kernel click @e1 # 通过引用点击元素
agent-browser -p kernel fill @e2 "text" # 通过引用填充输入框
agent-browser -p kernel close # 关闭浏览器并保存配置文件
每个命令始终使用 -p kernel 标志。
与其使用每次页面加载都会变化的临时 @e 引用,不如通过 find 命令使用语义选择器,以获得更稳定、可读性更强的自动化:
# 通过 ARIA 角色 + 可访问名称(最稳定)
agent-browser -p kernel find role button click --name "Log In"
agent-browser -p kernel find role textbox fill "user@email.com" --name "Email"
# 通过可见文本内容
agent-browser -p kernel find text "View Menus" click
agent-browser -p kernel find text "Submit Order" click
# 通过表单标签(非常适合输入框)
agent-browser -p kernel find label "Username" fill "myuser"
agent-browser -p kernel find label "Password" fill "secret123"
# 通过占位符文本
agent-browser -p kernel find placeholder "Search..." type "query"
# 通过 data-testid(如果网站使用它们)
agent-browser -p kernel find testid "submit-btn" click
# 通过位置(需要时)
agent-browser -p kernel find first "li.item" click
agent-browser -p kernel find nth 2 ".card" hover
| 选择器类型 | 最适合 | 稳定性 |
|---|---|---|
find role --name | 按钮、链接、导航 | ⭐⭐⭐ 最稳定 |
find label | 带有标签的表单输入框 | ⭐⭐⭐ 最稳定 |
find text | 可点击的文本元素 | ⭐⭐ 稳定 |
find testid | 带有测试属性的网站 | ⭐⭐⭐ 最稳定 |
find placeholder | 搜索框、输入框 | ⭐⭐ 稳定 |
@e 引用 | 未知网站、快速迭代 | ⭐ 临时性 |
建议:在生产自动化中使用 find。在探索和快速原型设计时使用 @e 引用,然后转换为语义选择器。
agent-browser 在底层创建了一个 Kernel 浏览器会话。要获取会话 ID 或实时查看 URL:
# 列出所有 Kernel 浏览器(通过配置文件名称或创建时间找到你的)
kernel browsers list
# 获取特定会话的实时查看 URL
kernel browsers view <session-id>
这在以下情况下很有用:
隐身模式 (KERNEL_STEALTH=true) 默认启用,有助于避免检测。然而,一些网站具有激进的机器人检测机制,仍然会触发。
如果由于机器人检测导致登录自动化失败:
获取实时查看 URL:
kernel browsers list
kernel browsers view <session-id>
与用户共享实时查看 URL,并要求他们手动完成登录
一旦登录,继续自动化——配置文件将保存认证状态
某些元素(尤其是在受机器人保护的网站上)不响应标准命令:
# 通过 CSS 选择器点击
agent-browser -p kernel eval "document.querySelector('.submit-btn').click()"
# 通过选择器填充(附带事件分发)
agent-browser -p kernel eval "
const el = document.querySelector('#email');
el.value = 'user@example.com';
el.dispatchEvent(new Event('input', {bubbles: true}));
el.dispatchEvent(new Event('change', {bubbles: true}));
"
# 通过测试 ID 点击
agent-browser -p kernel eval "document.querySelector('[data-testid=\"submit\"]').click()"
一些支付处理器(例如 Point and Pay)使用诱饵表单字段。只填充匹配特定模式的字段:
agent-browser -p kernel eval "
const realInputs = Array.from(document.querySelectorAll('input'))
.filter(el => el.name && el.name.startsWith('xeiinput'));
// 只填充这些输入框
"
使用 frame 命令切换上下文:
agent-browser -p kernel frame "#iframe-id" # 切换到 iframe
agent-browser -p kernel snapshot -i # 在 iframe 内截图
agent-browser -p kernel click @e1 # 在 iframe 内交互
agent-browser -p kernel frame main # 返回主框架
跨域 iframe 需要直接针对 Kernel 会话执行 Playwright 脚本:
找到会话 ID:
kernel browsers list
执行 Playwright 脚本:
kernel browsers exec <session-id> --code "
const frame = page.frameLocator('#payment-iframe'); await frame.locator('#card-number').fill('4111111111111111'); await frame.locator('#submit').click(); "
有关执行 Playwright 代码的更多详细信息,请参阅 kernel-cli 技能。
智能等待对于快速、可靠的自动化至关重要。 使用基于条件的等待而不是固定的超时,可以将执行时间减少 50% 以上,同时提高可靠性。
# 等待页面加载状态
agent-browser -p kernel wait --load domcontentloaded # DOM 准备就绪
agent-browser -p kernel wait --load networkidle # 网络稳定
# 等待特定的 URL 模式(非常适合登录后的重定向)
agent-browser -p kernel wait --url "**/dashboard"
agent-browser -p kernel wait --url "**/order-confirmation"
# 等待文本出现(非常适合动态内容)
agent-browser -p kernel wait --text "Password" # 字段出现
agent-browser -p kernel wait --text "Order confirmed" # 成功消息
# 等待 JavaScript 条件
agent-browser -p kernel wait --fn "window.appReady === true"
agent-browser -p kernel wait --fn "document.querySelector('.spinner') === null"
# 通过 CSS 选择器等待元素
agent-browser -p kernel wait "#login-form"
agent-browser -p kernel wait ".results-loaded"
# 仅在没有任何条件可用时使用
agent-browser -p kernel wait 2000
元素引用 (@e1, @e2 等) 是临时的,会在以下情况下改变:
在交互之前始终获取新的快照:
agent-browser -p kernel snapshot -i
# 现在使用此快照中的引用
agent-browser -p kernel click @e5
# 过滤特定元素
agent-browser -p kernel snapshot -i | grep -i "button\|submit"
# 限定到特定区域
agent-browser -p kernel snapshot -s "#main-content" -i
用户名和密码在同一页面上:
agent-browser -p kernel open https://example.com/login
agent-browser -p kernel wait --load domcontentloaded
# 使用语义选择器以提高稳定性
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find label "Password" fill "secret123"
agent-browser -p kernel find role button click --name "Sign In"
# 等待实际的重定向,而不是任意的超时
agent-browser -p kernel wait --url "**/dashboard"
首先输入用户名,然后在第二个屏幕上输入密码:
agent-browser -p kernel open https://example.com/login
agent-browser -p kernel wait --load domcontentloaded
# 步骤 1:用户名
agent-browser -p kernel find label "Username" fill "myuser"
agent-browser -p kernel press Enter
# 等待密码字段出现(不是固定的休眠!)
agent-browser -p kernel wait --text "Password"
# 步骤 2:密码
agent-browser -p kernel find label "Password" fill "secret123"
agent-browser -p kernel press Enter
# 等待成功的重定向
agent-browser -p kernel wait --url "**/home"
# 旧版(缓慢、脆弱):
agent-browser -p kernel wait 2000
agent-browser -p kernel fill @e1 "username"
agent-browser -p kernel wait 2000
agent-browser -p kernel fill @e3 "password"
agent-browser -p kernel wait 5000
# 优化版(快速、稳定):
agent-browser -p kernel wait --load domcontentloaded
agent-browser -p kernel find label "Username" fill "username"
agent-browser -p kernel wait --text "Password"
agent-browser -p kernel find label "Password" fill "password"
agent-browser -p kernel wait --url "**/dashboard"
登录表单出现在模态覆盖层中:
# 点击登录链接打开模态框
agent-browser -p kernel find text "Log In" click
agent-browser -p kernel wait --text "Password" # 等待模态框
# 填充模态框字段
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find label "Password" fill "password123"
agent-browser -p kernel find role button click --name "Sign In"
agent-browser -p kernel wait --url "**/dashboard"
某些模态框不暴露可访问的标签:
agent-browser -p kernel eval "document.querySelector('.login-link').click()"
agent-browser -p kernel wait 1000
agent-browser -p kernel eval "
document.getElementById('username').value = 'user@example.com';
document.getElementById('username').dispatchEvent(new Event('input', {bubbles: true}));
document.getElementById('password').value = 'password123';
document.getElementById('password').dispatchEvent(new Event('input', {bubbles: true}));
document.querySelector('button[type=submit]').click();
"
agent-browser -p kernel wait --url "**/dashboard"
某些链接在新标签页中打开:
# 点击在新标签页中打开的链接
agent-browser -p kernel click @e38
agent-browser -p kernel tab 1 # 切换到新标签页(0 起始索引)
agent-browser -p kernel wait 2000
agent-browser -p kernel snapshot -i # 与新标签页交互
# 截图
agent-browser -p kernel screenshot ~/Downloads/page.png
# 整页截图
agent-browser -p kernel screenshot ~/Downloads/full.png --full
# 查看控制台消息
agent-browser -p kernel console
# 查看页面错误
agent-browser -p kernel errors
# 获取当前 URL
agent-browser -p kernel get url
完成后始终关闭浏览器以保存配置文件:
agent-browser -p kernel close
使用命名会话运行并行浏览器会话:
agent-browser -p kernel --session site1 open https://site1.com
agent-browser -p kernel --session site2 open https://site2.com
agent-browser -p kernel session list
agent-browser -p kernel close 以保存配置文件状态。KERNEL_TIMEOUT_SECONDS。fill 或 click 无效,尝试使用 eval 进行直接的 DOM 操作。# 使用配置文件持久化启动会话
export KERNEL_PROFILE_NAME=mysite
export KERNEL_TIMEOUT_SECONDS=600
agent-browser -p kernel open https://example.com
# 使用语义选择器进行基本交互(推荐)
agent-browser -p kernel wait --load domcontentloaded
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find label "Password" fill "secret"
agent-browser -p kernel find role button click --name "Submit"
agent-browser -p kernel wait --url "**/success"
# 替代方案:快照 + 引用(用于探索)
agent-browser -p kernel snapshot -i
agent-browser -p kernel fill @eN "text"
agent-browser -p kernel click @eM
# 获取会话信息以进行手动干预
kernel browsers list
kernel browsers view <session-id>
# 清理
agent-browser -p kernel close
# 按钮和链接
agent-browser -p kernel find role button click --name "Submit"
agent-browser -p kernel find role link click --name "Next"
agent-browser -p kernel find text "Click here" click
# 表单输入框
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find placeholder "Search" type "query"
agent-browser -p kernel find testid "username-input" fill "myuser"
# 智能等待
agent-browser -p kernel wait --load domcontentloaded
agent-browser -p kernel wait --text "Success"
agent-browser -p kernel wait --url "**/dashboard"
agent-browser -p kernel wait --fn "window.loaded === true"
每周安装量
200
仓库
GitHub 星标数
3
首次出现
2026年1月28日
安全审计
安装于
cursor190
codex188
claude-code161
opencode74
gemini-cli70
github-copilot68
This skill documents best practices for using agent-browser's built-in Kernel provider (-p kernel) for cloud browser automation.
Use this skill when you need to:
agent-browser -p kernel commandsLoad the kernel-cli skill for Kernel CLI installation and authentication.
Set these before your first agent-browser -p kernel call. The CLI holds state between invocations.
| Variable | Description | Default |
|---|---|---|
KERNEL_API_KEY | Required. Your Kernel API key for authentication | (none) |
KERNEL_HEADLESS | Run browser in headless mode (true/false) | false |
KERNEL_STEALTH | Enable stealth mode to avoid bot detection (true/) |
export KERNEL_API_KEY="your-api-key"
export KERNEL_TIMEOUT_SECONDS=600 # 10-minute timeout for complex workflows
export KERNEL_STEALTH=true # Avoid bot detection (default)
export KERNEL_PROFILE_NAME=mysite # Persist login sessions across runs
When KERNEL_PROFILE_NAME is set:
This is especially useful for sites requiring login—authenticate once, reuse across sessions.
agent-browser -p kernel open <url> # Navigate to page
agent-browser -p kernel snapshot -i # Get interactive elements with refs
agent-browser -p kernel click @e1 # Click element by ref
agent-browser -p kernel fill @e2 "text" # Fill input by ref
agent-browser -p kernel close # Close browser and save profile
Always use the -p kernel flag with each command.
Instead of ephemeral @e refs that change on every page load, use semantic selectors via the find command for more stable, readable automation:
# By ARIA role + accessible name (most stable)
agent-browser -p kernel find role button click --name "Log In"
agent-browser -p kernel find role textbox fill "user@email.com" --name "Email"
# By visible text content
agent-browser -p kernel find text "View Menus" click
agent-browser -p kernel find text "Submit Order" click
# By form label (great for inputs)
agent-browser -p kernel find label "Username" fill "myuser"
agent-browser -p kernel find label "Password" fill "secret123"
# By placeholder text
agent-browser -p kernel find placeholder "Search..." type "query"
# By data-testid (if the site uses them)
agent-browser -p kernel find testid "submit-btn" click
# By position (when needed)
agent-browser -p kernel find first "li.item" click
agent-browser -p kernel find nth 2 ".card" hover
| Selector Type | Best For | Stability |
|---|---|---|
find role --name | Buttons, links, navigation | ⭐⭐⭐ Most stable |
find label | Form inputs with labels | ⭐⭐⭐ Most stable |
find text | Clickable text elements | ⭐⭐ Stable |
find testid | Sites with test attributes | ⭐⭐⭐ Most stable |
find placeholder | Search boxes, inputs |
Recommendation : Use find for production automation. Use @e refs for exploration and quick prototyping, then convert to semantic selectors.
agent-browser creates a Kernel browser session under the hood. To get the session ID or live view URL:
# List all Kernel browsers (find yours by profile name or creation time)
kernel browsers list
# Get live view URL for a specific session
kernel browsers view <session-id>
This is useful when:
Stealth mode (KERNEL_STEALTH=true) is enabled by default and helps avoid detection. However, some sites have aggressive bot detection that still triggers.
If login automation fails due to bot detection:
Get the live view URL:
kernel browsers list # Find your session by profile name kernel browsers view <session-id>
Share the live view URL with the user and ask them to complete the login manually
Once logged in, continue automation—the profile will save the authenticated state
Some elements (especially on bot-protected sites) don't respond to standard commands:
# Click by CSS selector
agent-browser -p kernel eval "document.querySelector('.submit-btn').click()"
# Fill by selector (with event dispatch)
agent-browser -p kernel eval "
const el = document.querySelector('#email');
el.value = 'user@example.com';
el.dispatchEvent(new Event('input', {bubbles: true}));
el.dispatchEvent(new Event('change', {bubbles: true}));
"
# Click by test ID
agent-browser -p kernel eval "document.querySelector('[data-testid=\"submit\"]').click()"
Some payment processors (e.g., Point and Pay) use decoy form fields. Only fill fields matching specific patterns:
agent-browser -p kernel eval "
const realInputs = Array.from(document.querySelectorAll('input'))
.filter(el => el.name && el.name.startsWith('xeiinput'));
// Fill only these inputs
"
Use the frame command to switch context:
agent-browser -p kernel frame "#iframe-id" # Switch to iframe
agent-browser -p kernel snapshot -i # Snapshot within iframe
agent-browser -p kernel click @e1 # Interact within iframe
agent-browser -p kernel frame main # Return to main frame
Cross-origin iframes require executing a Playwright script directly against the Kernel session:
Find the session ID:
kernel browsers list
Execute a Playwright script:
kernel browsers exec <session-id> --code " const frame = page.frameLocator('#payment-iframe'); await frame.locator('#card-number').fill('4111111111111111'); await frame.locator('#submit').click(); "
See the kernel-cli skill for more details on executing Playwright code.
Smart waits are critical for fast, reliable automation. Using condition-based waits instead of fixed timeouts can reduce execution time by 50%+ while improving reliability.
# Wait for page load states
agent-browser -p kernel wait --load domcontentloaded # DOM ready
agent-browser -p kernel wait --load networkidle # Network settled
# Wait for specific URL pattern (great for redirects after login)
agent-browser -p kernel wait --url "**/dashboard"
agent-browser -p kernel wait --url "**/order-confirmation"
# Wait for text to appear (great for dynamic content)
agent-browser -p kernel wait --text "Password" # Field appeared
agent-browser -p kernel wait --text "Order confirmed" # Success message
# Wait for JavaScript condition
agent-browser -p kernel wait --fn "window.appReady === true"
agent-browser -p kernel wait --fn "document.querySelector('.spinner') === null"
# Wait for element by CSS selector
agent-browser -p kernel wait "#login-form"
agent-browser -p kernel wait ".results-loaded"
# Only when no condition is available
agent-browser -p kernel wait 2000
Element refs (@e1, @e2, etc.) are ephemeral and change:
Always take a fresh snapshot before interacting:
agent-browser -p kernel snapshot -i
# Now use the refs from this snapshot
agent-browser -p kernel click @e5
# Filter for specific elements
agent-browser -p kernel snapshot -i | grep -i "button\|submit"
# Scope to a specific area
agent-browser -p kernel snapshot -s "#main-content" -i
Username and password on the same page:
agent-browser -p kernel open https://example.com/login
agent-browser -p kernel wait --load domcontentloaded
# Use semantic selectors for stability
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find label "Password" fill "secret123"
agent-browser -p kernel find role button click --name "Sign In"
# Wait for actual redirect, not arbitrary timeout
agent-browser -p kernel wait --url "**/dashboard"
Username first, then password on a second screen:
agent-browser -p kernel open https://example.com/login
agent-browser -p kernel wait --load domcontentloaded
# Step 1: Username
agent-browser -p kernel find label "Username" fill "myuser"
agent-browser -p kernel press Enter
# Wait for password field to appear (not a fixed sleep!)
agent-browser -p kernel wait --text "Password"
# Step 2: Password
agent-browser -p kernel find label "Password" fill "secret123"
agent-browser -p kernel press Enter
# Wait for successful redirect
agent-browser -p kernel wait --url "**/home"
# OLD (slow, fragile):
agent-browser -p kernel wait 2000
agent-browser -p kernel fill @e1 "username"
agent-browser -p kernel wait 2000
agent-browser -p kernel fill @e3 "password"
agent-browser -p kernel wait 5000
# OPTIMIZED (fast, stable):
agent-browser -p kernel wait --load domcontentloaded
agent-browser -p kernel find label "Username" fill "username"
agent-browser -p kernel wait --text "Password"
agent-browser -p kernel find label "Password" fill "password"
agent-browser -p kernel wait --url "**/dashboard"
Login form appears in a modal overlay:
# Click login link to open modal
agent-browser -p kernel find text "Log In" click
agent-browser -p kernel wait --text "Password" # Wait for modal
# Fill modal fields
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find label "Password" fill "password123"
agent-browser -p kernel find role button click --name "Sign In"
agent-browser -p kernel wait --url "**/dashboard"
Some modals don't expose accessible labels:
agent-browser -p kernel eval "document.querySelector('.login-link').click()"
agent-browser -p kernel wait 1000
agent-browser -p kernel eval "
document.getElementById('username').value = 'user@example.com';
document.getElementById('username').dispatchEvent(new Event('input', {bubbles: true}));
document.getElementById('password').value = 'password123';
document.getElementById('password').dispatchEvent(new Event('input', {bubbles: true}));
document.querySelector('button[type=submit]').click();
"
agent-browser -p kernel wait --url "**/dashboard"
Some links open in new tabs:
# Click link that opens new tab
agent-browser -p kernel click @e38
agent-browser -p kernel tab 1 # Switch to new tab (0-indexed)
agent-browser -p kernel wait 2000
agent-browser -p kernel snapshot -i # Interact with new tab
# Take screenshot
agent-browser -p kernel screenshot ~/Downloads/page.png
# Full page screenshot
agent-browser -p kernel screenshot ~/Downloads/full.png --full
# View console messages
agent-browser -p kernel console
# View page errors
agent-browser -p kernel errors
# Get current URL
agent-browser -p kernel get url
Always close the browser when done to save the profile:
agent-browser -p kernel close
Run parallel browser sessions with named sessions:
agent-browser -p kernel --session site1 open https://site1.com
agent-browser -p kernel --session site2 open https://site2.com
agent-browser -p kernel session list
Refs change after navigation : Always re-snapshot after clicking links or submitting forms.
Wait after actions : Add waits after clicks/submits that trigger page loads or AJAX.
Profile not saving : Make sure to run agent-browser -p kernel close to save the profile state.
Timeout too short : Increase KERNEL_TIMEOUT_SECONDS for workflows with user pauses or slow pages.
Stealth not working : Some sites detect bots despite stealth. Use manual login fallback.
eval for stubborn elements : If fill or click don't work, try eval with direct DOM manipulation.
Cross-origin iframes : Can't interact via agent-browser commands. Use Kernel's Playwright execution.
# Start session with profile persistence
export KERNEL_PROFILE_NAME=mysite
export KERNEL_TIMEOUT_SECONDS=600
agent-browser -p kernel open https://example.com
# Basic interaction with semantic selectors (recommended)
agent-browser -p kernel wait --load domcontentloaded
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find label "Password" fill "secret"
agent-browser -p kernel find role button click --name "Submit"
agent-browser -p kernel wait --url "**/success"
# Alternative: snapshot + refs (for exploration)
agent-browser -p kernel snapshot -i
agent-browser -p kernel fill @eN "text"
agent-browser -p kernel click @eM
# Get session info for manual intervention
kernel browsers list
kernel browsers view <session-id>
# Cleanup
agent-browser -p kernel close
# Buttons and links
agent-browser -p kernel find role button click --name "Submit"
agent-browser -p kernel find role link click --name "Next"
agent-browser -p kernel find text "Click here" click
# Form inputs
agent-browser -p kernel find label "Email" fill "user@example.com"
agent-browser -p kernel find placeholder "Search" type "query"
agent-browser -p kernel find testid "username-input" fill "myuser"
# Smart waits
agent-browser -p kernel wait --load domcontentloaded
agent-browser -p kernel wait --text "Success"
agent-browser -p kernel wait --url "**/dashboard"
agent-browser -p kernel wait --fn "window.loaded === true"
Weekly Installs
200
Repository
GitHub Stars
3
First Seen
Jan 28, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
cursor190
codex188
claude-code161
opencode74
gemini-cli70
github-copilot68
Azure 升级评估与自动化工具 - 轻松迁移 Functions 计划、托管层级和 SKU
85,700 周安装
Agentica 提示词工程指南:编写可靠智能体指令与编排模式
197 周安装
tldr-overview:快速获取项目代码概览,高效理解陌生代码库结构
197 周安装
Spring Boot 4测试专家指南:现代测试模式、切片测试与最佳实践
197 周安装
移动开发专家技能:精通React Native、Flutter及原生iOS/Android开发与性能优化
197 周安装
Morph Apply API:无需读取文件的AI驱动快速文件编辑工具,每秒处理10,500令牌
197 周安装
Gemini图像生成器:AI图像API集成,为网页项目生成背景图、OG图片和产品照片
197 周安装
falsetrue |
KERNEL_TIMEOUT_SECONDS | Session timeout in seconds | 300 |
KERNEL_PROFILE_NAME | Browser profile name for persistent cookies/logins | (none) |
| ⭐⭐ Stable |
@e refs | Unknown sites, quick iteration | ⭐ Ephemeral |