Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计异常

smooth-browser流畅的浏览器

Agent Skill

smooth-browser 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

970

周安装

40

GitHub Stars

19

下载量

317
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:smooth-browser(流畅的浏览器)
来源仓库:https://github.com/circlemind-ai/smooth-sdk
仓库路径:skills/smooth-browser
安装命令:
npx skills add https://github.com/circlemind-ai/smooth-sdk --skill smooth-browser
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/circlemind-ai/smooth-sdk --skill smooth-browser

简介

AI Agent 专用的浏览器自动化接口,支持网页导航与数据整理。

  • 可模拟人类操作完成登录、表单填写与复杂任务流转。
  • 返回页面结构、元素状态与截图,便于验证前端逻辑正确性。
  • 需预先配置 Smooth CLI API Key 并确保服务账户有足够 credits。
  • smooth-browser 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Smooth Browser

Smooth CLI is a browser for AI agents to interact with websites, authenticate, scrape data, and perform complex web-based tasks using natural language.

Prerequisites

Assume the Smooth CLI is already installed. If not, you can install it by running:

pip install smooth-py

Assume an API key is already configured. If you encounter authentication errors, configure it with:

smooth config --api-key <api-key>

To verify the configuration:

smooth config --show

Get an API key at https://app.smooth.sh

If the account is out of credits, ask the user to upgrade their plan at https://app.smooth.sh

Basic Workflow

1. Create a Profile (Optional)

Profiles are useful to persist cookies, login sessions, and browser state between sessions.

smooth create-profile --profile-id "my-profile"

List existing profiles:

smooth list-profiles

2. Start a Browser Session

smooth start-session --profile-id "my-profile"

Options:

  • --profile-id - Use a specific profile (optional, creates anonymous session if not provided)
  • --files - Comma-separated file IDs to make available in the session (optional)
  • --device mobile|desktop - Device type (default: mobile)
  • --profile-read-only - Load profile without saving changes
  • --allowed-urls - Comma-separated URL patterns to restrict access to certain URLs only (e.g., "https://*example.com/*,https://*api.example.com/*")
  • --no-proxy - Disable the default proxy (see note below)

Important: Save the session ID from the output - you'll need it for all subsequent commands.

Proxy behavior: By default, the CLI automatically configures a built-in proxy for the browser session. If a website blocks the proxy or you need direct connections, disable it with --no-proxy.

3. Run Tasks in the Session

Execute tasks using natural language:

smooth run <session-id> "Go to the LocalLLM subreddit and find the top 3 posts"

With structured output (for tasks requiring interaction):

smooth run <session-id> "Search for 'wireless headphones', filter by 4+ stars, sort by price, and extract the top 3 results" \
  --url "https://shop.example.com" \
  --response-model '{"type":"array","items":{"type":"object","properties":{"product":{"type":"string","description":"Thenameoftheproductbeingdescribed."},"sentiment":{"type":"string","enum":["positive","negative","neutral"],"description":"The overall sentiment about the product."}},"required":["product","sentiment"]}}'

With metadata (the agent will be):

smooth run <session-id> "Fill out the form with user information" \
  --metadata '{"email":"user@example.com","name":"John Doe"}'

Options:

  • --url - Navigate to this URL before running the task
  • --metadata - JSON object with variables for the task
  • --response-model - JSON schema for structured output
  • --max-steps - Maximum agent steps (default: 32)
  • --json - Output results as JSON

Notes: It's important that you give tasks at the right level of abstraction. Not too prescriptive - e.g. single-step actions - and not too broad or vague.

Good tasks:

  • "Search on Linkedin for people working as SDEs at Amazon, and return 5 profile urls"
  • "Find the price of an iPhone 17 on Amazon"

Bad tasks:

  • "Click search" -> too prescriptive!
  • "Load google.com, write 'restaurants near me', click search, wait for the page to load, extract the top 5 results, and return them." -> too prescriptive! you can say "search restaurants near me on google and return the top 5 results"
  • "Find software engineers that would be a good fit for our company" -> too broad! YOU need to plan how to achieve the goal and run well-defined tasks that compose into the given goal

IMPORTANT: Smooth is powered by an intelligent agent, DO NOT over-controll it, and give it well-defined goal-oriented tasks instead of steps.

4. Close the Session

You must close the session when you're done.

smooth close-session <session-id>

Important: Wait 5 seconds after closing to ensure cookies and state are saved to the profile if you need it for another session.


Common Use Cases

Authentication & Persistent Sessions

Create a profile for a specific website:

# Create profile
smooth create-profile --profile-id "github-account"

# Start session
smooth start-session --profile-id "github-account"

# Load url
smooth goto <session-id> "https://github.com/login"

# Get live view to authenticate manually
smooth live-view <session-id>
# Give the URL to the user so it can open it in the browser and log in

# When the user confirms the login you can then close the session to save the profile data
smooth close-session <session-id>
# Save the profile-id somewhere to later reuse it

Reuse authenticated profile:

# Next time, just start a session with the same profile
smooth start-session --profile-id "github-account"
smooth run <session-id> "Create a new issue in my repo 'my-project'"

Keep profiles organized: Save to memory which profiles authenticate to which services so you can reuse them efficiently in the future.


Sequential Tasks on Same Browser

Execute multiple tasks in sequence without closing the session:

SESSION_ID=$(smooth start-session --profile-id "my-profile" --json | jq -r .session_id)

# Task 1: Login
smooth run $SESSION_ID "Log into the website with the given credentials"

# Task 2: First action
smooth run $SESSION_ID "Find the settings and change the notifications preferences to email only"

# Task 3: Second action
smooth run $SESSION_ID "Find the billing section and give me the url of the latest invoice"

smooth close-session $SESSION_ID

Important: run preserves the browser state (cookies, URL, page content) but not the browser agent's memory. If you need to carry information from one task to the next, you should pass it explicitly in the prompt.

Example - Passing context between tasks:

# Task 1: Get information
RESULT=$(smooth run $SESSION_ID "Find the product name on this page" --json | jq -r .output)

# Task 2: Use information from Task 1
smooth run $SESSION_ID "Consider the product with name '$RESULT'. Now find 3 similar products offered by this online store."

Notes:

  • The run command is blocking. If you need to carry out multiple tasks at the same time, you MUST use subagents (Task tool).
  • All tasks will use the current tab, you cannot request to run tasks in a new tab. If you need to preserve the current tab’s state, you can open a new session.
  • Each session can run only one task at a time. To run tasks simultaneously, use subagents with one session each.
  • The maximum number of concurrent sessions depends on the user plan.
  • If useful, remind the user that they can upgrade the plan to give you more concurrent sessions.

Web Scraping with Structured Output

Option 1: Using run with structured output:

smooth start-session
smooth run <session-id> "Extract the top 10 posts" \
  --url "https://news.ycombinator.com" \
  --response-model '{
    "type": "object",
    "properties": {
      "posts": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "title": {"type": "string"},
            "url": {"type": "string"},
            "points": {"type": "number"}
          }
        }
      }
    }
  }'

Option 2: Using extract for direct data extraction:

The extract command is more efficient for pure data extraction as it doesn't use agent steps.

It's like a smart fetch that can extract structured data from dynamically rendered websites:

smooth start-session
smooth extract <session-id> \
  --url "https://news.ycombinator.com" \
  --schema '{
    "type": "object",
    "properties": {
      "posts": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "title": {"type": "string"},
            "url": {"type": "string"},
            "points": {"type": "number"}
          }
        }
      }
    }
  }' \
  --prompt "Extract the top 10 posts"

When to use each:

  • Use extract when you're on the right page or know the right url and just need to pull structured data
  • Use run when you need the agent to navigate, interact, or perform complex actions before extracting

Working with Files

Upload files for use in sessions:

Files must be uploaded before starting a session, then passed to the session via file IDs:

# Step 1: Upload files
FILE_ID=$(smooth upload-file /path/to/document.pdf --purpose "Contract to analyze" --json | jq -r .file_id)

# Step 2: Start session with the file
smooth start-session --files "$FILE_ID"

# Step 3: The agent can now access the file in tasks
smooth run <session-id> "Analyze the contract document and extract key terms" --url "https://example.com"

Upload multiple files:

# Upload files
FILE_ID_1=$(smooth upload-file /path/to/invoice.pdf --json | jq -r .file_id)
FILE_ID_2=$(smooth upload-file /path/to/screenshot.png --json | jq -r .file_id)

# Start session with multiple files
smooth start-session --files "$FILE_ID_1,$FILE_ID_2"

Download files from session:

smooth run <session-id> "Download the monthly report PDF"
smooth close-session <session-id>

# After session closes, get download URL
smooth downloads <session-id>
# curl the URL to download files

Live View & Manual Intervention

When automation needs human input (CAPTCHA, 2FA, complex authentication):

smooth start-session --profile-id "my-profile"
smooth run <session-id> "Go to secure-site.com and log in"

# If task encounters CAPTCHA or requires manual action:
smooth live-view <session-id>
# Open the URL and complete the manual steps

# Continue automation after manual intervention:
smooth run <session-id> "Now navigate to the dashboard and export data"

Direct Browser Actions

Extract data from current page:

smooth extract <session-id> \
  --schema '{"type":"object","properties":{"products":{"type":"array"}}}' \
  --prompt "Extract all product names and prices"

Navigate to URL then extract:

smooth extract <session-id> \
  --url "https://example.com/products" \
  --schema '{"type":"object","properties":{"products":{"type":"array"}}}'

Execute JavaScript in the browser:

# Simple JavaScript
smooth evaluate-js <session-id> "document.title"

# With arguments
smooth evaluate-js <session-id> "(args) => {return args.x + args.y;}" --args '{"x": 5, "y": 10}'

# Complex DOM manipulation
smooth evaluate-js <session-id> \
  "document.querySelectorAll('a').length"

Profile Management

List all profiles:

smooth list-profiles

Delete a profile:

smooth delete-profile <profile-id>

When to use profiles:

  • ✅ Websites requiring authentication
  • ✅ Maintaining session state across multiple task runs
  • ✅ Avoiding repeated logins
  • ✅ Preserving cookies and local storage

When to skip profiles:

  • Public websites that don't require authentication
  • One-off scraping tasks
  • Testing scenarios

File Management

Upload files:

smooth upload-file /path/to/file.pdf --name "document.pdf" --purpose "Contract for review"

Delete files:

smooth delete-file <file-id>

Best Practices

  1. Always save session IDs - You'll need them for subsequent commands
  2. Use profiles for authenticated sessions - Track which profile is for which website
  3. Wait 5 seconds after closing sessions - Ensures state is properly saved
  4. Use descriptive profile IDs - e.g., "linkedin-personal", "twitter-company"
  5. Close sessions when done - Graceful close (default) ensures proper cleanup
  6. Use structured output for data extraction - Provides clean, typed results
  7. Run sequential tasks in the same session - Keep the session continuous when steps rely on previous work.
  8. Use subagents with one session each for independent tasks - Run tasks in parallel to speed up work.
  9. Coordinate resources - When working with subagents, you must create and assign ONE section to each subagent without having them creating them.
  10. Do not add url query parameters to urls, e.g. avoid ?filter=xyz - Start at the base URL and let the agent navigate the UI to apply filters.
  11. Smooth is powered by an intelligent agent - Give it tasks, not individual steps.

Troubleshooting

"Session not found" - The session may have timed out or been closed. Start a new one.

"Profile not found" - Check smooth list-profiles to see available profiles.

CAPTCHA or authentication issues - Use smooth live-view <session-id> to let the user manually intervene.

Task timeout - Increase --max-steps or break the task into smaller steps.

Known issues

Dealing with session ids starting with a - (dash) sign - Session ids might start with a dash sign. In those situations, deal with them using the -- (double-dash) separator


Command Reference

Profile Commands

  • smooth create-profile [--profile-id ID] - Create a new profile
  • smooth list-profiles - List all profiles
  • smooth delete-profile <profile-id> - Delete a profile

File Commands

  • smooth upload-file <path> [--name NAME] [--purpose PURPOSE] - Upload a file
  • smooth delete-file <file-id> - Delete an uploaded file

Session Commands

  • smooth start-session [OPTIONS] - Start a browser session
  • smooth close-session <session-id> [--force] - Close a session
  • smooth run <session-id> "<task>" [OPTIONS] - Run a task
  • smooth extract <session-id> --schema SCHEMA [OPTIONS] - Extract structured data
  • smooth evaluate-js <session-id> "code" [--args JSON] - Execute JavaScript
  • smooth live-view <session-id> - Get interactive live URL
  • smooth recording-url <session-id> - Get recording URL
  • smooth downloads <session-id> - Get downloads URL

All commands support --json flag for JSON output.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.68%
按下载量换算107

Claude

32.16%
按下载量换算102

Cursor

19.99%
按下载量换算63

Gemini CLI

9.11%
按下载量换算29

安全审计

Gen Agent Trust Hub

可疑

Socket

可疑

Snyk

未通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills