A comprehensive VS Code extension for managing Wiz Framework projects with an enhanced file explorer, specialized editors, and intelligent project navigation.
- VS Code: 1.60.0 or higher
- Wiz Framework: 2.5.0 or higher
- Node.js: 14.x or higher
- Five-Level Structure: Source, Packages (Portal), Project, Copilot, and Config categories
- App Type Recognition: Automatic detection of Page, Component, Layout, and Route apps
- Virtual Folders: Display standard folders even when they don't exist yet
- Auto-Highlighting: Automatically reveals active file in the tree view
- Drag & Drop: Move files and folders effortlessly
- Multi-Select: Work with multiple items simultaneously
- File Upload: Upload files and folders via Webview (Remote compatible)
- Folder Protection: Source/Packages root folders protected from accidental deletion
- App Info Editor: Webview-based visual editor for
app.jsonconfiguration - Route Editor: Dedicated interface for route-specific settings
- Portal App Editor: Namespace-synced editor for portal applications
- Portal Package Editor: Manage
portal.jsonwith auto-completed fields - View Type Selection: Choose between HTML and Pug templates
Built-in MCP server that allows AI agents (like Claude) to directly manage Wiz projects. The MCP server automatically syncs with the VS Code Explorer β when you switch projects, the MCP server reflects the change in real-time via a shared state file.
54 tools across 4 categories:
| Tool | Description |
|---|---|
wiz_workspace_status |
Get workspace state, active project, and project list |
wiz_workspace_list_dir |
List directory contents (relative to workspace root) |
wiz_workspace_read_file |
Read file (relative to workspace root, line range support) |
wiz_workspace_write_file |
Write file (relative to workspace root) |
wiz_workspace_create_dir |
Create directory |
wiz_workspace_delete |
Delete file/directory |
wiz_workspace_rename |
Rename/move file or directory |
| Tool | Description |
|---|---|
wiz_project_info |
Get comprehensive project info (apps, packages, paths) |
wiz_project_switch |
Switch active project (syncs with Explorer) |
wiz_project_build |
Build project (Normal/Clean) |
wiz_project_export |
Export project as .wizproject archive |
wiz_project_import |
Import .wizproject file as new project |
wiz_project_structure |
Get project src/ directory tree |
wiz_project_list_dir |
List directory (relative to project root) |
wiz_project_read_file |
Read file (relative to project root, line range) |
wiz_project_write_file |
Write file (relative to project root) |
wiz_project_create_dir |
Create directory in project |
wiz_project_delete |
Delete file/directory in project |
wiz_project_rename |
Rename/move in project |
wiz_project_search_apps |
Search apps by keyword (source + packages) |
wiz_project_pip_list |
List installed pip packages |
wiz_project_pip_install |
Install pip package(s) |
wiz_project_pip_uninstall |
Uninstall pip package(s) |
wiz_project_npm_list |
List installed npm packages |
wiz_project_npm_install |
Install npm package(s) |
wiz_project_npm_uninstall |
Uninstall npm package(s) |
| Tool | Description |
|---|---|
wiz_source_list_apps |
List source apps/routes (filter by type) |
wiz_source_app_info |
Get app details and file list |
wiz_source_create_app |
Create standard app (page, component, layout) |
wiz_source_create_route |
Create route (API endpoint) |
wiz_source_update_app |
Update app.json configuration |
wiz_source_delete_app |
Delete an app/route folder |
wiz_source_list_files |
List files within an app folder |
wiz_source_read_file |
Read a file within an app folder |
wiz_source_write_file |
Write a file within an app folder |
wiz_source_delete_file |
Delete a file within an app folder |
wiz_source_rename_file |
Rename a file within an app folder |
wiz_source_list_controllers |
List Python controllers |
wiz_source_list_layouts |
List layout apps |
| Tool | Description |
|---|---|
wiz_package_list |
List portal packages |
wiz_package_create |
Create new package |
wiz_package_export |
Export package as .wizpkg archive |
wiz_package_list_apps |
List apps/routes within a package |
wiz_package_app_info |
Get portal app details and file list |
wiz_package_create_app |
Create portal app in package |
wiz_package_create_route |
Create portal route in package |
wiz_package_update_app |
Update portal app.json |
wiz_package_delete_app |
Delete portal app/route |
wiz_package_list_files |
List files within a portal app folder |
wiz_package_read_file |
Read a file within a portal app folder |
wiz_package_write_file |
Write a file within a portal app folder |
wiz_package_delete_file |
Delete a file within a portal app folder |
wiz_package_list_controllers |
List controllers in a package |
Note:
projectNameis auto-detected from Explorer state. All path parameters support relative paths that are auto-resolved to the appropriate root.
Quick access to all major features via Ctrl+Shift+P:
| Command | Description |
|---|---|
Wiz: Start MCP Server |
Start MCP Server |
Wiz: Stop MCP Server |
Stop MCP Server |
Wiz: Show MCP Configuration |
Open MCP config file (.vscode/mcp.json) |
Wiz: Create MCP Configuration |
Create MCP config file (shown when mcp.json doesn't exist) |
Wiz: Build Project |
Build with type selection (Normal/Clean) |
Wiz: Normal Build |
Direct normal build |
Wiz: Clean Build |
Direct clean build |
Wiz: Show Build Output |
Display build output channel |
Wiz: Switch Project |
Quick project switching |
Wiz: Export Current Project |
Export to .wizproject file |
Wiz: Import Project |
Import from .wizproject file |
Wiz: Go to App |
Search and navigate to any app |
Wiz: Create New Page/Component/Layout/Route |
Create apps with Source/Package selection |
Wiz: Create New Package |
Create new Portal package |
Wiz: Select Build Python Interpreter |
Select Python interpreter for builds |
Wiz: npm Package Manager |
Open npm package management UI |
Wiz: pip Package Manager |
Open pip package management UI |
Wiz: Refresh Explorer |
Refresh the tree view |
When editing a Wiz app (wiz:// scheme active):
Opt+A(Mac) /Alt+A(Windows/Linux): Navigate to previous file typeOpt+S(Mac) /Alt+S(Windows/Linux): Navigate to next file typeOpt+T(Mac) /Alt+T(Windows/Linux): Open current document in split view
File Type Navigation Order:
- Apps: UI β Component β SCSS β API β Socket (cycles)
- Routes: Controller only
- Git Integration: Clone projects directly from repositories
- Project Switching: Quick switch between multiple projects
- Project Export: Export projects as
.wizprojectarchives - Project Import: Import
.wizprojectfiles - Project Deletion: Safe removal with confirmation dialogs
- Package Management: Create and export Portal packages
- Auto-Build Trigger: Automatic build on file save (only when content actually changes)
- Python Environment Auto-Discovery: Automatically scan PATH, conda, pyenv, venv for available interpreters
- Python Interpreter Selection: QuickPick-based selector with version info and wiz availability
- Build Output Channel: Real-time build log viewing
- Normal/Clean Build: Choose build type as needed
- npm Package Manager: Visual Webview UI for managing npm packages (install, uninstall, upgrade, search)
- pip Package Manager: Visual Webview UI for managing Python pip packages
- Card-Based UI: Modern card layout with real-time search filtering
- Integrated Access: Available from settings menu and Command Palette
-
Create MCP Configuration:
- Press
Ctrl+Shift+PβWiz: Create MCP Configuration - This creates
.vscode/mcp.jsonwith the correct server settings - VS Code automatically detects and activates the MCP server
- Press
-
Use with VS Code Copilot Agent Mode:
- MCP tools are automatically available in agent mode
- The server syncs with Explorer β switching projects is reflected immediately
- Ask the AI to manage your Wiz project
-
Copy MCP Configuration:
- Open
.vscode/mcp.jsonand copy the server configuration
- Open
-
Add to Claude Desktop:
- Open Claude Desktop settings
- Add the MCP server configuration:
{
"mcpServers": {
"wiz": {
"command": "node",
"args": ["/path/to/wiz-vscode/src/mcp/index.js"],
"env": {
"WIZ_WORKSPACE": "/path/to/your/wiz/workspace"
}
}
}
}- Restart Claude Desktop to apply changes
"Show me all page apps in the Wiz project"
"Create a new page app with namespace dashboard"
"Check all app information in the dizest package"
"Build the current project"
"Read view.html file of myapp"
- Clone the repository:
git clone https://github.com/season-framework/wiz-vscode.git
cd wiz-vscode- Install dependencies:
npm install- Run in Extension Development Host:
- Press
F5in VS Code - A new VS Code window will open with the extension loaded
code --install-extension wiz-vscode-1.4.2.vsixTo build a .vsix package yourself:
- Install
@vscode/vsce(VS Code Extension Manager):
npm install -g @vscode/vsce- Install project dependencies:
npm install- Package the extension:
vsce package --no-dependenciesThis generates wiz-vscode-{version}.vsix in the project root.
- Install the generated VSIX:
code --install-extension wiz-vscode-*.vsixNote: The
--no-dependenciesflag skips bundlingnode_modulessince this extension has no runtime npm dependencies.
- Open a Wiz Framework project folder in VS Code
- Click the WIZ icon in the Activity Bar
- Navigate through the categorized tree structure:
- Source: Contains
src/apps (page, component, layout, route) - Packages: Portal packages from
src/portal/ - Project: Root-level files and directories
- Copilot: GitHub Copilot instructions (
.github/) - Config: Project configuration (
project/config/)
- Source: Contains
From Command Palette (Recommended):
- Press
Ctrl+Shift+P - Type
Wiz: Create New Page(or Component/Layout/Route) - Select location: Source or Package
- If Package selected, choose the target package
- Fill in the namespace and optional fields
From Context Menu:
- Right-click on an app group in the tree
- Select "New App" or "New Route"
- Fill in the form
Switch Project:
- Press
Ctrl+Shift+PβWiz: Switch Project - Or click the Project Switcher icon in the explorer toolbar
Export Project:
- Press
Ctrl+Shift+PβWiz: Export Current Project - Project is saved to
exports/folder as.wizproject
Import Project:
- Press
Ctrl+Shift+PβWiz: Import Project - Select a
.wizprojectfile - Enter project name and confirm
Manual Build:
Wiz: Normal Build- Standard incremental buildWiz: Clean Build- Full rebuild from scratch
Auto Build:
- Triggered automatically when saving any file in the project
| Module | Purpose |
|---|---|
constants.js |
Centralized constants (App types, icons, file mappings) |
pathUtils.js |
URI parsing, app folder detection, path resolution |
fileUtils.js |
File I/O operations, JSON handling |
uriFactory.js |
Factory for generating wiz:// virtual URIs |
webviewTemplates.js |
HTML templates for Webview editors |
Facade Pattern: appEditorProvider.js manages all editor instances.
Editor Hierarchy:
EditorBase (Abstract)
βββ AppEditor (Standard apps)
β βββ RouteEditor (Routes)
β βββ PortalAppEditor (Portal apps)
βββ PortalEditor (portal.json)
βββ Create Editors (App creation dialogs)
- FileExplorerProvider: Main tree data provider
- CategoryHandlers: Source, Portal, Project, Exports category logic
- AppPatternProcessor: Groups apps by type (page, component, layout)
- WizDragAndDropController: Handles file/folder movement
- Scheme:
wiz://<authority>/<base64-path>?label=<display-name> - Provider:
wizFileSystemProvider.jsmaps virtual URIs to real files - Purpose: Clean editor tabs without exposing complex paths
wiz-vscode/
βββ src/
β βββ core/ # Core utilities and constants
β βββ editor/ # Webview editors and providers
β β βββ editors/ # Individual editor implementations
β βββ explorer/ # Tree view components
β β βββ models/ # Category handlers
β β βββ treeItems/ # Tree item classes
β βββ services/ # Business logic layer
β β βββ project/ # Project/Build/MCP management
β β βββ app/ # Source/Package/Navigation management
β β βββ file/ # File operations
β βββ mcp/ # MCP server entry point
β βββ extension.js # Extension entry point (glue only)
βββ resources/ # Icons and assets
βββ devlog/ # Development logs (001-050)
βββ package.json # Extension manifest
βββ DEVLOG.md # Comprehensive development history
- Facade Pattern:
AppEditorProvidercentralizes editor management - Factory Pattern:
WizUriFactorycreates virtual URIs consistently - Template Method:
EditorBasedefines lifecycle, subclasses override specifics - Strategy Pattern: Different category handlers for Source/Portal/Project
- Create a new class in
src/editor/editors/extendingEditorBase - Implement
generateHtml()andhandleMessage() - Register in
AppEditorProvider - Add command to
package.jsonandextension.js
# Run extension in debug mode
Press F5 in VS Code
# Check for errors
Open Developer Tools in Extension Host windowSee Release Notes for details on the current release.
All release notes are available in the release/ directory.
Detailed development logs are maintained in devlog/ and DEVLOG.md.
- Develop wiz server cache management features (Wiz library version update expected)
- Agent Guide documentation for WIZ CLI and main features
We welcome contributions! Here's how you can get started:
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/<your-username>/wiz-vscode.git
cd wiz-vscode- Install dependencies:
npm install- Create a feature branch:
git checkout -b feature/amazing-feature- Run the extension in debug mode: Press
F5in VS Code - Make your changes and test thoroughly
- Commit and push:
git commit -m 'feat: add amazing feature'
git push origin feature/amazing-feature- Open a Pull Request on GitHub
- Node.js: 14.x or higher
- VS Code: 1.60.0 or higher
- Debugging: Press
F5to launch Extension Development Host - DevTools: Use
Developer: Toggle Developer Toolsin the host window to inspect Webview DOM and console errors
We follow Conventional Commits:
| Prefix | Purpose |
|---|---|
feat: |
New features |
fix: |
Bug fixes |
docs: |
Documentation only |
refactor: |
Code refactoring |
chore: |
Maintenance tasks |
style: |
Formatting changes |
test: |
Adding tests |
- Follow the existing code style and patterns (Facade, Factory, Template Method)
- Update
devlog/when making significant changes - Keep editor classes extending
EditorBasefor consistency - Use
WizPathUtilsfor all path parsing β avoid ad-hoc path logic - Register new commands in both
package.jsonandextension.js - Refer to architecture-guide.md for detailed conventions
- Use GitHub Issues to report bugs or request features
- Include VS Code version, OS, and steps to reproduce
- Attach relevant error logs from the Output panel or Developer Tools
This project is licensed under the MIT License - see the LICENSE file for details.
- Wiz Framework: https://github.com/season-framework/wiz
- VS Code Extension API: https://code.visualstudio.com/api
- Issue Tracker: GitHub Issues
Made with β€οΈ for the Wiz Framework community