Skip to main content
Welcome to the KiCad development community! This guide will help you begin contributing to KiCad’s source code.

Joining the Development Team

To begin contributing to KiCad, you should first join the KiCad Developers mailing list. This mailing list is used for:
  • Announcements about development progress (milestones, deadlines, new releases)
  • Discussing the implementation of new features
  • Asking general questions about the KiCad codebase

Getting Started

New developers are encouraged to start small with their contribution, and gradually work their way up to larger changes as they gain knowledge in the codebase.

Finding Starter Issues

The development team labels issues in the issue tracker with “starter” when the issue or feature being requested is a good way for a new person to contribute to KiCad. Alternatively, you can:
  • Search through the issue tracker for any issues that look interesting
  • Leave a comment saying you are interested in working on it
  • Ask questions in the issue comments - other developers will help you

Planning Larger Changes

Developing any larger change, such as a new feature, should be discussed on the developers mailing list before substantial work is done. This allows for:
  • Input from the lead development team
  • Ensuring the feature is aligned with current development goals
  • Preventing duplication of work by contributors

Code of Conduct

KiCad is committed to fostering an open and welcoming environment. All contributors are expected to:
  • Use welcoming and helpful language
  • Be respectful of differing viewpoints and experiences
  • Gracefully accept constructive criticism
  • Focus on what is best for the community
  • Show empathy towards other community members
For the full Code of Conduct, see the code-of-conduct.md file in the repository.

Development Resources

Repository Structure

KiCad consists of multiple components:
  • kicad - Main programs and core files (this repository)
  • kicad-doc - Documentation and interactive help
  • kicad-library - Schematic symbols, PCB footprints, and 3D models
The main repository includes:
  • 3d-viewer/ - 3D viewer source code
  • eeschema/ - Schematic editor
  • pcbnew/ - PCB editor
  • gerbview/ - Gerber viewer
  • common/ - Common library code
  • libs/ - Utility libraries (geometry, etc.)
  • scripting/ - Python integration
  • qa/ - Unit testing framework

Next Steps

  1. Set up your development environment
  2. Build KiCad from source
  3. Learn the code style guidelines
  4. Submit your first merge request

Build docs developers (and LLMs) love