Contributing
We welcome contributions to AgentMux. Here’s how to get involved.
Ways to Contribute
Section titled “Ways to Contribute”- Report bugs or request features via GitHub Issues
- Fix outstanding issues
- Improve documentation
- Star the repository
Please respect our Code of Conduct.
Getting Started
Section titled “Getting Started”- Build from source — Set up your development environment
- Create a feature branch from
main - Make your changes
- Submit a pull request
Branch Naming
Section titled “Branch Naming”Use the format: yourname/feature-description
git checkout -b yourname/fix-terminal-scrollContributor License Agreement
Section titled “Contributor License Agreement”On your first pull request, you’ll be prompted to sign a CLA. You retain copyright — this gives us permission to distribute your contribution.
Development Workflow
Section titled “Development Workflow”# 1. Fork and clonegit clone https://github.com/YOUR_USERNAME/agentmux.gitcd agentmux
# 2. Install dependenciesnpm install
# 3. Create feature branchgit checkout -b yourname/feature-name
# 4. Start dev servertask dev
# 5. Make changes# - Frontend changes auto-reload# - Rust backend changes: task build:backend, restart task dev
# 6. Run teststask test
# 7. Commit and pushgit commit -m "feat: description of change"git push -u origin yourname/feature-name
# 8. Open a pull request on GitHubProject Structure
Section titled “Project Structure”agentmux/├── src-tauri/ # Tauri v2 shell (Rust)├── agentmuxsrv-rs/ # Rust async backend (Tokio + Axum)├── wsh-rs/ # Shell integration binary (Rust)├── frontend/ # SolidJS + TypeScript (Vite)│ ├── app/view/ # Pane view implementations│ ├── app/block/ # Block/pane rendering│ ├── app/store/ # State management│ └── app/element/ # Reusable UI components├── schema/ # JSON schema definitions├── docs/ # Architecture docs and specs└── Taskfile.yml # Build tasksKey Directories
Section titled “Key Directories”frontend/app/view/— Each pane type has its own directory (agent, term, forge, sysinfo, etc.)frontend/app/block/block.tsx— Block registry where view types are registeredfrontend/app/store/— State management and RPC clientagentmuxsrv-rs/src/— Rust backend (block controllers, WebSocket, SQLite, PTY)
Style Guide
Section titled “Style Guide”- Language: American English
- Formatting: Prettier and EditorConfig
- UI Components: Documented in Storybook — run
task storybook
Pull Request Guidelines
Section titled “Pull Request Guidelines”- Check existing PRs and issues before starting
- Develop on a branch — never work directly on
main - Include tests for anything beyond minor fixes
- Reference the relevant issue in your PR body
- For minor changes, open a PR directly
- For major changes, create an issue first to discuss
Version Bumping
Section titled “Version Bumping”If your change affects the published package, bump the version before committing:
bump patch -m "Description of change" --commitbump verifySee Building from Source for full version management details.
License
Section titled “License”AgentMux is licensed under Apache-2.0. By contributing, you agree that your contributions will be licensed under the same terms.
See Also
Section titled “See Also”- Building from Source — Development setup
- Agent App API — RPC API reference