
An AI-assisted VS Code workspace for Appium and BDD test automation. Prepare an
MCP environment, send Gherkin scenarios to GitHub Copilot, and replay generated
Behave tests. Review generated code and assertions before relying on test results.
This is an independently maintained fork of
BDD AI Toolkit / AutoGenesis,
not an official Microsoft extension. Its extension ID is
bingbingniu.bdd-appium-toolkit.
The setup panel uses a purple mobile-automation identity, theme-aware surfaces,
and separate environment-check and MCP-preparation cards. The sidebar icon is a
phone with a play symbol and AI sparkle. Existing setup actions are retained.
Appium dependency downloads
Appium Setup uses https://packagefeedproxy.microsoft.io/pypi/simple/ by default.
The same index is included in the generated MCP startup environment so that
uv run does not return to PyPI for dependency synchronization. Windows browser
MCP does not receive this default.
This feed resolved dependency downloads and allowed an MCP initialization
handshake with 35 tools on one Windows machine. This is not a service availability
guarantee or confirmation of service-owner/IT approval. Validate another tester
environment and the organization's usage requirements before broad distribution.
This is an online solution, not an offline dependency bundle.
The configured feed is not guaranteed to be accessible or approved for every
organization. Confirm that the feed is permitted for your environment, or select
an approved HTTPS package index before running Appium Setup.
- Set
bddAppiumToolkit.appium.indexUrl in VS Code User Settings to change the
default. An empty value leaves index selection to uv (including uv.toml).
- Existing nonempty
UV_DEFAULT_INDEX, UV_INDEX_URL, UV_INDEX, or
UV_EXTRA_INDEX_URL environment variables take precedence over the extension
setting. They are inherited, not copied into the workspace MCP file. Restart
VS Code after changing its inherited environment.
- A nonempty extension setting overrides uv configuration-file defaults. The
setting accepts an HTTPS URL without embedded credentials or query parameters;
use uv authentication for authenticated feeds.
- After changing the setting, stop the server and run Appium Setup again to
update its startup configuration. Review any configuration-reset prompt first.
- Failed dependency installation, process errors, and the 10-minute timeout stop
setup rather than producing a new success marker. Error output is bounded and
URL paths, credentials, and query parameters are redacted.
Python (the server declares >=3.10), uv, and the required device/Appium
environment remain prerequisites. This change does not require Python 3.12 or
install Android SDK/Appium drivers for you.
Updating from 0.1.0
Version 0.1.1 replaces the deprecated tool.uv.dev-dependencies field in bundled
MCP projects with dependency-groups.dev, without changing runtime dependencies.
It also introduces the purple phone/play/sparkle icon and theme-aware setup
workspace. See release notes.
Install the updated VSIX, stop the MCP server, and run Setup again for each
configured platform to refresh the separately stored server files. Review any
configuration-reset prompt before continuing, then start the server again.
Installing the VSIX alone does not replace an existing MCP environment.
Moving from the original extension
Disable the original extension and stop its MCP servers before using this fork.
The new extension has separate storage, commands, settings, and MCP names
(bdd-appium-toolkit-<project>-appium). It does not delete old MCP entries or
overwrite old extension storage. Review prompts/skills that refer to an old MCP
name and copy any customized Copilot prompt to
bddAppiumToolkit.cucumber.copilotPrompt if needed. Existing test files and
bdd_ai_conf.json are retained.
For a supplied VSIX, use Extensions > ... > Install from VSIX.
Marketplace publication is not required for internal testing. On a later
extension update, the setup panel prompts for MCP environment updates; these
are not silently applied to custom workspace configurations. Setup prepares the
environment; start the actual MCP server from the generated configuration and
verify the connection separately.
✨ Features
- 🎥 AI-Powered Recording - Write Gherkin scenarios, let AI generate automation code
- ▶️ One-Click Replay - Execute recorded scenarios directly from feature files
- 🔧 Multi-Platform Support - Windows (browser), Appium (macOS & Mobile)
- 🤖 MCP Integration - Seamless GitHub Copilot connection via Model Context Protocol
- 🎯 Interactive CodeLens - Record and replay buttons above each scenario
- 📝 Natural Language Tasks - Execute automation from plain English descriptions
👨💻 For Developers: See CONTRIBUTING.md for development setup and contribution guidelines.
🚀 Setup Guide
Step 1: Install Extension
Install BDD Appium Toolkit from its Marketplace listing when available, or use
Extensions > ... > Install from VSIX with the supplied package.
Step 2: Setup Environment
Open Setup Panel
Click the BDD Appium Toolkit icon in the Activity Bar (left sidebar)
Auto-Resolve Environment
The setup panel checks Python (>=3.10), Node.js/npm, uv, and VS Code CLI.
Use the resolve button for supported installation actions. On Windows,
Python and Node.js/npm require manual installation if missing; automatic
resolution handles uv and VS Code CLI. Device connectivity, Appium and its
platform drivers must be prepared separately.
Choose Platform & Click Setup
Select your target platform:
- Windows - Browser automation
- Appium - For macOS and mobile testing (iOS/Android)
Click "Windows Browser" or "Appium / Mobile" to prepare the selected
MCP environment. Review installation prompts and wait for completion.
macOS users: Before using Appium, you need to manually start the Appium server first. Run the provided script:
cd appium-mcp-server/docs
./start_appium_on_mac.sh
For detailed setup instructions, see macOS Appium Setup Guide.
Configure Automation Platform
Open bdd_ai_conf.json in the project root and update the configuration for your target platform, such as:
- Account credentials (e.g. BrowserStack
userName, accessKey)
- App
bundleId or appPackage/appActivity
- Device name, platform version, etc.
Open MCP Configuration File
Click "Open connection settings" to view/edit the MCP configuration file
The config file will be opened in the editor
Start MCP Server
In the opened configuration file, click the "Start" button (CodeLens action)
This launches the MCP server
Verify Connection in GitHub Copilot
- Open GitHub Copilot Chat
- Check MCP connections panel
- Confirm the new
bdd-appium-toolkit-<project>-appium MCP is connected
Step 3: Record & Replay
Now you're ready to use AI-powered test automation!
Recording (AI generates code):
- Create/open a
.feature file
- Write your scenario in Gherkin
- Click "Send to Copilot" above the scenario
- AI generates automation code automatically
If .github/skills/autoGenesis-run/SKILL.md exists in the workspace, the extension sends /autoGenesis-run <Scenario Name> to Copilot instead of the default prompt.
Replaying (Execute tests):
- Prepare the test project's Python environment using its dependency manifest.
Appium Setup prepares the MCP server's separate environment, not the project's
replay environment.
- Open a
.feature file with generated step implementations.
- Click "Run" above a scenario. The extension runs
uv run python -m behave --name ... in the test project context.
- Review terminal output and assertions to determine the test result.
The Appium download-source setting applies to MCP setup and generated startup
configuration. It does not configure ordinary terminals, pip, or the replay
project. If your approved index is the same as the extension default, a
PowerShell session can explicitly select it before installing project dependencies:
$env:UV_INDEX_URL = "https://packagefeedproxy.microsoft.io/pypi/simple/"
uv pip install --python .\.venv\Scripts\python.exe -r .\requirements.txt
uv run python -m behave --version
This example assumes the project already has a .venv and requirements.txt.
Use the project's own setup instructions if it uses a different dependency
manifest. Do not disable TLS verification to work around connection failures.
🎯 Advanced Features
Natural Language Tasks
Execute ad-hoc automation without writing scenarios:
Command: BDD Appium Toolkit: Execute Natural Language Task
Example:
"Open Chrome, go to google.com, search for 'AI testing', click first result"
AI converts your description to automation and executes immediately.
Custom Copilot Prompt
Customize how AI generates code:
{
"bddAppiumToolkit.cucumber.copilotPrompt": "Generate step definitions for:\n\n${scenario_text}\n\nFile: ${feature_file_path}\n\nUse Behave framework and follow PEP 8 style."
}
Available placeholders:
${scenario_text} - Full scenario content
${feature_file_path} - Path to feature file
Note: This prompt is used as fallback when the autoGenesis-run skill is not present in the workspace.
📚 Resources
📄 License
MIT License - See LICENSE
Happy Testing! 🎉