Improvements are welcomed — report bugs, submit documentation fixes, add new flows, or contribute voice models.
This document explains how to get set up, which checks contributors should run locally, and the PR process.
Quick links
Prerequisites
- Node.js (LTS recommended) and npm
- Tauri (see https://v2.tauri.app/start/)
- .NET SDK to build
CopilotSpeechif you need to modify it
Basic setup
git clone https://github.com/CrewMate-Flight-Sim/CrewMateMD11.git
cd crewmatemd11
npm installRun the app in development
npm run tauri devBuild a packaged app
npm run tauri buildBuild/Publish SideCar
.\build-sidecar.ps1Create voice .ogg files
.\FOvoices.ps1format— Run Prettier across the entire repo to apply formatting, then runcargo fmtto format Rust code insrc-tauri.format:check— Run Prettier in check mode (fails if formatting is needed) and runcargo fmt -- --checkto validate Rust formatting.format:frontend— Run Prettier only on frontend JavaScript/TypeScript files.format:backend— Runcargo fmtinsrc-taurito format Rust sources.lint— Run frontend and backend linters by invokinglint:frontendandlint:backendsequentially.lint:frontend— Run ESLint over the frontend codebase to surface JS/TS lint issues.lint:frontend:fix— Run ESLint with--fixto automatically fix fixable frontend issues.lint:backend— Runcargo clippyfor the Rust backend and treat warnings as errors (-D warnings).fix— Runformatandlintsequentially, applying the ESLint--fixflag to resolve frontend issues automatically.check— Runformat:checkthenlintto validate formatting and linting in one step.
These scripts are defined in package.json; use them as shown above when preparing changes or opening a PR.
Please run formatters and linters before pushing changes. Format and lint checks are expected on PRs.
npm run format
npm run check- UI, components, hooks, stores:
src/ - Flows:
src/data/flows/ - Voice code:
src/voice/ - Native/Tauri:
src-tauri/ - Windows sidecar helper:
CopilotSpeech/
- Fork the repository and create a branch for each change (e.g.,
feat/my-feature,fix/typo). - Open a PR against
main(or the default branch) with a clear title and description and link an issue when appropriate.
PR checklist
- Built and tested locally
- Updated documentation or flow examples when behavior changed
- Linked to the issue this PR addresses (if any)
Do not commit secrets or sensitive credentials (API keys, passwords, certificates) to the repository. Use environment variables or a secure secret store for any runtime secrets.
To report a security vulnerability or disclose sensitive issues privately, follow the instructions in https://github.com/CrewMate-Flight-Sim/CrewMateMD11?tab=security-ov-file.
Contributions are welcome!
Small improvements (for example, fixing a typo in a Markdown file) are appreciated and can be submitted directly as a PR. If you'd like guidance or prefer to discuss a change first, open an issue to ask a question.
Thanks for the help!