Rust CLI and crates to query and modify Altium files.
As of 2/24/26 this crate is in the middle of an unreleased massive rewrite for 0.2.0
These are complex file formats full of domain knowledge and decades of legacy cruft. I do my best to validate and test the CLI against thousands of real world files available on Github, but at the end of the day this software was built on millions of lines of vibe-reverse engineered Delphi and C# code so there WILL be subtle bugs.
This software is provided as-is without warranty. YOU area responsible for anything you send to the fab. Make sure your fab runs their own design rule checks.
Although altium-cli supports older file formats when reading, all mutations RESAVE THE FILE IN THE LATEST FORMAT (Altium/DXP 26 as of the time of this writing). If you are stuck on an older version of Altium, you may have problems opening the files afterwards.
Our implementation is more strict than Altium's because of ambiguity in the reverse engineered implementation.
This is mostly developed as a tool for agents to use, so expect lots of breaking changes.
altium-format-types: domain types, enums, constantsaltium-format-derive: proc-macro derivesaltium-format: core parsers/serializers for Altium formatsaltium-format-ops: high-level operations and.opsexecutionaltium-cli: command-line interface
new schdoc <output>new schlib <output>validate <path>save-as <input> <output>get version <path>ops apply <path> --spec-file <file.ops> [--output <path>] [--dry-run] [--report-json]cfb ls|dump|blocks|diff|cat ...(CFB/OLE inspection/debugging)
- Gerber output
- Rendering parts, footprints, and documents to image/pdf
Apache-2.0