Universal VS Code extension for quantum chemistry software with multi-LSP support and advanced visualization
OpenQC-VSCode is now a universal platform for quantum chemistry! We've expanded from a single-tool focus to supporting 7 major quantum chemistry packages with automatic LSP detection and unified visualization.
- ✅ Universal LSP Support - Auto-detect and launch language servers for 7 quantum chemistry packages
- ✅ Molecular Visualization - Interactive 3D rendering with 3Dmol.js
- ✅ Data Visualization - Plot SCF energies, convergence data with Plotly.js
- ✅ Input Preview - Structured preview of input file parameters
- ✅ Developer Tools - Syntax highlighting, validation, and LSP diagnostics
-
🚀 Universal LSP Support: Automatic detection and management of language servers for:
- CP2K
- VASP
- Gaussian
- ORCA
- Quantum ESPRESSO
- GAMESS
- NWChem
-
🔬 Molecular Visualization: Interactive 3D structure rendering with 3Dmol.js
- Multiple visualization styles: stick, sphere, line, cartoon
- Spin and zoom controls
- Real-time structure preview from input files
-
📊 Data Visualization: Plot calculation data with Plotly.js
- SCF energy convergence
- K-point grids
- Automatic data extraction from output files
- Interactive and responsive charts
-
📝 Input Preview: Structured display of input file parameters
- Section-based organization
- Parameter extraction and display
- Syntax highlighting for all formats
-
🛠️ Developer Tools:
- Syntax highlighting for all 7 quantum chemistry formats
- File type auto-detection
- Language server management (start/stop/restart)
- Error diagnostics from LSPs
| Package | Language ID | Files | Syntax | Visualization | LSP |
|---|---|---|---|---|---|
| CP2K | cp2k |
.inp |
✅ | ✅ | ✅ |
| VASP | vasp |
INCAR, POSCAR, KPOINTS, POTCAR |
✅ | ✅ | ✅ |
| Gaussian | gaussian |
.gjf, .com |
✅ | ✅ | ✅ |
| ORCA | orca |
.inp |
✅ | ✅ | ✅ |
| Quantum ESPRESSO | qe |
.in, .pw.in, .relax.in, etc. |
✅ | ✅ | ✅ |
| GAMESS | gamess |
.inp |
✅ | ✅ | ✅ |
| NWChem | nwchem |
.nw, .nwinp |
✅ | ✅ | ✅ |
- Open VSCode
- Press
Ctrl+Shift+X(Windows/Linux) orCmd+Shift+X(macOS) - Search for "OpenQC-VSCode"
- Click "Install"
git clone https://github.com/newtontech/OpenQC-VSCode.git
cd OpenQC-VSCode
npm install
npm run compile
# Package and install locally
npx vsce package
code --install-extension openqc-vscode-*.vsixOpen any supported file (e.g., POSCAR, input.com, job.inp) in VSCode.
The extension will automatically detect the file type and launch the appropriate language server.
- Option 1: Click the structure icon in the editor title bar
- Option 2: Press
Ctrl+Shift+Pand runOpenQC: Visualize Structure - Option 3: Right-click and select "OpenQC: Visualize Structure"
- Option 1: Click the plot icon in the editor title bar
- Option 2: Press
Ctrl+Shift+Pand runOpenQC: Plot Calculation Data
- Option 1: Press
Ctrl+Shift+Pand runOpenQC: Preview Input File - Option 2: Right-click and select "OpenQC: Preview Input File"
# Start language server
Ctrl+Shift+P > OpenQC: Start Language Server
# Stop language server
Ctrl+Shift+P > OpenQC: Stop Language Server
# Restart language server
Ctrl+Shift+P > OpenQC: Restart Language ServerConfigure language server paths in your settings.json:
{
"openqc.lsp.cp2k.enabled": true,
"openqc.lsp.cp2k.path": "cp2k-lsp-enhanced",
"openqc.lsp.vasp.enabled": true,
"openqc.lsp.vasp.path": "vasp-lsp",
"openqc.lsp.gaussian.enabled": true,
"openqc.lsp.gaussian.path": "gaussian-lsp",
"openqc.lsp.orca.enabled": true,
"openqc.lsp.orca.path": "orca-lsp",
"openqc.lsp.qe.enabled": true,
"openqc.lsp.qe.path": "qe-lsp",
"openqc.lsp.gamess.enabled": true,
"openqc.lsp.gamess.path": "gamess-lsp",
"openqc.lsp.nwchem.enabled": true,
"openqc.lsp.nwchem.path": "nwchem-lsp"
}{
"openqc.visualization.moleculeRenderer": "3Dmol.js",
"openqc.visualization.plotLibrary": "Plotly.js",
"openqc.visualization.autoOpen": true
}| Command | Description |
|---|---|
OpenQC: Visualize Structure |
Open 3D molecular structure viewer |
OpenQC: Plot Calculation Data |
Plot SCF energies and convergence data |
OpenQC: Preview Input File |
Show structured preview of input file |
OpenQC: Start Language Server |
Manually start the language server |
OpenQC: Stop Language Server |
Stop the language server |
OpenQC: Restart Language Server |
Restart the language server |
The LSP Manager automatically:
- Detects the quantum chemistry software from file extension and content
- Launches the appropriate language server
- Manages server lifecycle (start/stop/restart)
- Handles multiple file types simultaneously
Input File → Parser → Atoms/Data → Webview → 3Dmol.js/Plotly.js
Multi-layer detection:
- Filename match - Exact filename (e.g.,
INCAR,POSCAR) - Extension match - File extension (e.g.,
.inp,.gjf) - Content analysis - Regex patterns for ambiguous cases
- Node.js 18+
- TypeScript 5.3+
- VSCode 1.85+
# Clone repository
git clone https://github.com/newtontech/OpenQC-VSCode.git
cd OpenQC-VSCode
# Install dependencies
npm install
# Compile
npm run compile
# Watch mode for development
npm run watchOpenQC-VSCode/
├── src/
│ ├── extension.ts # Extension entry point
│ ├── managers/
│ │ ├── LSPManager.ts # Language server management
│ │ └── FileTypeDetector.ts # File type detection
│ ├── providers/
│ │ ├── StructureViewer.ts # 3D structure visualization
│ │ └── DataPlotter.ts # Data plotting
│ └── visualizers/
│ └── Molecule3D.ts # Molecule parsing
├── syntaxes/ # Syntax highlighting
├── language-configurations/ # Language config
├── package.json
├── tsconfig.json
└── README.md
# Run tests
npm test
# Run with coverage
npm run test:coverage
# Run linting
npm run lintWe welcome contributions! Please see CONTRIBUTING.md for guidelines.
- 🐛 Bug fixes
- 💡 New features
- 📝 Documentation improvements
- 🎨 UI/UX improvements
- 🔧 Additional LSP integrations
- 📊 New visualization types
- Format conversion between quantum chemistry formats
- Batch visualization
- Custom color schemes
- Export images
- Real-time calculation monitoring
- Integration with job schedulers
- Parameter templates
- Cloud storage integration
- AI-powered parameter optimization
- Natural language input generation
- Workflow automation
- Multi-package job orchestration
- Project Roadmap - Development plan and milestones
- TDD Guidelines - Testing best practices
- Task Management - How we organize work
- Architecture - System design
- API Reference - Developer documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- 3Dmol.js - Interactive molecular visualization
- Plotly.js - Interactive data visualization
- vscode-languageclient - VS Code Language Client library
- Quantum Chemistry Community - Inspiration and feedback
- 📧 Email: support@newtontech.com
- 💬 Discord: Join our community
- 📖 Documentation: docs.openqc.dev
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
If you use OpenQC-VSCode in your research, please cite:
@software{openqc2026,
title = {OpenQC-VSCode: Universal VS Code Extension for Quantum Chemistry},
author = {NewtonTech},
year = {2026},
version = {2.0},
url = {https://github.com/newtontech/OpenQC-VSCode}
}Made with ❤️ by the NewtonTech team
⭐ Star us on GitHub if you find OpenQC-VSCode helpful!