PyCharm-style Python run configuration management for VS Code, with a GUI editor for Python entries in launch.json.
CharmRun lets you create named run/debug profiles (script or module), choose interpreter/args/env/cwd, and launch quickly from the sidebar, status bar, or command palette.
- GUI editor for Python run configurations
- Script mode (
python script.py) and module mode (python -m module_name) - Uses
.vscode/launch.jsonas the source of truth - Adopt existing Python
debugpylaunch configurations in place - Active configuration picker in status bar
- Sidebar tree with inline Run/Debug actions
- Run/debug current Python file without creating a config
- Variable expansion support (
${workspaceFolder},${file},${env:NAME}, and more) - Multi-root workspace support
- VS Code
^1.85.0 - Python installed and available in environment
- Recommended: VS Code Python extension (CharmRun can fall back to configured/default PATH interpreters)
npm install
npm run compilePress F5 in VS Code to launch an Extension Development Host.
- Open a workspace containing Python code.
- In the Activity Bar, open CharmRun.
- Click Add Configuration.
- Choose whether to create a new CharmRun-managed config or adopt an existing Python
launch.jsonentry. - Fill the form and save.
- Select the active configuration (status bar or command palette).
- Run or debug using:
- status bar buttons (
play/bug) - tree inline actions
- command palette commands
- status bar buttons (
- If you want to skip the combined flow, use
CharmRun: Create Configurationto create directly orCharmRun: Adopt launch.json Configurationto adopt directly.
CharmRun: Run Configuration(charmrun.runConfiguration)CharmRun: Debug Configuration(charmrun.debugConfiguration)CharmRun: Run Current Python File(charmrun.runCurrentFile)CharmRun: Debug Current Python File(charmrun.debugCurrentFile)CharmRun: Add Configuration(charmrun.openConfigurationFlow)CharmRun: Create Configuration(charmrun.createConfiguration)CharmRun: Edit Configuration(charmrun.editConfiguration)CharmRun: Delete Configuration(charmrun.deleteConfiguration)CharmRun: Duplicate Configuration(charmrun.duplicateConfiguration)CharmRun: Select Active Configuration(charmrun.selectActiveConfig)CharmRun: Adopt launch.json Configuration(charmrun.adoptLaunchConfiguration)CharmRun: Refresh Configurations(charmrun.refreshConfigurations)
CharmRun stores managed configs in:
<workspace>/.vscode/launch.json
CharmRun only manages entries it created or explicitly adopted. Other launch.json entries are left untouched.
See full format: docs/CONFIG_FORMAT.md
Supported placeholders:
${workspaceFolder}${workspaceFolderBasename}${file}${fileBasename}${fileBasenameNoExtension}${fileDirname}${fileExtname}${relativeFile}${env:VARNAME}
Applied to:
scriptargscwdenvvalues
If configuration interpreter is selected, CharmRun resolves in this order:
- Python extension command
python.interpreterPath python.defaultInterpreterPathin workspace settingspython3thenpythonon PATH
If a custom interpreter path/command is provided, CharmRun validates it before launch.
npm run compile: Type-check + esbuild bundlenpm run watch: Type-check + bundling in watch modenpm run package: Production bundle for publishing
MIT - see LICENSE
