DeerFlow Smoke Test
bytedance/deer-flow
Walks through an end-to-end smoke test of a DeerFlow deployment: pull the latest code, deploy with Docker or locally, verify services, run health checks and write a report.
Smoke-tests a Skyvern deployment by checking the backend API, frontend rendering, browser session provisioning and workflow execution in sequence.
$ npx skills add Skyvern-AI/skyvern --skill testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Skyvern-AI/skyvern testing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Skyvern-AI/skyvern.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skyvern/cli/skills/testing .claude/skills/testing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "testing" agent skill from https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testing into .claude/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Skyvern-AI/skyvern --skill testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Skyvern-AI/skyvern testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Skyvern-AI/skyvern.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skyvern/cli/skills/testing .agents/skills/testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "testing" agent skill from https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testing into .agents/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Skyvern-AI/skyvern --skill testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Skyvern-AI/skyvern testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Skyvern-AI/skyvern.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skyvern/cli/skills/testing .cursor/skills/testing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "testing" agent skill from https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testing into .cursor/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Skyvern-AI/skyvern.git --path skyvern/cli/skills/testing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Skyvern-AI/skyvern --skill testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Skyvern-AI/skyvern testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Skyvern-AI/skyvern.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skyvern/cli/skills/testing .gemini/skills/testing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "testing" agent skill from https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testing into .gemini/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Skyvern-AI/skyvern testingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Skyvern-AI/skyvern --skill testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Skyvern-AI/skyvern.git skills-src && mkdir -p .github/skills && cp -r skills-src/skyvern/cli/skills/testing .github/skills/testing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "testing" agent skill from https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testing into .github/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Skyvern-AI/skyvern --skill testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Skyvern-AI/skyvern testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Skyvern-AI/skyvern.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skyvern/cli/skills/testing .opencode/skills/testing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "testing" agent skill from https://github.com/Skyvern-AI/skyvern/tree/main/skyvern/cli/skills/testing into .opencode/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
testingSmoke-tests a Skyvern deployment by checking the backend API, frontend rendering, browser session provisioning and workflow execution in sequence.
The skill runs three checks in order and stops at the first failure, since later checks depend on earlier ones. The first creates a browser session, opens the base URL, fetches the workflows API and validates that the discover page shows no errors and does show its task prompt heading and input. Any HTTP response proves the backend is reachable, with a 2xx meaning healthy and 401 or 403 meaning it is running but needs authentication; only a network error means it is down.
The second check provisions a browser session, navigates to a public example page, validates what it shows and closes the session, testing the path Skyvern uses to provide cloud browsers. The third check exercises workflow execution end to end. An alternate route using network request inspection is given for extension mode, where the evaluate tool is unavailable.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 44de8cd. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VITE_SKYVERN_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Skyvern Deployment Smoke Test loads about 1.5k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 533 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Skyvern-AI/skyvern at commit 44de8cd, republished under its AGPL-3.0 licence (© Skyvern-AI). 533 words, ~1,478 tokens.
.claude/skills/testing/SKILL.md (or your agent's skills folder).Smoke-test a Skyvern deployment to verify the backend API responds, the frontend renders correctly, browser sessions can be provisioned, and workflows can execute end to end.
Run these three checks sequentially. Stop on the first failure — later checks depend on earlier ones passing.
Verify the API server is reachable and the frontend renders correctly.
skyvern_browser_session_create(timeout=5)
skyvern_navigate(url="{{base_url}}")
skyvern_evaluate(expression="fetch('/api/v1/workflows?page=1&page_size=1', {credentials: 'include'}).then(r => ({status: r.status, ok: r.ok, reachable: r.status > 0})).catch(e => ({status: 0, ok: false, reachable: false, error: e.message}))")Pass: fetch returns a response (any HTTP status confirms the backend is reachable).
A 2xx means fully healthy; 401/403 means the backend is running but requires authentication.
Only status: 0 or a network error means the backend is actually down.
In extension mode, skyvern_evaluate is unavailable, so use these commands after you create the browser session:
skyvern_navigate(url="{{base_url}}/api/v1/workflows?page=1&page_size=1")
skyvern_network_requests(url_pattern="/api/v1/workflows", resource_type="document")Pass: Read the document response's status; any HTTP status confirms the backend is reachable.
A 2xx means fully healthy; 401 or 403 means the backend is running but requires authentication.
No captured response means the backend is down.
skyvern_navigate(url="{{base_url}}/discover")
skyvern_validate(prompt="The page does NOT show any error messages, error toasts, 'Something went wrong', a persistent loading spinner, a blank white screen, or a connection refused message")
skyvern_validate(prompt="The page shows 'What task would you like to accomplish?' as a heading, a prompt text input area, an engine version selector, and a send/submit button icon")
skyvern_screenshot()
skyvern_browser_session_close()Pass: backend returned an HTTP response (not a network error) AND both frontend validations return valid: true.
Verify the system can create, use, and close browser sessions end to end. This tests the critical path — Skyvern's ability to provision cloud browsers.
skyvern_browser_session_create(timeout=5)
skyvern_navigate(url="https://example.com")
skyvern_validate(prompt="The page shows 'Example Domain' as a heading and contains a link to 'More information'")
skyvern_browser_session_close()Pass: session creation succeeds, navigation works, and the external page loads correctly. If this fails, browser provisioning infrastructure is broken.
Verify a minimal workflow can be created and executed to completion.
skyvern_workflow_create(definition='{"title":"Deployment Smoke Test","workflow_definition":{"parameters":[],"blocks":[{"block_type":"goto_url","label":"visit","url":"https://example.com"}]}}', format="json")
skyvern_workflow_run(workflow_id="<id from above>", wait=true, timeout_seconds=60)
skyvern_workflow_status(run_id="<run_id from above>")Pass: workflow run completes with status completed. If this fails, the execution
pipeline (Temporal workers, browser provisioning, or task orchestration) is broken.
Always clean up the smoke test workflow, regardless of pass or fail:
skyvern_workflow_delete(workflow_id="<id>", force=true)| Parameter | Default | Description |
|---|---|---|
base_url | http://localhost:8080 | Frontend URL to test (Skyvern default is 8080) |
All three checks pass in order. If any check fails:
skyvern_screenshot()When a validation returns valid: false:
skyvern_wait(time_ms=3000)skyvern_screenshot()ALWAYS close the session, even if earlier steps fail. If any step errors out:
skyvern_screenshot()skyvern_browser_session_close() before moving to the next check| Symptom | Likely Cause | Fix |
|---|---|---|
| Connection refused | Backend not running | ./run_skyvern.sh or skyvern run server |
| Auth redirect to /sign-in | Running cloud build (Clerk auth) | Use the OSS entry point (src/main.tsx) instead of the cloud entry (cloud/index.tsx) |
| Blank page | Frontend not built/running | cd skyvern-frontend && npm run dev |
| API returns 401/403 | API key invalid or expired | Check VITE_SKYVERN_API_KEY. Note: 401/403 still confirms the backend is running. |
| Port 5173 instead of 8080 | Using Vite default, not Skyvern's | Skyvern runs on 8080 by default. Use /testing http://localhost:8080 |
| Session create fails | Browser infra down | Check Docker/cloud browser service |
| Workflow stuck | Workers not running | Check Temporal workers with ./run_worker.sh |
| API check 404 on fetch | Non-Vite server without proxy | The API health check uses fetch('/api/v1/...') which relies on the Vite dev server proxy. For production builds served by another web server, ensure the server proxies /api/ to the backend. |
© Skyvern-AI, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skyvern/cli/skills/testing of Skyvern-AI/skyvern.
Open the folder on GitHubat commit 44de8cd
Skyvern Deployment Smoke Test next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Skyvern Deployment Smoke Test this skillSkyvern-AI/skyvern | 23k | — | ~1.5k | Automated safety check: Pass | AGPL-3.0 | |
| DeerFlow Smoke Testbytedance/deer-flow | 83k | — | ~2.5k | Automated safety check: Notes | MIT | |
| Azure DeploymentEmeaAppGbb/spec2cloud | 100 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Sdaf Sap InstallationAzure/sap-automation | 145 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Deploy Dynamo Recipeai-dynamo/dynamo | 8.2k | — | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Deploy DiagnosticsEmeaAppGbb/spec2cloud | 100 | — | ~511 | Automated safety check: Pass | MIT |
bytedance/deer-flow
Walks through an end-to-end smoke test of a DeerFlow deployment: pull the latest code, deploy with Docker or locally, verify services, run health checks and write a report.
EmeaAppGbb/spec2cloud
Provision Azure infrastructure, deploy to Azure Container Apps, and verify via smoke tests.
Azure/sap-automation
Guide SDAF operating-system, database, and SAP installation after the SAP-system workspace and reviewed media are ready.
ai-dynamo/dynamo
Deploys one assigned DynamoGraphDeployment and proves it with an OpenAI-compatible smoke test.
EmeaAppGbb/spec2cloud
Diagnose and resolve Azure deployment failures by analyzing error output, checking Azure resource state, and suggesting fixes.
mastra-ai/mastra
Smoke test Mastra projects locally or deploy to staging/production.
Skyvern-AI/skyvern
Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.
Skyvern-AI/skyvern
Walks through a Skyvern open-source release bump: update the version, rebuild the Python and TypeScript SDKs with Fern, commit, and open a pull request.
Skyvern-AI/skyvern
Automates websites with Skyvern's AI browser agent to fill forms, extract data, download files, log in and run multi-step workflows through SDKs, REST, MCP or a CLI.
Skyvern-AI/skyvern
Reads your git diff, writes a handful of happy-path browser smoke tests, runs them with Skyvern or Chrome DevTools MCP and posts screenshot evidence to the PR.
Skyvern-AI/skyvern
Reads your git diff, decides whether the change needs browser QA, API checks or repo tests, runs that validation and reports pass or fail with evidence.
Categories
Smoke-tests a Skyvern deployment by checking the backend API, frontend rendering, browser session provisioning and workflow execution in sequence. The skill runs three checks in order and stops at the first failure, since later checks depend on earlier ones. The first creates a browser session, opens the base URL, fetches the workflows API and validates that the discover page shows no errors and does show its task prompt heading and input.
Skyvern Deployment Smoke Test fits situations like: verifying a fresh self-hosted Skyvern install works; checking that a local Skyvern instance is healthy after an upgrade; confirming browser sessions can be provisioned; running an end-to-end smoke test of workflow execution.
Run `npx skills add Skyvern-AI/skyvern --skill testing -a claude-code`. Or copy the skill folder (skyvern/cli/skills/testing in Skyvern-AI/skyvern) into .claude/skills/testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Skyvern-AI/skyvern --skill testing -a codex`. Or copy the skill folder (skyvern/cli/skills/testing in Skyvern-AI/skyvern) into .agents/skills/testing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Skyvern-AI/skyvern --skill testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/testing, .gemini/skills/testing, .github/skills/testing and .opencode/skills/testing in your project.
Going by SKILL.md and its folder, Skyvern Deployment Smoke Test needs the command-line tools its instructions call (npm) and credentials named VITE_SKYVERN_API_KEY. Our summary lists: A running Skyvern instance and its base URL; Skyvern browser tools available to the agent.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Skyvern Deployment Smoke Test is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Skyvern Deployment Smoke Test: DeerFlow Smoke Test (bytedance/deer-flow, 83k stars), Azure Deployment (EmeaAppGbb/spec2cloud, 100 stars), Sdaf Sap Installation (Azure/sap-automation, 145 stars) and Deploy Dynamo Recipe (ai-dynamo/dynamo, 8.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Skyvern-AI (a GitHub organization) maintains it in Skyvern-AI/skyvern, which has 23,145 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.
Source: Skyvern-AI/skyvern on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.