First off, thank you for considering contributing to Clode Studio! It's people like you that make Clode Studio such a great tool for the Claude Code community.
By participating in this project, you are expected to uphold our simple code of conduct:
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on what is best for the community
- Show empathy towards other community members
Before creating bug reports, please check existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples
- Describe the behavior you observed and expected
- Include screenshots if possible
- Include your environment details:
- OS and version
- Node.js version
- Claude Code CLI version
- Clode Studio version
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the proposed feature
- Explain why this enhancement would be useful
- Consider the scope and impact on existing features
- Fork the repo and create your branch from
main - Name your branch descriptively:
feature/amazing-featureorfix/specific-bug - Make your changes:
- Add tests if applicable
- Update documentation
- Ensure the code follows the existing style
- Test thoroughly:
- Test in all layout modes (Full IDE, Kanban+Claude, Kanban Only)
- Test with multiple Claude instances
- Verify no regressions in existing features
- Commit your changes:
- Use clear, descriptive commit messages
- Reference issues when applicable:
Fixes #123
- Push to your fork and submit a pull request
- PR description should:
- Describe what changes you've made
- Explain why you've made them
- Reference any related issues
- Node.js 20+ (22.x LTS recommended)
- Git
- Claude Code CLI installed globally
- A GitHub account
# Clone your fork
git clone https://github.com/your-username/clode-studio.git
cd clode-studio
# Add upstream remote
git remote add upstream https://github.com/haidar-ali/clode-studio.git
# Install dependencies
npm install
# Compile Electron TypeScript
npm run electron:compile
# Start development
npm run electron:dev-
Stay updated with upstream:
git fetch upstream git checkout main git merge upstream/main
-
Create a feature branch:
git checkout -b feature/your-feature
-
Make changes and test:
# Run in dev mode npm run electron:dev # Run type checking npm run typecheck # Run linting npm run lint
-
Commit and push:
git add . git commit -m "feat: add amazing feature" git push origin feature/your-feature
- Use TypeScript for all new code
- Avoid
anytypes when possible - Define interfaces for component props
- Use proper typing for Electron IPC
- Use
<script setup>syntax for components - Organize composables in
/composables - Keep components small and focused
- Use Pinia for state management
clode-studio/
├── components/ # Vue components
│ ├── editor/ # Editor-related components
│ ├── kanban/ # Kanban board components
│ └── terminal/ # Terminal components
├── stores/ # Pinia stores
├── composables/ # Vue composables
├── electron/ # Electron main process
├── utils/ # Utility functions
└── types/ # TypeScript type definitions
- Components: PascalCase (e.g.,
TaskBoard.vue) - Composables: camelCase with 'use' prefix (e.g.,
useClaudeInstance.ts) - Stores: camelCase with 'Store' suffix (e.g.,
claudeStore.ts) - Files: kebab-case for non-components (e.g.,
file-utils.ts)
-
Error Handling:
- Always handle errors gracefully
- Provide meaningful error messages
- Log errors appropriately
-
Performance:
- Avoid unnecessary re-renders
- Use
computedandwatchefficiently - Clean up event listeners and intervals
-
Electron Security:
- Use contextBridge for IPC
- Validate all inputs from renderer
- Avoid using
nodeIntegration: true
-
Testing:
- Write tests for new features
- Ensure existing tests pass
- Test edge cases
- Update README.md if adding new features
- Add JSDoc comments for complex functions
- Update user guides in
/docswhen changing functionality - Include examples for new features
Feel free to:
- Open an issue for questions
- Start a discussion in GitHub Discussions
- Reach out to maintainers
Contributors will be recognized in:
- The README.md acknowledgments section
- Release notes
- The contributors graph
Thank you for contributing to Clode Studio! 🎉