Skip to main content
Thank you for your interest in contributing to Trace! Trace is open source on GitHub under the GNU GPLv3 license. The full source code — including the C++ desktop app, React chat UI, and AI tooling — is available at github.com/buildwithtrace/trace. We welcome contributions from the community.

Join Our Discord Community

Discord is our primary community hub for all discussions, questions, and announcements.
  • Join us on Discord — Discuss features, ask questions, get announcements about development progress
  • Report bugs — Share issues and get help from the community
  • Discuss features — Propose new ideas and discuss implementation
  • Ask questions — Get help with the codebase or development setup
  • Stay updated — Get notified about releases and important updates
For larger changes or new features, please discuss on Discord before starting substantial work. This ensures alignment with development goals and prevents duplicate work.

Important Notes

  • Trace is a fork of KiCad — This project is based on the KiCad EDA software
  • License — All contributions must be compatible with GNU GPLv3
  • Copyright — By contributing, you agree to license your code under GPLv3
  • Upstream — Consider contributing improvements to KiCad upstream when applicable

Getting Started

Trace is a fork of KiCad, and we maintain compatibility with KiCad file formats and many of its architectural decisions. Developers familiar with KiCad will find the codebase familiar. New developers are encouraged to:
  • Start small with contributions and gradually work up to larger changes
  • Check the issue tracker for issues labeled “good first issue”
  • Search through issues and leave a comment if you’re interested in working on something
  • Ask questions in Discord or on the issue itself

Development Guidelines

Code Style

We use clang-format to check many style requirements. When you create a pull request, one of the CI pipeline steps will run a formatting check on your contribution. See the Code Style Guide for full details. Key style points:
  • Always create a new branch for PRs instead of using your fork’s main branch
  • When in doubt, follow the existing formatting of the file you’re editing
  • clang-format doesn’t know about all our nuances — if there’s flexibility, match the existing file style

Pull Request Process

1

Fork and branch

Fork the repository and create a feature branch. Never use your fork’s master branch directly.
2

Make changes

Write clear, atomic commits with descriptive messages.
3

Test thoroughly

Build and run on your platform. Check for regressions in related features.
4

Submit your PR

Write a clear PR description summarizing the changes. Reference any related issues. Make sure “Allow edits by maintainers” is checked.

Commit Messages

Use clear, descriptive commit messages:
fix: resolve crash when opening large schematics
feat: add AI component suggestion for resistor values
docs: update build instructions for macOS

Types of Contributions

Bug Fixes

Found a bug? Please:
  1. Check if it exists in upstream KiCad too
  2. If KiCad bug: consider reporting there as well
  3. If Trace-specific: fix it and submit a PR

Features

New features should:
  • Fit Trace’s vision of AI-enhanced PCB design
  • Not break existing functionality
  • Be documented in code comments
  • Consider UI/UX implications

Documentation

Help improve code comments, README files, guides, build instructions, and API documentation.

AI Features

If contributing to Trace’s AI integration (trace/ directory):
  • Test with the backend API (contact us for dev access)
  • Follow patterns in existing AI tool code
  • Consider token usage and rate limits
  • Document any new AI capabilities
By submitting a contribution, you certify that:
  • You wrote the code, or have the right to submit it
  • You agree to license your contribution under GPLv3
  • You understand Trace is open source (others can use/modify your code)
  • Your contribution doesn’t violate any patents or copyrights
Add your copyright to files you substantially modify:
* Copyright (C) 2025-2026 Your Name <your@email.com>
* Copyright The Trace Developers, see TRACE_AUTHORS.txt for contributors.

Getting Help

Code of Conduct

Be respectful, constructive, and professional. We want Trace’s development community to be welcoming to all contributors.
Thank you for contributing to Trace! Every contribution — whether code, documentation, or bug reports — helps make Trace better for everyone.