Design circuit boards with code
Write hardware like software. atopile is a language, compiler, and toolchain for electronics—declarative .ato files, deep validation, and layout that works natively with KiCad.
Why atopile
- Reusable modules instead of starting from scratch every time
- Capture intent with equations directly in your design
- Automatic parametric picking of discrete components
Install
The easiest way is via the editor extension—it installs and manages ato for you:
- VS Code/Cursor extension: https://marketplace.visualstudio.com/items?itemName=atopile.atopile
Advanced setups and CLI installs: https://docs.atopile.io/atopile/guides/install
Quickstart (2 minutes)
-
Install the extension (link above)
-
In the editor, run “atopile: Open Example” and pick one
-
Press the ▶ in the ato menu bar to build, or run
ato buildfrom the terminal -
Open layout when ready
Notes:
- The ato menu bar is in the bottom-left of your VS Code/Cursor window
- KiCad is optional to get started. Without it, you won’t open the PCB, but builds still run and update the
.kicad_pcb. Install later when you’re ready for layout: https://docs.atopile.io/atopile/quickstart
How it works
atois a declarative language for electronics: modules, interfaces, units, tolerances, and assertions- The compiler solves constraints, picks parts, runs checks, and updates your KiCad layout
- The extension adds language services and one‑click controls
Learn more: https://docs.atopile.io/atopile/essentials/1-the-ato-language
Where atopile fits in
High-level steps:
- Requirements — capture specs with units, tolerances, and assertions
- Component selection — parametric picking, reuse proven modules
- Design capture —
.atomodules and interfaces compose your system - Layout — place and route in KiCad
- Checks — run design checks locally or in CI
- Build outputs — BOM, fabrication and assembly data, reports
- PCB fab/assembly — send outputs to your manufacturer
Example Projects
- Open examples via the editor (“atopile: Open Example”) https://github.com/atopile/atopile/tree/main/examples
- NONOS — Open-source smart speaker https://github.com/atopile/nonos
- DSP - Open-source multi-channel DSP https://github.com/atopile/dsp
- AI-Pin — Vibe-coded Humane Pin https://github.com/atopile/ai-pin
- Hyperion — 300K nit display for raves https://github.com/atopile/hyperion
- Cellsim - 18 channel battery cell simulator https://github.com/atopile/cellsim
- ESPaper - ESP32 epaper display driver https://github.com/atopile/hivehaus/tree/master/src/products/espaper
Packages and parts
- Browse and install modules from the registry: https://packages.atopile.io
- Guide: https://docs.atopile.io/atopile/essentials/4-packages
- Publish your own: https://docs.atopile.io/atopile/guides/publish
Compatibility
- OS: macOS, Linux, Windows (WSL recommended)
- Recommended editors: VS Code / Cursor
- EDA: KiCad recommended for layout; not required to start
Contributing and development
- Development setup: https://docs.atopile.io/atopile/guides/development
- Editable install (for working on atopile itself): https://docs.atopile.io/atopile/guides/install#editable-installation-best-for-development
- Run tests:
pytest -q
- Fast worktree setup (CoW-clone
.venv+ Zig cache/output, then path rewrite):
ato dev worktree <suffix>
cd ../atopile_<suffix>
source .venv/bin/activate
ato --help
By default this command starts an interactive shell in the new worktree.
Pass --no-cd to skip shell handoff.
- Issues and feature requests: https://github.com/atopile/atopile/issues
Support
- Discord “help” channel: https://discord.gg/CRe5xaDBr3
- Commercial support: hi@atopile.io
License
MIT. See LICENSE.
Metadata
Release files for atopile 0.15.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| atopile-0.15.9.tar.gz | 95.6 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| atopile-0.15.9-cp314-cp314t-musllinux_1_2_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux musl 1.2+ x86-64 | Details |
| atopile-0.15.9-cp314-cp314t-manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.28+ x86-64 | Details |
| atopile-0.15.9-cp314-cp314t-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 11.0+ ARM64 | Details |
| atopile-0.15.9-cp314-cp314t-macosx_10_15_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 10.15+ x86-64 | Details |
| atopile-0.15.9-cp314-cp314-win_amd64.whl | CPython 3.14 | CPython 3.14 | Windows x86-64 | Details |
| atopile-0.15.9-cp314-cp314-musllinux_1_2_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux musl 1.2+ x86-64 | Details |
| atopile-0.15.9-cp314-cp314-manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.28+ x86-64 | Details |
| atopile-0.15.9-cp314-cp314-macosx_11_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 11.0+ ARM64 | Details |
| atopile-0.15.9-cp314-cp314-macosx_10_15_x86_64.whl | CPython 3.14 | CPython 3.14 | macOS 10.15+ x86-64 | Details |
Total release size: 186.3 MB
Release files / atopile-0.15.9.tar.gz
| Download URL | atopile-0.15.9.tar.gz |
|---|---|
| Size | 95.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
681cc1e123646dd133de31b631aedaf4eaac88682613b4f82d1da4b3ef8b4e8e
|
|
BLAKE2b-256 checksum How to use checksums |
ec707611a5fae81aab1f90ad071abd0861d6081606cfbd234ded5b8734dd94ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | atopile-0.15.9-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b3ca94ebd18a537763abaa7a8e907b96a2c0b4630afb7128ba2f2245a0e39187
|
|
BLAKE2b-256 checksum How to use checksums |
7de34b0621461eb29fb4125b8fe8156cd9cac546ab5cba0b33c132efd6046bf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | atopile-0.15.9-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
7389bf20debb2da7efa86bb78a020ec89e7e5f185c966373fc8efaf00a12d1dd
|
|
BLAKE2b-256 checksum How to use checksums |
9db0dbba49de925d880b3a39c83b3b0172a9c08976c6efd2e9cbf19ccb00c41b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | atopile-0.15.9-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f3b023e4724f5a7f2e027a5d17151f634dffca6b22588df0f79f1e653d0eb65c
|
|
BLAKE2b-256 checksum How to use checksums |
2e67e087939afe6c43b169fa2ed9f3185bec8560dc0e3805956c926f40d9316e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314t-macosx_10_15_x86_64.whl
| Download URL | atopile-0.15.9-cp314-cp314t-macosx_10_15_x86_64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
3d36ea0c1c01b23c340bc4b871c031150be0b9fc14af0e3b3e76cebb8b1bf91e
|
|
BLAKE2b-256 checksum How to use checksums |
57d0e1f5654ca911df966ed7ca1462e999f9fb43db5f3017f533eb105b381c90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314-win_amd64.whl
| Download URL | atopile-0.15.9-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 8.0 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ddb1f95468e901a68eac835fc68b301199e0eda0c7fed7ee9b6ec3df1a89d3f2
|
|
BLAKE2b-256 checksum How to use checksums |
68d8fc19d0922c968698b7bcd8a980bdf23f20a8814de089f7be211dc8f5513f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | atopile-0.15.9-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
e258762d05a46783b946e92f80961873740f7afaf3e662bdc5167a35220a67fd
|
|
BLAKE2b-256 checksum How to use checksums |
3572c6b430e0f170ebd5ff7f2130fdd2b39ac51fb64e0905bc228a3da353182b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | atopile-0.15.9-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9b1571061b74a8a098b354408d2e5d15cec962ff9dc75d72c22c00b8322fbffc
|
|
BLAKE2b-256 checksum How to use checksums |
5cf6aca7bdcc80abbcf4c63b133232a930586270c07e358b5c6c2d85b7e21c7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | atopile-0.15.9-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
085e43261f4c3af0ddfe49136992ff24b350d5356381be9154a2f439527d7be9
|
|
BLAKE2b-256 checksum How to use checksums |
00a12c31fbcfdd2307c0fafc83e5d41fad4212d36373d4f715f6e9f609ff4cd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / atopile-0.15.9-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | atopile-0.15.9-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
26ffc3f08e8d1b4540664d439bdbd57aea89eda02725a56840e8cbcc6f9044f5
|
|
BLAKE2b-256 checksum How to use checksums |
3eed348ca84beb11318eb0df657390b9820dc39926add3e5b8f923e46489fb71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency log