Contributing to Mysti
February 18, 2026 · View on GitHub
Thank you for your interest in contributing to Mysti! We welcome contributions from the community.
Ways to Contribute
- Bug Reports: Found a bug? Open an issue
- Feature Requests: Have an idea? Start a discussion
- Code Contributions: Fix bugs or add features via pull requests
- Documentation: Improve README, add examples, or fix typos
- Testing: Try new features and report feedback
Getting Started
Prerequisites
- Node.js 18+
- VS Code 1.85+
- At least one CLI tool installed:
npm install -g @anthropic-ai/claude-codenpm install -g @google/gemini-clinpm install -g @github/copilot
Development Setup
-
Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/Mysti.git cd Mysti -
Install dependencies
npm install -
Start development build
npm run watch -
Launch Extension Development Host
- Press
F5in VS Code - A new VS Code window opens with Mysti loaded
- Set breakpoints and debug in the original window
- Press
Project Structure
Mysti/
├── src/
│ ├── extension.ts # Entry point
│ ├── providers/ # AI provider implementations
│ │ ├── base/ # BaseCliProvider, IProvider interface
│ │ ├── claude/ # Claude Code provider
│ │ ├── codex/ # OpenAI Codex provider
│ │ ├── copilot/ # GitHub Copilot provider
│ │ └── gemini/ # Google Gemini provider
│ ├── managers/ # Business logic managers
│ ├── webview/ # Chat UI (webviewContent.ts)
│ └── types.ts # TypeScript type definitions
├── resources/ # Icons, logos, agent definitions
└── package.json # Extension manifest
Pull Request Process
-
Create a feature branch
git checkout -b feature/your-feature-name -
Make your changes
- Follow existing code style
- Add comments for complex logic
- Use
[Mysti]prefix for console logs
-
Test your changes
- Press
F5to launch Extension Development Host - Test with multiple providers if applicable
- Check the Debug Console for errors
- Press
-
Commit with clear messages
git commit -m "feat: add support for new feature"Use conventional commits:
feat:- New featurefix:- Bug fixdocs:- Documentationrefactor:- Code refactoringtest:- Tests
-
Push and create PR
git push origin feature/your-feature-nameThen open a Pull Request on GitHub.
Code Style
- TypeScript: Use strict types, avoid
any - Naming: Private members use
_prefix (_currentProcess) - Logging: Use
console.log('[Mysti] ProviderName: message') - Error handling: Always catch and log errors
Adding a New Provider
- Create
src/providers/newprovider/NewProvider.ts - Extend
BaseCliProviderand implement required methods - Register in
src/providers/ProviderRegistry.ts - Add to
ProviderTypeunion insrc/types.ts - Add configuration in
package.json - Update webview UI in
src/webview/webviewContent.ts
See existing providers (especially GeminiProvider) as reference.
Good First Issues
Look for issues labeled good first issue - these are great starting points for new contributors.
Questions?
- Open an issue for bugs or features
- Check existing issues before creating new ones
License
By contributing to Mysti, you agree that your contributions will be licensed under the Apache License 2.0.
Thank you for helping make Mysti better!