Thank you for your interest in contributing to Cockpit Tools! This project aims to be the universal manager for AI IDEs, and we welcome contributions of all kinds.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/cockpit-tools.git
- Create a branch for your feature or bug fix:
git checkout -b feature/my-cool-feature
This project is a Cargo Workspace:
crates/cockpit-core: Shared business logic (Library).src-tauri: The GUI application (Tauri + React).crates/cockpit-cli: The command-line interface.
- Rust: Follow standard Rust idioms. Run
cargo fmtbefore committing. - Frontend: We use React 19 and Tailwind CSS. Use functional components and hooks.
- Commits: Use clear, descriptive commit messages.
- GUI:
npm run tauri dev - CLI:
cargo run --package cockpit-cli -- <commands> - Core:
cargo test --package cockpit-core
- Push your changes to your fork.
- Open a Pull Request against the
mainbranch. - Provide a clear description of the changes and link any related issues.
- Be prepared to iterate based on feedback!
Please be respectful and professional in all interactions. We follow the Contributor Covenant.
- Strict mode enabled (
strict: true) - No unused locals (
noUnusedLocals: true) - No unused parameters (
noUnusedParameters: true) - No fallthrough cases in switch (
noFallthroughCasesInSwitch: true) - Target: ES2020, JSX: react-jsx
| Command | Description |
|---|---|
npm run tauri dev |
Start development server (port 1420) |
npm run typecheck |
Run TypeScript type checking (auto-runs before build) |
npm run build |
Build frontend (syncs version + typecheck + vite build) |
npm run sync-version |
Sync package.json version to Tauri config |
npm run release:preflight |
Run full release pre-check (locales + typecheck + build + cargo check) |
- State management: Zustand
- Internationalization: i18next + react-i18next (supports 18 languages)
- UI framework: Tailwind CSS + DaisyUI
- Update version in
package.json+ CHANGELOG (Chinese & English) - Run
npm run sync-version→npm run release:preflight - Commit → Tag (e.g.,
v0.22.20) → Push branch and tag - CI auto-builds macOS (universal) + Windows + Linux → Generates SHA256 → Updates Homebrew Cask
- macOS, Windows, and Linux
- macOS recommended:
universal.dmg(compatible with both Intel and Apple Silicon) - Linux packages:
.AppImage,.deb, and.rpm - Each release includes
SHA256SUMS.txtfor integrity verification
- Main branch:
main - PR target:
main - Release tag format:
v<major>.<minor>.<patch>
| File | Content |
|---|---|
docs/release-process.md |
Detailed release process documentation |
tsconfig.json |
TypeScript strict compilation rules |
.github/workflows/release.yml |
CI/CD release automation |
SECURITY.md |
Security policy |