────┐ ┌──────┐ ┌─┐ ┌────────┐ ┌───────┐
└────────┘ └───┘ └─────┘ └──────┘ └──────────────────────────────────
░█▀▀░█▀▄░█▀█░█▀▀░█░█
░█▀▀░█░█░█▀█░▀▀█░█▀█ Open-source EDA toolchain manager for ASIC, FPGA, and analog design.
░▀▀▀░▀▀░░▀░▀░▀▀▀░▀░▀
# Install edash
curl -sSL https://raw.githubusercontent.com/runtime-terror404/edash/main/install.sh | bash
# Install a toolchain
edash install digital
# Check everything works
edash doctor digital
# Launch the dashboard
edashedash installs and manages EDA tools the way rustup manages Rust toolchains: one command, reproducible across machines, no system package manager involved. It wraps existing distributors instead of replacing them — micromamba for conda packages, OSS CAD Suite for FPGA/formal tools, and ciel for PDKs.
- Two backends, one interface. ASIC tools come from conda channels (litex-hub, conda-forge, vlsida-eda). Synthesis, simulation, FPGA, and formal tools come from the OSS CAD Suite tarball. You don't need to know which is which —
edash install digitalresolves everything. - Lockfile is the unit of reproducibility.
edash.lockrecords exact versions, channels, and backends. Same lock, same bits, any machine. - TUI dashboard.
edashwith no arguments launches a keyboard-driven terminal UI — browse environments, install tools, run diagnostics. - PDK management.
edash install sky130fetches and enables the SKY130 PDK via ciel.edash envexports PDK path variables for magic, netgen, xschem, klayout, and ngspice. - Self-updating.
edash updatefetches the latest release with crash-safe atomic swaps.edash repairrecovers from interrupted updates.
See the FAQ for common questions or the glossary for EDA terminology.
curl -sSL https://raw.githubusercontent.com/runtime-terror404/edash/main/install.sh | bashInstalls to ~/.local/bin/edash. The script detects your architecture, downloads the latest release, and sets up the catalog.
To install system-wide (CI, lab machines):
curl -sSL https://raw.githubusercontent.com/runtime-terror404/edash/main/install.sh | bash -s -- --systemgit clone https://github.com/runtime-terror404/edash
cd edash
cargo build --release
./target/release/edash -c ./catalog install digitalThe -c ./catalog flag points to the catalog in the source tree. Release binaries find the catalog at ~/.local/share/edash/catalog/base/ automatically.
edash itself is a single static binary. At runtime it needs:
| Dependency | Required for | Auto-installed? |
|---|---|---|
micromamba |
Conda-based tools (openroad, magic, xschem, etc.) | Show hint during installation |
ciel |
PDK installation | Show hint during installation |
curl, tar |
OSS CAD Suite, self-updates | Expected on all Linux systems |
$ edash --help
Reproducible EDA toolchain manager
Usage: edash [OPTIONS] [COMMAND]
Commands:
install Install environments, tools, or PDKs
list List installed packages and PDKs
remove Remove environments, tools, or PDKs
env Print shell exports (eval-able)
shell Spawn a subshell with tools on PATH
doctor Run functional checks on installed tools
search Search the catalog
why Show which environments pull in a tool
outdated Check for newer versions
clean Remove unreferenced installs
cache Show download cache usage
export Export to Dockerfile or GitHub Actions
pdk Show PDK configuration and usage
update Self-update to the latest release
repair Recover from interrupted updates
help Print this message or the help of the given subcommand(s)
Options:
-c, --catalog-dir <CATALOG_DIR> Override catalog path [env: EDASH_CATALOG_PATH]
-h, --help Print help
-V, --version Print version
edash install digital # ASIC backend + synthesis + FPGA + formal (15 tools)
edash install analog # Analog design: xschem, ngspice, xyce, magic, klayout, netgen, gawedash install yosys magic netgen
edash search open
edash why yosys # shows which envs pull in yosysedash install sky130
edash pdk # list available and installed PDKs
edash pdk sky130 # show paths and per-tool usageeval "$(edash env digital)" # export vars in current shell
edash shell digital # spawn a subshell with MOTDedash remove digital analog # removes all tools (shared tools kept)
edash remove pdks # removes all PDKs
rm -rf ~/.local/share/edash # removes all edash data
rm ~/.local/bin/edash # removes the binary| Category | Tools | Backend |
|---|---|---|
| Synthesis | yosys | OSS CAD Suite |
| Place & route | openroad | micromamba (litex-hub) |
| Layout | magic, klayout | micromamba |
| LVS | netgen | micromamba |
| Simulation | iverilog, verilator, gtkwave | OSS CAD Suite |
| FPGA | nextpnr, icestorm, prjtrellis, openfpgaloader | OSS CAD Suite |
| Formal | sby, boolector, z3 | OSS CAD Suite |
| Category | Tools | Backend |
|---|---|---|
| Schematic | xschem | micromamba (litex-hub) |
| Simulation | ngspice, xyce | micromamba |
| Layout | magic, klayout | micromamba |
| LVS | netgen | micromamba |
| Waveform | gaw | micromamba (edash) |
edash doesn't replace these tools — it wraps them and adds a reproducibility layer:
| vs | What edash adds |
|---|---|
Raw micromamba install |
Lockfile for reproducibility. One command installs entire environments. doctor runs functional checks, not just file-exists. |
| OSS CAD Suite tarball | Same lockfile + catalog layer. edash adds the ASIC and analog side under one CLI. |
| Nix / nix-eda | Different tradeoff. Nix's ceiling is higher (perfect reproducibility); edash's floor is lower (no Nix install required). |
| Docker-based flows (IIC-OSIC-TOOLS) | No container overhead. Native GUI tools work without X11 forwarding. |
The catalog defines what can be installed. It's YAML — human-editable, no code changes needed to add a tool or PDK.
- Official catalog:
~/.local/share/edash/catalog/base/(shipped with releases, updated byedash update) - User overrides:
~/.config/edash/catalog/user/(never touched by updates)
See docs/architecture.md for the full catalog schema, lockfile format, backend architecture, and on-disk layout.
The easiest contribution is adding a tool to catalog/tools.yaml.
Check docs/wip.md for open issues and future plans.
See CONTRIBUTING.md.
edash wraps three upstream projects that do the heavy lifting:
- litex-hub and conda-forge — conda packaging for open-source EDA tools
- OSS CAD Suite — monolithic distribution of synthesis, simulation, FPGA, and formal tools
- ciel (based on Volare by Efabless) — PDK version manager
TUI design inspired by torlink. Toolchain-manager model inspired by rustup and mise.
