smoke-test
Automates the setup and verification of Mastra projects in Chrome for quick sanity testing.
Install
mkdir -p .claude/skills/smoke-test && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2277" && unzip -o skill.zip -d .claude/skills/smoke-test && rm skill.zipInstalls to .claude/skills/smoke-test
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Create a Mastra project using create-mastra and smoke test the studio in Chrome using Chrome MCP serverKey capabilities
- →Initialize Mastra project with specific versions
- →Validate parameters before execution
- →Automate Chrome browser interaction for testing
- →Support multiple package managers (npm, pnpm, etc)
- →Execute end-to-end studio environment verification
How it works
It parses input parameters to run a scaffold script and subsequently triggers a browser automation workflow to verify the studio UI health.
Inputs & outputs
When to use smoke-test
- →Initialize a new Mastra project
- →Automated smoke testing of Mastra Studio
- →Version-controlled project scaffolding
About this skill
Smoke Test Skill
Creates a new Mastra project using create-mastra@<tag> and performs smoke testing of the Mastra Studio in Chrome.
This skill is for Claude Code with Chrome MCP server. For MastraCode with built-in browser tools, use mastracode-smoke-test instead.
Usage
/smoke-test --directory <path> --name <project-name> --tag <version> [--pm <package-manager>] [--llm <provider>]
/smoke-test -d <path> -n <project-name> -t <version> [-p <package-manager>] [-l <provider>]
Parameters
| Parameter | Short | Description | Required | Default |
|---|---|---|---|---|
--directory | -d | Parent directory where project will be created | Yes | - |
--name | -n | Project name (will be created as subdirectory) | Yes | - |
--tag | -t | Version tag for create-mastra (e.g., latest, alpha, 0.10.6) | Yes | - |
--pm | -p | Package manager: npm, yarn, pnpm, or bun | No | npm |
--llm | -l | LLM provider: openai, anthropic, groq, google, cerebras, mistral | No | openai |
Examples
# Minimal (required params only)
/smoke-test -d ~/projects -n my-test-app -t latest
# Full specification
/smoke-test --directory ~/projects --name my-test-app --tag alpha --pm pnpm --llm anthropic
# Using short flags
/smoke-test -d ./projects -n smoke-test-app -t 0.10.6 -p bun -l openai
Step 0: Parameter Validation (MUST RUN FIRST)
CRITICAL: Before proceeding, parse the ARGUMENTS and validate:
- Parse arguments from the ARGUMENTS string provided above
- Check required parameters:
--directoryor-d: REQUIRED - fail if missing--nameor-n: REQUIRED - fail if missing--tagor-t: REQUIRED - fail if missing
- Apply defaults for optional parameters:
--pmor-p: Default tonpmif not provided--llmor-l: Default toopenaiif not provided
- Validate values:
pmmust be one of:npm,yarn,pnpm,bunllmmust be one of:openai,anthropic,groq,google,cerebras,mistraldirectorymust exist (or will be created)nameshould be a valid directory name (no spaces, special chars)
If validation fails: Stop and show usage help with the missing/invalid parameters.
If -h or --help is passed: Show this usage information and stop.
Prerequisites
This skill requires the Chrome MCP server (Claude-in-Chrome) for browser automation. Ensure it's configured and running.
The Chrome MCP server provides tools like tabs_create_mcp, tabs_context_mcp, navigate_mcp, click_mcp, type_mcp, and screenshot_mcp.
Execution Steps
Step 1: Create the Mastra Project
Run the create-mastra command with explicit parameters to avoid interactive prompts:
# For npm
npx create-mastra@<tag> <project-name> --no-git --llm <llmProvider> --timeout 120000
# For yarn
yarn dlx create-mastra@<tag> <project-name> --no-git --llm <llmProvider> --timeout 120000
# For pnpm
pnpm create mastra@<tag> <project-name> --no-git --llm <llmProvider> --timeout 120000
# For bun
bunx create-mastra@<tag> <project-name> --no-git --llm <llmProvider> --timeout 120000
-c/--components and -e/--example were removed and must not be used. -l/--llm is still supported and is the flag used above. Use the managed template by default, --empty for a deliberately empty project, or --template <template> for a specific template. If a flag is rejected, inspect the initializer's help rather than retrying a legacy command: npm create mastra@<tag> -- --help, npx create-mastra@<tag> --help, pnpm create mastra@<tag> --help, yarn dlx create-mastra@<tag> --help, or bunx create-mastra@<tag> --help.
Wait for the installation to complete. This may take 1-2 minutes depending on network speed.
Step 2: Verify Project Structure
After creation, verify the project has:
package.jsonwith mastra dependenciessrc/mastra/index.tsexporting a Mastra instance.envfile (may need to be created)
Step 2.5: Add Browser Agent for Browser Testing
To test browser functionality, add a browser-enabled agent:
- Install browser packages:
<pm> add @mastra/stagehand
# or for deterministic browser automation:
<pm> add @mastra/agent-browser
- Create browser-agent.ts in
src/mastra/agents/:
import { Agent } from '@mastra/core/agent';
import { Memory } from '@mastra/memory';
import { StagehandBrowser } from '@mastra/stagehand';
export const browserAgent = new Agent({
id: 'browser-agent',
name: 'Browser Agent',
instructions: `You are a helpful assistant that can browse the web to find information.`,
model: '<provider>/<model>', // e.g., 'openai/gpt-4o'
memory: new Memory(),
browser: new StagehandBrowser({
headless: false,
}),
});
- Update index.ts to register the browser agent:
import { browserAgent } from './agents/browser-agent';
// In Mastra config:
agents: { weatherAgent, browserAgent },
Step 3: Configure Environment Variables
Based on the selected LLM provider, check for the required API key:
| Provider | Required Environment Variable |
|---|---|
| openai | OPENAI_API_KEY |
| anthropic | ANTHROPIC_API_KEY |
| groq | GROQ_API_KEY |
GOOGLE_GENERATIVE_AI_API_KEY | |
| cerebras | CEREBRAS_API_KEY |
| mistral | MISTRAL_API_KEY |
Check in this order:
-
Check global environment first: Run
echo $<ENV_VAR_NAME>to see if the key is already set globally- If set globally, the project will inherit it - no
.envfile needed - Skip to Step 4
- If set globally, the project will inherit it - no
-
Check project
.envfile: If not set globally, check if.envexists in the project and contains the key -
Ask user only if needed: If the key is not available globally or in
.env:- Ask the user for the API key
- Create the
.envfile with the provided key
Only check for the ONE key matching the selected provider - don't check for all providers.
Step 4: Start the Development Server
Navigate to the project directory and start the dev server:
cd <directory>/<project-name>
<packageManager> run dev
The server typically starts on http://localhost:4111. Wait for the server to be ready before proceeding.
Step 5: Smoke Test the Studio
Use the Chrome browser automation tools to test the Mastra Studio.
5.1 Initial Setup
- Get browser context using
tabs_context_mcp - Create a new tab using
tabs_create_mcp - Navigate to
http://localhost:4111
5.2 Test Checklist
Perform the following smoke tests using the Chrome automation tools:
Navigation & Basic Loading
- Studio loads successfully (page contains "Mastra Studio" or shows agents list)
- Take a screenshot of the home page
Agents Page (/agents)
- Navigate to agents page
- Verify at least one agent is listed (the example agent from
--default) - Take a screenshot
Agent Detail (/agents/<agentId>/chat)
- Click on an agent to view details
- Verify the agent overview panel loads
- Verify model settings panel is visible
- Take a screenshot
Agent Chat
- Send a test message to the agent (e.g., "What's the weather in Tokyo?")
- Wait for response
- Verify response appears in the chat
- Take a screenshot of the conversation
Browser Agent (/agents/browser-agent/chat) - if browser agent was added
- Navigate to the browser-agent
- Send a message: "Go to example.com and tell me what you see"
- Verify the agent launches a browser and extracts content
- Verify response includes page content
- Take a screenshot
Tools Page (/tools)
- Navigate to tools page
- Verify tools list loads (should show get-weather tool)
- Take a screenshot
Tool Execution (/tools/get-weather)
- Click on the get-weather tool to open detail page
- Find the city input field and enter a test city (e.g., "Tokyo")
- Click Submit button
- Wait for execution to complete
- Verify JSON output appears with weather data (temp, condition, etc.)
- Take a screenshot
Workflows Page (/workflows)
- Navigate to workflows page
- Verify workflows list loads (should show weather-workflow)
- Take a screenshot
Workflow Execution (/workflows/weather-workflow)
- Click on the weather-workflow to open detail page
- Verify visual graph displays (shows workflow steps)
- Find the city input field and enter a test city (e.g., "London")
- Click Run button
- Wait for execution to complete
- Verify steps show success (green checkmarks)
- Click to view JSON output modal
- Verify execution details with timing appear
- Take a screenshot
Settings Page (/settings)
- Navigate to settings page
- Verify settings page loads
- Take a screenshot
Observability Page (/observability)
- Navigate to observability page
- Verify traces list shows recent activity (from previous tests)
- Click on a trace to view details
- Verify timeline view shows steps and timing
- Take a screenshot
Scorers Page (/evaluation?tab=scorers)
- Navigate to
/evaluation?tab=scorers(NOT/scorers- that route doesn't exist) - Verify scorers list loads (shows 3 example scorers)
- Take a screenshot
Additional Pages (verify load only)
- Templates page (
/templates) - Gallery of starter templates - Request Context page (`/request-contex
Content truncated.
When not to use it
- →Non-Mastra project environments
- →Systems without Chrome installed
- →Offline development workflows
Prerequisites
Limitations
- →Requires valid project tag
- →Dependent on Chrome MCP availability
- →Requires internet access for scaffolding
How it compares
It combines project scaffolding with automated smoke testing in a single step instead of separate setup and validation phases.
Compared to similar skills
smoke-test side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| smoke-test (this skill) | 6 | 4mo | Review | Beginner |
| perf-lighthouse | 13 | 5mo | Review | Intermediate |
| 1k-dev-commands | 2 | 26d | Review | Beginner |
| instantly-ci-integration | 1 | 24d | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by mastra-ai
View all by mastra-ai →You might also like
perf-lighthouse
tech-leads-club
Run Lighthouse audits locally via CLI or Node API, parse and interpret reports, set performance budgets. Use when measuring site performance, understanding Lighthouse scores, setting up budgets, or integrating audits into CI. Triggers on: lighthouse, run lighthouse, lighthouse score, performance audit, performance budget.
1k-dev-commands
OneKeyHQ
Development commands — yarn scripts for dev servers, building, linting, testing, and troubleshooting.
instantly-ci-integration
jeremylongshore
Configure Instantly CI/CD integration with GitHub Actions and testing. Use when setting up automated testing, configuring CI pipelines, or integrating Instantly tests into your build process. Trigger with phrases like "instantly CI", "instantly GitHub Actions", "instantly automated tests", "CI instantly".
groq-ci-integration
jeremylongshore
Configure Groq CI/CD integration with GitHub Actions and testing. Use when setting up automated testing, configuring CI pipelines, or integrating Groq tests into your build process. Trigger with phrases like "groq CI", "groq GitHub Actions", "groq automated tests", "CI groq".
obsidian-ci-integration
jeremylongshore
Set up GitHub Actions CI/CD for Obsidian plugin development. Use when automating builds, tests, and releases for your plugin, or setting up continuous integration for Obsidian projects. Trigger with phrases like "obsidian CI", "obsidian github actions", "obsidian automated build", "obsidian CI/CD".
apollo-ci-integration
jeremylongshore
Configure Apollo.io CI/CD integration. Use when setting up automated testing, continuous integration, or deployment pipelines for Apollo integrations. Trigger with phrases like "apollo ci", "apollo github actions", "apollo pipeline", "apollo ci/cd", "apollo automated tests".