Rasa Pro VS Code Extension

Enhanced development experience for Rasa and Rasa Pro projects with
intelligent autocomplete, real-time validation, cross-file consistency checks,
and integrated CLI commands.
✨ Features
🎯 Intelligent IntelliSense
- Context-Aware Autocomplete: Get smart suggestions for intents, entities,
slots, actions, responses, and forms as you type
- YAML Schema Validation: Real-time syntax checking and schema validation
for all Rasa YAML files
- Hover Documentation: View definitions and documentation by hovering over
any Rasa component
- Go to Definition: Navigate instantly to intent, entity, slot, action, or
response definitions
🔍 Cross-File Validation
- Undefined Reference Detection: Automatically detect undefined intents,
actions, responses, slots, and forms referenced in stories/rules
- Unused Component Detection: Identify unused intents, actions, and
responses in your domain
- Built-in Action Support: Recognize and validate Rasa's built-in actions
(
action_listen
, action_restart
, etc.)
- Problems Panel Integration: All validation issues appear in VS Code's
Problems panel with click-to-navigate
🚀 CLI Integration
Execute Rasa commands directly from VS Code:
- Train Model:
Rasa: Train Model
- Train your assistant with one command
- Run Action Server:
Rasa: Run Action Server
- Start your custom actions
server
- Interactive Shell:
Rasa: Interactive Shell
- Test your bot in an
interactive chat
- Run Tests:
Rasa: Run Tests
- Execute your test conversations
All commands stream output to a dedicated "Rasa Output" channel.
📂 Project Explorer
- Component Tree View: Browse all intents, entities, slots, responses,
actions, and forms in a sidebar
- Quick Navigation: Click any component to jump to its definition
- Refresh on Demand: Manual refresh button to update the tree view
📝 Smart Snippets
Pre-built templates for common Rasa patterns:
YAML Snippets:
intent-example
- Intent with training examples
story
- Story template with steps
rule
- Rule template
response
- Response with text variants
slot-text
- Text slot definition
slot-categorical
- Categorical slot definition
form
- Form with required slots
Python Snippets:
rasa-action
- Custom action class boilerplate
⚙️ Configuration
- Auto-Detection: Automatically detects Rasa projects (looks for
domain.yml
and config.yml
)
- Split Domain Support: Works with both single
domain.yml
and split
domain/
folder structures
- Performance Optimized: Handles enterprise projects with 100+ YAML files
efficiently
📋 Requirements
- VS Code: Version 1.105.0 or higher
- Rasa: Rasa Open Source or Rasa Pro installed locally
- Python: Python 3.7+ (required by Rasa)
To install Rasa:
pip install rasa
# or for Rasa Pro
pip install rasa-pro
🚀 Getting Started
- Install the Extension: Search for "Rasa Pro" in VS Code Extensions
marketplace
- Open a Rasa Project: Open any folder containing
domain.yml
and
config.yml
- Start Coding: The extension activates automatically and provides
IntelliSense as you work
🎛️ Extension Settings
Configure the extension via VS Code settings (Cmd+,
or Ctrl+,
):
Setting |
Description |
Default |
rasa-pro-vscode.rasaExecutable |
Path to Rasa CLI executable |
"rasa" |
rasa-pro-vscode.projectRoot |
Root directory of Rasa project |
Auto-detected |
rasa-pro-vscode.enableDiagnostics |
Enable real-time validation |
true |
rasa-pro-vscode.maxFileSize |
Maximum file size for parsing (bytes) |
1048576 (1MB) |
Example Configuration
{
"rasa-pro-vscode.rasaExecutable": "/usr/local/bin/rasa",
"rasa-pro-vscode.enableDiagnostics": true,
"rasa-pro-vscode.maxFileSize": 2097152
}
🎨 Usage Examples
Using Autocomplete
- Open any Rasa YAML file (stories, rules, NLU)
- Start typing
intent:
and press Ctrl+Space
to see available intents
- Type
action:
to see all available actions
- Type
utter_
to see all response templates
Running CLI Commands
- Open Command Palette (
Cmd+Shift+P
or Ctrl+Shift+P
)
- Type "Rasa" to see all available commands
- Select a command (e.g., "Rasa: Train Model")
- View output in the "Rasa Output" channel
Using the Project Explorer
- Click the Rasa icon in the Activity Bar (left sidebar)
- Browse components by category (Intents, Entities, Slots, etc.)
- Click any item to navigate to its definition
- Use the refresh button to update after making changes
🧪 Development & Testing
Running Tests
# Run all tests
npm test
# Run tests with coverage report
npm test -- --coverage
# Run quick type-check and lint
npm run check:quick
# Run full compile and lint
npm run check
Test Coverage
The project maintains high test coverage standards:
- Target: 80% for core services, 70% overall
- Current Coverage: View detailed reports in
coverage/index.html
after
running tests with --coverage
Development Workflow
# Install dependencies
npm install
# Start watch mode (auto-compile on save)
npm run watch
# Format code with Prettier
npm run format
# Check code formatting
npm run format:check
# Run linter
npm run lint
# Auto-fix linting issues
npm run lint:fix
# Run quick checks (type-check + lint)
npm run check:quick
# Compile TypeScript
npm run compile
Code Quality
This project uses ESLint and Prettier to maintain code quality:
- ESLint: Enforces code quality rules and catches potential bugs
- Prettier: Ensures consistent code formatting
- Pre-commit checks: All code is linted and formatted before commits
See Code Quality Guide for detailed information.
Testing the Extension Locally
- Open this project in VS Code
- Press
F5
to launch Extension Development Host
- Open a test Rasa project (e.g.,
test-projects/basic-rasa-project
)
- Test features: autocomplete, validation, CLI commands, explorer view
📚 Documentation
🐛 Known Issues
- Large YAML files (>1MB) may experience slower parsing times
- Split domain files across deeply nested directories may have reduced
performance
- Rasa CLI commands require Rasa to be installed and accessible in PATH
🗺️ Roadmap
- [ ] AI-powered story suggestions
- [ ] Inline NLU testing console
- [ ] Conversation flow visualization
- [ ] Rasa X/Pro server synchronization
- [ ] Real-time model performance metrics
🤝 Contributing
Contributions are welcome! Please read our
Contributing Guidelines before submitting PRs.
Development Principles
- Maintain <1 second extension activation time
- Keep IntelliSense response <200ms
- Write tests for all new features
- Follow TypeScript strict mode
- Document complex logic with clear comments
📄 License
This project is licensed under the MIT License - see the LICENSE file
for details.
🙏 Acknowledgments
📞 Support
Enjoy building amazing conversational AI with Rasa! 🚀