A toolchain bringing the best of software development to the real-world!
Project description
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
Examples
- Quickstart walkthrough: https://docs.atopile.io/atopile/quickstart
- Open examples via the editor (“atopile: Open Example”)
- NONOS — Open-source smart speaker https://github.com/atopile/nonos
- AI-Pin — Vibe-coded Humane Pin https://github.com/atopile/ai-pin
- Hyperion — 300K nit display for raves https://github.com/atopile/hyperion
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
- 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atopile-0.12.4.tar.gz.
File metadata
- Download URL: atopile-0.12.4.tar.gz
- Upload date:
- Size: 5.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
651549dd7d7bfe54b7d5284e2396941eba1bb200cd8226ade6ceb7c945c7ba08
|
|
| MD5 |
1b899c18949d9745a1c2a3ef20ce11a1
|
|
| BLAKE2b-256 |
5ae59dfdae58a7c27b97d4459557a478d5430ea02de4cb024b0712a6de1818f4
|
Provenance
The following attestation bundles were made for atopile-0.12.4.tar.gz:
Publisher:
deploy.yml on atopile/atopile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atopile-0.12.4.tar.gz -
Subject digest:
651549dd7d7bfe54b7d5284e2396941eba1bb200cd8226ade6ceb7c945c7ba08 - Sigstore transparency entry: 486101084
- Sigstore integration time:
-
Permalink:
atopile/atopile@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Branch / Tag:
refs/tags/v0.12.4 - Owner: https://github.com/atopile
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file atopile-0.12.4-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: atopile-0.12.4-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a89e950ee5a954f79a048846ff021592c0e5e5801f5dd8845f723ab1a310c2f5
|
|
| MD5 |
3cdcd35eecd53b1e4ed4ad216a4a4866
|
|
| BLAKE2b-256 |
d14512f46223e23bd0b3859054541763106d607b724afec7017e51379ebaecbb
|
Provenance
The following attestation bundles were made for atopile-0.12.4-cp313-cp313-win_amd64.whl:
Publisher:
deploy.yml on atopile/atopile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atopile-0.12.4-cp313-cp313-win_amd64.whl -
Subject digest:
a89e950ee5a954f79a048846ff021592c0e5e5801f5dd8845f723ab1a310c2f5 - Sigstore transparency entry: 486101116
- Sigstore integration time:
-
Permalink:
atopile/atopile@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Branch / Tag:
refs/tags/v0.12.4 - Owner: https://github.com/atopile
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file atopile-0.12.4-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: atopile-0.12.4-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86ad0f6108faad6a6680c04279960999088e87f29cd57511a70d9fbbd00b68f4
|
|
| MD5 |
6eca0e8e95c49ef589479f83b76fec32
|
|
| BLAKE2b-256 |
373b9fd861309a5a2b98ac82e790f3204ecc92ca1ebfcc7232379662a16c0fe8
|
Provenance
The following attestation bundles were made for atopile-0.12.4-cp313-cp313-musllinux_1_2_x86_64.whl:
Publisher:
deploy.yml on atopile/atopile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atopile-0.12.4-cp313-cp313-musllinux_1_2_x86_64.whl -
Subject digest:
86ad0f6108faad6a6680c04279960999088e87f29cd57511a70d9fbbd00b68f4 - Sigstore transparency entry: 486101101
- Sigstore integration time:
-
Permalink:
atopile/atopile@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Branch / Tag:
refs/tags/v0.12.4 - Owner: https://github.com/atopile
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file atopile-0.12.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: atopile-0.12.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 921.4 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b74e0c4908d28046ec8c07ac3d1e0051c99ecaa83c57b65ce8e1d89b73d4cb1
|
|
| MD5 |
123662ed3295ddd23c4cfebf01f1f899
|
|
| BLAKE2b-256 |
aa6f8ff56738ffb1f1f8970ac75f65769eb5946f3a58fccd4dc8770d2caa68b4
|
Provenance
The following attestation bundles were made for atopile-0.12.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
deploy.yml on atopile/atopile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atopile-0.12.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
8b74e0c4908d28046ec8c07ac3d1e0051c99ecaa83c57b65ce8e1d89b73d4cb1 - Sigstore transparency entry: 486101153
- Sigstore integration time:
-
Permalink:
atopile/atopile@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Branch / Tag:
refs/tags/v0.12.4 - Owner: https://github.com/atopile
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file atopile-0.12.4-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: atopile-0.12.4-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 873.3 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bbac3acfcbfcf88e0fc813c5043c1dc6f44b05136e6eb13d09c7e7a769cbc98
|
|
| MD5 |
01b1b31b6d1fe71ba4681c4ef15a0905
|
|
| BLAKE2b-256 |
b625e08655fd73f9271d94f24817309f1e438789b92db0d76798466bab75104f
|
Provenance
The following attestation bundles were made for atopile-0.12.4-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
deploy.yml on atopile/atopile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atopile-0.12.4-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
0bbac3acfcbfcf88e0fc813c5043c1dc6f44b05136e6eb13d09c7e7a769cbc98 - Sigstore transparency entry: 486101170
- Sigstore integration time:
-
Permalink:
atopile/atopile@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Branch / Tag:
refs/tags/v0.12.4 - Owner: https://github.com/atopile
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file atopile-0.12.4-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: atopile-0.12.4-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 884.8 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0a01d7f346c092531419e4d20b3130bb7665a5e3d4855df98484bcbebda92a5
|
|
| MD5 |
faffc4d4c60c6d2ea6d011d9174f7f21
|
|
| BLAKE2b-256 |
9fe5575cd95e181463e3a98883fb4fecfed79d1619255999340507b57a957b32
|
Provenance
The following attestation bundles were made for atopile-0.12.4-cp313-cp313-macosx_10_13_x86_64.whl:
Publisher:
deploy.yml on atopile/atopile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
atopile-0.12.4-cp313-cp313-macosx_10_13_x86_64.whl -
Subject digest:
c0a01d7f346c092531419e4d20b3130bb7665a5e3d4855df98484bcbebda92a5 - Sigstore transparency entry: 486101136
- Sigstore integration time:
-
Permalink:
atopile/atopile@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Branch / Tag:
refs/tags/v0.12.4 - Owner: https://github.com/atopile
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy.yml@af9051575f84a9329212499dc8ef1a3d3ba250c2 -
Trigger Event:
release
-
Statement type: