Magic Suite
The official Visual Studio Code extension for Panoramic Data Magic Suite. Write, run, and debug RMScript files directly from VS Code with real-time execution monitoring.

Features
RMScript Language Support
- Syntax highlighting for
.rm and .rmscript files with a full TextMate grammar
- Dark and light themes optimised for RMScript — select Magic Suite RMScript Dark or Magic Suite RMScript Light from the colour theme picker
- Bracket matching and auto-closing for
[], {}, (), quotes, and backticks
- Comment toggling with
Ctrl+/ (line comments with //)
Script Execution
- Run RMScript files against any Magic Suite environment with a single click or
Ctrl+Shift+R
- Real-time progress monitoring via SignalR with automatic polling fallback
- Cancel a running script at any time
Progress Panel
- Progress grid — colour-coded macro status blocks matching Report Studio's colour scheme
- Macro list — clickable list of all macros with type icons, durations, and status badges
- Macro detail — view input text, output text, messages, duration, and execution result for any macro
- Variable viewer — inspect all variables during and after execution
- JSON table view — toggle between raw JSON and tabular view for JObject and JArray variable values
- Per-tab detail panes — each tab (Progress, Macros, Variables) has its own resizable detail pane
Profile & Tenant Management
- Multiple profiles — configure connections to different Magic Suite environments (production, staging, test, etc.)
- CLI integration — automatically detects profiles created with the Magic Suite CLI
- Tenant switching — SuperAdmin users can switch between tenants; regular users see their assigned tenant
- Batch variables — load variables from a JSON file before execution
Getting Started
Prerequisites
- A Magic Suite environment with API access
- An API token (token name + token key) — contact your Magic Suite administrator
Step 1: Install the Extension
Install Magic Suite from the VS Code Extensions Marketplace, or install from a .vsix file:
code --install-extension magicsuite-0.1.0.vsix
The simplest way to get started is to create a profile using the command palette.
- Open the Command Palette (
Ctrl+Shift+P)
- Run Magic Suite: Manage Profiles
- Select Add Profile
- Enter:
- Profile name — a friendly name (e.g.
production)
- API URL — your Magic Suite API endpoint (e.g.
https://api.magicsuite.net)
- Token Name — your API token name
- Token Key — your API token key
Alternative: Set Up via PowerShell
If you prefer to configure profiles from the command line (useful for scripting or sharing configurations), you can create the CLI configuration file directly. This is the same file used by the Magic Suite CLI tool.
For a single environment (most users):
# Set your connection details
$ProfileName = "production"
$ApiUrl = "https://api.magicsuite.net"
$TokenName = "your-token-name"
$TokenKey = "your-token-key"
# Create the configuration directory
$configDir = Join-Path $env:APPDATA "Panoramic Data\MagicSuite"
New-Item -ItemType Directory -Path $configDir -Force | Out-Null
# Write the configuration file
$config = @{
ActiveProfile = $ProfileName
DefaultOutputFormat = "Json"
VerboseLogging = $false
Profiles = @{
$ProfileName = @{
ApiUrl = $ApiUrl
TokenName = $TokenName
TokenKey = $TokenKey
}
}
} | ConvertTo-Json -Depth 4
Set-Content -Path (Join-Path $configDir "cli-config.json") -Value $config -Encoding UTF8
Write-Host "Magic Suite profile '$ProfileName' configured successfully." -ForegroundColor Green
Write-Host "Configuration saved to: $(Join-Path $configDir 'cli-config.json')"
For multiple environments:
$configDir = Join-Path $env:APPDATA "Panoramic Data\MagicSuite"
New-Item -ItemType Directory -Path $configDir -Force | Out-Null
$config = @{
ActiveProfile = "production"
DefaultOutputFormat = "Json"
VerboseLogging = $false
Profiles = @{
production = @{
ApiUrl = "https://api.magicsuite.net"
TokenName = "prod-token-name"
TokenKey = "prod-token-key"
}
staging = @{
ApiUrl = "https://api-staging.magicsuite.net"
TokenName = "staging-token-name"
TokenKey = "staging-token-key"
}
test = @{
ApiUrl = "https://api-test.magicsuite.net"
TokenName = "test-token-name"
TokenKey = "test-token-key"
}
}
} | ConvertTo-Json -Depth 4
Set-Content -Path (Join-Path $configDir "cli-config.json") -Value $config -Encoding UTF8
Write-Host "Magic Suite profiles configured successfully." -ForegroundColor Green
Note: The configuration file is stored at %APPDATA%\Panoramic Data\MagicSuite\cli-config.json. This is the same location used by the Magic Suite CLI, so profiles are shared between both tools.
Step 3: Select a Tenant
- Open the Command Palette (
Ctrl+Shift+P)
- Run Magic Suite: Select Tenant
- SuperAdmin users will see a list of all available tenants; regular users will see their assigned tenant
Step 4: Run an RMScript
- Open a
.rm or .rmscript file
- Click the ▶ Play button in the editor title bar, or press
Ctrl+Shift+R
- The progress panel opens to the side showing real-time execution status
Commands
All commands are available via the Command Palette (Ctrl+Shift+P) under the Magic Suite category.
| Command |
Description |
Shortcut |
| Run RMScript |
Execute the current RMScript file |
Ctrl+Shift+R |
| Stop Execution |
Cancel a running script |
— |
| Select Profile |
Switch between API profiles |
— |
| Select Tenant |
Switch the active tenant |
— |
| Manage Profiles |
Add, edit, or remove profiles |
— |
| Set Batch Variables File |
Select a JSON file with variables |
— |
| Open Progress Panel |
Show the execution progress panel |
— |
Settings
| Setting |
Description |
Default |
magicsuite.activeProfile |
The currently active profile name |
"" |
magicsuite.activeTenant |
The currently active tenant name |
"" |
magicsuite.batchVariablesFile |
Path to a JSON file with batch variables |
"" |
Batch Variables
To set variables before execution:
- Create a JSON file with your variables:
{
"CustomerName": "Acme Corp",
"ReportDate": "2026-01-01",
"OutputFormat": "PDF"
}
- Run Magic Suite: Set Batch Variables File and select the file
- The variables will be included with every subsequent script execution
Colour Themes
The extension includes two colour themes designed for RMScript:
- Magic Suite RMScript Dark — optimised for dark editor backgrounds
- Magic Suite RMScript Light — optimised for light editor backgrounds
To activate: Ctrl+K Ctrl+T → search for "Magic Suite"
Troubleshooting
Run Magic Suite: Manage Profiles to create a profile, or set up the CLI configuration file using the PowerShell script above.
"Connection failed" or timeout errors
- Verify your API URL is correct and accessible from your network
- Check that your API token has not expired
- Ensure you are connected to the correct VPN if your environment requires one
Syntax highlighting not working
- Ensure the file has a
.rm or .rmscript extension
- Try selecting the language mode manually: click the language indicator in the status bar and select RMScript
- If using a custom theme, switch to Magic Suite RMScript Dark or Light for best results
SignalR connection warnings
SignalR provides live progress updates. If the connection fails—for example, due to firewall rules—the extension falls back to polling automatically. You may see a warning in the output channel, but execution is not affected.
Requirements
- Visual Studio Code 1.100.0 or later
- Network access to a Magic Suite API endpoint
- A valid API token
About
Magic Suite is developed by Panoramic Data Ltd.
For support, feature requests, or bug reports, please visit the GitHub repository.