如何 3 步跑通 Skyvern CLI:从首次启动到工作流自动化的完整实用指南
【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern
想让浏览器自动化工作流定时跑、批量跑,又不想每次都打开网页界面点来点去?Skyvern 是一个用 AI 驱动浏览器操作的平台,能把"在网站上完成某件事"的描述变成可重复执行的工作流。而它的命令行工具 Skyvern CLI,让你一条skyvern quickstart就把服务拉起来,之后触发工作流、传参、看状态、停服务,全程只碰终端——对脚本、CI 和 AI Agent 都友好。
全局速览:最常用的 10 条命令速查表
先建立整体印象。下面是日常用得最多的命令,用到哪个查哪个:
| 命令 | 作用 | 什么时候用 |
|---|---|---|
skyvern quickstart | 一条命令完成环境初始化并启动服务 | 首次部署 |
skyvern run server | 只启动 API 后端(默认 8000 端口) | 只要 API,不要界面 |
skyvern run all | 并行启动 API + UI | 需要网页界面调试 |
skyvern run ui | 只启动 UI(默认 8080 端口) | 后端已跑,补开界面 |
skyvern run dev | 后台启动 API + UI,立即释放终端 | 不想占着终端窗口 |
skyvern stop all | 停掉 8000/8080/9090 上的全部服务 | 干净地收工 |
skyvern run code 脚本.py | 运行 Python 脚本并注入参数 | 写自动化脚本 |
skyvern workflow run --id <wpid> | 触发工作流,可--wait等结果 | 脚本化批量执行 |
skyvern run mcp | 启动 MCP 服务器 | 接入 Claude、Cursor 等 AI 工具 |
skyvern doctor/skyvern status | 检查安装健康度 / 服务是否在跑 | 排错第一反应 |
所有命令的实现都在 skyvern/cli/ 目录里,遇到看不懂的参数,直接翻源码比查文档快。
3 步跑起来:从安装到打开界面
第 1 步:装好 Python 环境和 CLI
前提只有一个:Python 3.11 / 3.12 / 3.13。然后安装带服务端依赖的完整版:
pip install "skyvern[all]"装完就有skyvern命令可用。如果你走 Docker Compose 路线(不想装 Python),则需要先启动 Docker,并在仓库目录下执行git clone https://gitcode.com/GitHub_Trending/sk/skyvern && cd skyvern。
第 2 步:一条命令完成初始化
skyvern quickstart它会交互式地帮你搞定:选择部署方式、配置 LLM Provider(写入 API key)、安装 Chromium 浏览器、初始化数据库,最后询问是否立刻启动服务。全程跟着提示走即可。
几个常用开关:
| 参数 | 含义 | 示例/默认值 |
|---|---|---|
--server-only | 只起后端,不起 UI | 默认带 UI |
--no-postgres | 不起 Postgres 容器(默认走本地 SQLite~/.skyvern/data.db) | 默认起 Postgres |
--database-string | 连接已有的 Postgres | postgresql+psycopg://user:pass@host:5432/db |
--skip-browser-install | 跳过 Chromium 安装 | 默认安装 |
--docker-compose | 用 Docker Compose 全容器化部署 | 需在仓库目录内 |
第 3 步:确认服务真的起来了 ✅
启动成功后按两个地址验证:
- UI 界面:http://localhost:8080 —— 能看到工作流列表就说明前后端都通了
- API 服务:http://localhost:8000 —— 能被访问说明后端活着
如果界面一直转圈,用docker compose logs -f(Docker 路线)或重跑skyvern doctor(pip 路线)看哪一步卡住了。
日常操作:按场景选命令
只起后端,不要网页界面
无头服务器上只暴露 API 时,用skyvern run server单独拉 API。注意它读取.env里的PORT配置,默认就是 8000。
端口 8080 被占用了怎么办
skyvern run ui启动前会检测端口。发现被占时它会询问是否杀掉占用进程;交互场景直接确认即可,脚本场景则加--force跳过询问:
skyvern run ui --force注意--force会直接终止占用 8080 的进程,动手前确认那个进程不是别人的服务。
怎么干净地停掉服务
停止命令按端口找进程并终止,不需要你去记 PID:
| 命令 | 停什么 |
|---|---|
skyvern stop all | 8000 + 8080 + 9090 上的 API 和 UI |
skyvern stop server | 只停 API(--port可指定其他端口) |
skyvern stop ui | 只停 UI |
skyvern stop docker | 等价于docker compose down,停整个容器栈 |
想要后台常驻,终端不能一直挂着
用skyvern run dev:它以脱离终端的方式把 API 和 UI 都放到后台,终端立即返回,打印两个 PID 供你随时核对。停掉它们同样用skyvern stop all。
进阶玩法:脚本化、工作流自动化与 MCP
用 run code 批量执行 Python 脚本
如果你已经用 Skyvern 的 SDK 写好了自动化脚本,skyvern run code可以直接在 CLI 里跑它,参数有三种传法(优先级从高到低):
| 方式 | 写法 | 适合场景 |
|---|---|---|
| JSON 文件 | --params-file params.json | 参数多、会被反复复用 |
| JSON 字符串 | --params '{"k1": "v1"}' | 参数少,一条命令带过去 |
| 单个 flag | -p k1=v1 -p k2=v2 | 临时改一两个值 |
例如:skyvern run code my_script.py --params-file params.json。脚本不存在、不是.py后缀、JSON 写错,它都会打印明确的修正提示而不是直接抛异常。
在命令行触发、等待、取消工作流
工作流管理命令是脚本化批量的核心。触发并同步等结果(最多 5 分钟):
skyvern workflow run --id wpid_xxx \ --params '{"file": "invoice.pdf"}' --wait --timeout 300其余操作都是同一风格:
| 场景 | 命令 |
|---|---|
| 查组织里的所有工作流 | skyvern workflow list(支持--search、--page-size) |
| 查某次运行里的任务明细 | skyvern tasks list --workflow-run-id wr_xxx |
| 查运行状态 | skyvern workflow status --run-id wr_xxx |
| 取消正在跑的运行 | skyvern workflow cancel --run-id wr_xxx |
| 失败后重跑 | skyvern workflow retry --run-id wr_xxx |
| 配好定时任务 | skyvern schedule系列(list / create / enable / disable / delete) |
这套组合拳的含义是:定时任务交给schedule,单次执行交给workflow run --wait,结果查询交给tasks list——整个自动化闭环都不用离开终端。
把 Skyvern 暴露成 MCP 服务器
想让 Claude 或 Cursor 直接驱动浏览器自动化?skyvern run mcp就能起一个 MCP 服务器,关键参数:
| 参数 | 含义 | 默认值 |
|---|---|---|
--transport | 传输方式:stdio/sse/streamable-http | stdio |
--scope | 只暴露部分工具:operate/build/browser/lean | all |
--host/--port/--path | HTTP 传输时的监听地址 | 127.0.0.1:8000/mcp |
--browser-extension | 额外启用 Chrome 扩展桥接(仅 stdio) | 关 |
stdio是默认值,适合本地 AI 编程工具直接拉起;要远程托管时换streamable-http并显式传--host 0.0.0.0。
避坑与排错:常见报错对照表 ⚠️
| 常见问题 | 原因 | 处理 |
|---|---|---|
table organizations already exists | skyvern==1.0.31的已知 bug | 删掉~/.skyvern/data.db,升级到 1.0.32+,再跑skyvern quickstart |
pip install skyvern报 ResolutionImpossible | 1.0.31 的 litellm/fastmcp 依赖冲突 | 升级到 1.0.32+,或改用uv pip install skyvern |
Docker is not installed or not running | Docker Desktop 没启动 | 启动 Docker 后重跑;Compose 路线强依赖 Docker |
Postgres 容器名冲突(postgresql-container) | 残留的独立 Postgres 容器和 Compose 自带服务打架 | 重跑skyvern quickstart,按提示移除旧容器 |
| UI 起不来,提示端口 8080 被占 | 有其他进程占用 | 确认后skyvern run ui --force,或先skyvern stop ui |
| 服务没起来,提示浏览器安装未完成 | Chromium 没装好 | playwright install chromium后再skyvern run server |
| 不确定环境哪里有问题 | —— | 先跑skyvern doctor,它会逐项检查依赖、配置和服务状态 |
更多资源
Skyvern CLI 把"部署、运行、排错"都压缩进了一个终端工具,装完skyvern[all]之后,你可以再也不会需要为一次自动化任务去开浏览器。下面两个入口足够你继续深入:
- 官方文档与快速上手:README.md
- CLI 全部命令源码:skyvern/cli/
【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考