VoidMuse adopts an independent development mode, where each component has its own development and build scripts:
voidmuse/
├── gui/ # React Web GUI Interface
├── extensions/
│ ├── vscode/ # VSCode Extension
│ └── intellij/ # IntelliJ IDEA Plugin
├── doc/ # Project Documentation
- Node.js >= 16.0.0
- Java >= 17 (for IntelliJ plugin development)
- Gradle (for IntelliJ plugin build, automatically managed via Gradle Wrapper)
- VSCode (for VSCode extension development)
# GUI project dependencies
cd gui && npm install
# VSCode extension dependencies
cd extensions/vscode && npm install
# IntelliJ plugin uses Gradle to manage dependencies, no manual installation neededcd gui
npm run dev # Start development server (http://localhost:3002)
npm run build:test # Build static file version
npm run preview # Preview production build
npm run lint # Run code lintingcd extensions/vscode
npm run dev # Start development mode
npm run build # Build extension
npm run package # Package extension (.vsix file)Debug in VSCode:
- Open
extensions/vscodefolder in VSCode - Press
F5to launch Extension Development Host - Test extension features in the new window
cd extensions/intellij
./gradlew runIde # Launch IntelliJ with plugin for testing
./gradlew build # Build plugin
./gradlew buildPlugin # Package plugin (.zip file)Debug in IntelliJ:
- Open
extensions/intellijfolder in IntelliJ IDEA - Run
runIdeGradle task - Test plugin features in the launched IDE instance
GUI Hot Reload:
- Modify files in
gui/src/ - Browser automatically refreshes
- Real-time preview of changes
Extension Hot Reload:
- VSCode: Use
Developer: Reload Windowcommand - IntelliJ: Restart the development IDE instance
# GUI testing
cd gui
npm run test # Run unit tests
npm run test:e2e # Run end-to-end tests
# VSCode extension testing
cd extensions/vscode
npm run test # Run extension tests
# IntelliJ plugin testing
cd extensions/intellij
./gradlew test # Run plugin tests# Build GUI
cd gui
npm run build # Production build
# Package VSCode extension
cd extensions/vscode
npm run package # Generate .vsix file
# Package IntelliJ plugin
cd extensions/intellij
./gradlew buildPlugin # Generate .zip file- React 18 + TypeScript + Vite
- Ant Design 5.x for UI components
- TipTap for rich text editing
- Vercel AI SDK for AI model integration
- TypeScript + VSCode Extension API
- Webpack for bundling
- ESLint + Prettier for code quality
- Java/Kotlin + IntelliJ Platform SDK
- Gradle for build management
- JUnit for testing
- Extensions communicate with GUI via local HTTP server
- RESTful API design for cross-platform compatibility
- WebSocket for real-time features
- Unified AI service layer in GUI
- Support for multiple AI providers (OpenAI, Anthropic, etc.)
- Token usage tracking and cost management
- Local storage for user preferences
- Vector database for code embeddings
- Secure API key management
Port Conflicts:
- GUI default port: 3002
- Change in
gui/vite.config.tsif needed
Extension Not Loading:
- Check console for error messages
- Verify manifest.json/plugin.xml syntax
- Ensure all dependencies are installed
Build Failures:
- Clear node_modules and reinstall
- Check Node.js/Java version compatibility
- Verify environment variables
Recommended VSCode Extensions:
- TypeScript and JavaScript Language Features
- ESLint
- Prettier
- Thunder Client (for API testing)
Recommended IntelliJ Plugins:
- Gradle
- Kotlin (if using Kotlin)
- Plugin DevKit
- Follow existing code conventions
- Use TypeScript for new JavaScript code
- Add JSDoc comments for public APIs
- Write unit tests for new features
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
- Update README for new features
- Add inline code comments
- Create tutorial docs for complex features
- Update API documentation
- Use React.memo for expensive components
- Implement virtual scrolling for large lists
- Optimize bundle size with code splitting
- Use service workers for caching
- Minimize extension activation time
- Use lazy loading for heavy operations
- Implement efficient file watching
- Cache computation results
- Never commit API keys to repository
- Use secure storage mechanisms
- Implement key rotation capabilities
- Validate API responses
- Minimize data collection
- Implement local-first architecture
- Provide clear privacy controls
- Follow GDPR compliance guidelines
- GUI: Deploy to Vercel/Netlify
- Extensions: Use development channels
- VSCode: Publish to Visual Studio Marketplace
- IntelliJ: Publish to JetBrains Marketplace
- GUI: Deploy to production hosting
- Architecture Overview
- API Reference (coming soon)
- Tutorial Series
- GitHub Discussions for questions
- Discord/Slack for real-time chat
- Regular community calls
- Check existing GitHub issues
- Search documentation
- Ask in community channels
- Create detailed bug reports
Happy coding! 🚀 If you encounter any issues during development, don't hesitate to reach out to our community.