Documentation
Welcome to the kicad-sch-api documentation!
📚 Documentation Index
Getting Started
Start here if you’re new to the library.
GETTING_STARTED.md - Complete beginner’s guide
What is kicad-sch-api and why use it?
Installation
Your first circuit in 5 minutes
Understanding positions and coordinates
Common patterns
Next steps
Why Use This Library?
Understand the value proposition and use cases.
WHY_USE_THIS_LIBRARY.md - Value proposition and comparisons
The problem: Manual design doesn’t scale
What makes this library different?
Real-world use cases
Comparison to alternatives
When to use (and when not to use)
Success stories
API Reference
Complete reference for all methods and classes.
API_REFERENCE.md - Full API documentation
Creating and loading schematics
Component operations
Wire operations
Label operations
Collections API
Configuration
Complete examples with all options
Common Recipes
Solutions to common tasks.
RECIPES.md - Practical examples and patterns
Basic circuit patterns (voltage dividers, filters, LEDs)
Component management (finding, updating, validating)
Wiring and connectivity
Circuit analysis (BOM, statistics, validation)
Batch operations (test generation, parameter sweeps)
Advanced patterns (templates, configuration-driven)
Orthogonal Routing
Automatic wire routing with Manhattan-style paths.
ORTHOGONAL_ROUTING.md - Wire routing guide
Overview of orthogonal (Manhattan) routing
Direction modes (AUTO, HORIZONTAL_FIRST, VERTICAL_FIRST)
KiCAD Y-axis inversion explained
Practical examples (voltage dividers, filter chains, power distribution)
Integration with MCP servers
Best practices and troubleshooting
Architecture
Understand how the library works internally.
ARCHITECTURE.md - Internal architecture and design
High-level architecture diagram
Core components explained
Data flow examples
Design patterns used
Performance optimizations
Extension points
📖 Quick Links by Task
I want to…
Learn the Basics
Read GETTING_STARTED.md - Beginner-friendly intro
Try the LED circuit example (5 minutes)
Check
../examples/basic_usage.pyfor more examples
Understand Why to Use This
See real-world use cases
Check comparisons to alternatives
Build a Specific Circuit
Check RECIPES.md for your circuit type
Copy and modify the example
Refer to API_REFERENCE.md for details
Automate Circuit Generation
Read “Batch Operations” section in RECIPES.md
See parameter sweep and test generation examples
Check template system in “Advanced Patterns”
Integrate with AI Agents
Install mcp-kicad-sch-api
Use with Claude Code or compatible AI agents
Reference API_REFERENCE.md for operations
Use Automatic Wire Routing
Read ORTHOGONAL_ROUTING.md for routing guide
Use
create_orthogonal_routing()for Manhattan-style routingChoose appropriate direction mode for your circuit
Integrate with MCP server for AI-powered routing
Understand the Codebase
Read ARCHITECTURE.md for overview
Check module docstrings in source code
See test files for usage examples
Find Specific Method Documentation
Go to API_REFERENCE.md
Use table of contents to jump to section
See complete parameter and return type docs
📂 Additional Documentation
In the main repository:
../README.md - Project overview and quick start
../CLAUDE.md - Development guide for Claude Code
../examples/ - Complete working examples
../tests/ - Test suite (shows all features)
🎯 Learning Path
Beginner (1-2 hours)
Read GETTING_STARTED.md
Try the LED circuit example
Browse RECIPES.md for your use case
Experiment with
examples/basic_usage.py
Intermediate (Half day)
Read WHY_USE_THIS_LIBRARY.md for context
Study RECIPES.md recipes for your domain
Reference API_REFERENCE.md as needed
Try
examples/advanced_usage.pyCreate your first automated circuit generator
Advanced (1-2 days)
Read ARCHITECTURE.md to understand internals
Study all recipes in RECIPES.md
Integrate with your workflow (CI/CD, testing, etc.)
Consider contributing new recipes or features
Expert (Ongoing)
Contribute to the library
Build MCP servers or extensions
Create templates for your organization
Help others in GitHub issues
💡 Tips for Success
Do’s
✅ Start simple - try the LED example first ✅ Use recipes as templates - copy and modify ✅ Leverage collections for efficient operations ✅ Use type hints - excellent IDE support ✅ Validate your circuits - use built-in validation ✅ Test in KiCAD - open generated files to verify
Don’ts
❌ Don’t guess at API - check API_REFERENCE.md ❌ Don’t manually calculate pins - use add_wire_between_pins() ❌ Don’t write S-expressions - use high-level API ❌ Don’t skip validation - catch errors early ❌ Don’t ignore format preservation tests - they matter
🤝 Contributing to Documentation
Found an issue or want to improve documentation?
Fork the repository
Edit the relevant
.mdfileSubmit a pull request
Documentation Style Guide
Use examples: Every concept needs a code example
Be practical: Focus on real-world use cases
Be concise: Get to the point quickly
Link between docs: Help readers navigate
Update examples: Keep them working with latest API
📞 Getting Help
Documentation Issues
File an issue: https://github.com/circuit-synth/kicad-sch-api/issues
Label it “documentation”
Usage Questions
Check GETTING_STARTED.md
Search RECIPES.md for your use case
Review API_REFERENCE.md
Check
../examples/directoryFile an issue if still stuck
Bug Reports
Check if it’s documented behavior in API_REFERENCE.md
Create minimal reproduction example
File issue with “bug” label
🔄 Documentation Updates
This documentation is actively maintained. Last major update: November 2025
Changelog:
Nov 2025: Added orthogonal routing documentation
ORTHOGONAL_ROUTING.md: Complete guide to automatic wire routing
Integration tests and examples for routing
Y-axis inversion explained with practical examples
Oct 2025: Initial comprehensive documentation created
GETTING_STARTED.md: Complete beginner guide
WHY_USE_THIS_LIBRARY.md: Value proposition and comparisons
API_REFERENCE.md: Full API documentation
RECIPES.md: Common patterns and solutions
ARCHITECTURE.md: Internal design documentation
Ready to get started? Begin with GETTING_STARTED.md! 🚀