app
Altium - the Altium Bridge
Public Made by Adomby adom
Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.
main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
#!/usr/bin/env bash
# Deploy the altium-bridge USER skills into every agent home this container has,
# and install the dock dashboard (`altium-dashboard`) that dockbar.json launches.
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
install_skill() { # <dest-dir> <src-file>
mkdir -p "$1" && cp -f "$2" "$1/SKILL.md"
}
for HOME_DIR in "$HOME/.claude/skills" "$HOME/.codex/skills"; do
install_skill "$HOME_DIR/altium-bridge" "$HERE/SKILL.md"
install_skill "$HOME_DIR/altium-bridge-plan" "$HERE/skills/altium-bridge-plan/SKILL.md"
install_skill "$HOME_DIR/altium-part-import" "$HERE/skills/altium-part-import/SKILL.md"
install_skill "$HOME_DIR/altium-kicad-import" "$HERE/skills/altium-kicad-import/SKILL.md"
install_skill "$HOME_DIR/altium-install" "$HERE/skills/altium-install/SKILL.md"
install_skill "$HOME_DIR/altium-libraries" "$HERE/skills/altium-libraries/SKILL.md"
install_skill "$HOME_DIR/altium-boards" "$HERE/skills/altium-boards/SKILL.md"
install_skill "$HOME_DIR/altium-outputs" "$HERE/skills/altium-outputs/SKILL.md"
install_skill "$HOME_DIR/altium-instances" "$HERE/skills/altium-instances/SKILL.md"
install_skill "$HOME_DIR/altium-licensing" "$HERE/skills/altium-licensing/SKILL.md"
install_skill "$HOME_DIR/altium-uia" "$HERE/skills/altium-uia/SKILL.md"
install_skill "$HOME_DIR/altium-wiki-import" "$HERE/skills/altium-wiki-import/SKILL.md"
install_skill "$HOME_DIR/altium-a365" "$HERE/skills/altium-a365/SKILL.md"
install_skill "$HOME_DIR/altium-bom" "$HERE/skills/altium-bom/SKILL.md"
install_skill "$HOME_DIR/altium-schematic-edit" "$HERE/skills/altium-schematic-edit/SKILL.md"
done
# Dashboard: the pkg ships it, the dock runs `altium-dashboard serve --print-url`.
# (kicad-bridge once shipped a dockbar.json whose command the pkg never installed;
# every user's dock click died with exit 127. Install what we carry.)
APPDIR="$HOME/.local/share/adom/altium-bridge"
BINDIR="$HOME/.local/bin"
mkdir -p "$APPDIR/dashboard/ui" "$BINDIR"
cp -f "$HERE/dashboard/altium_dashboard.py" "$APPDIR/dashboard/altium_dashboard.py"
for asset in index.html favicon.svg altium-logo.png dock-altium.svg newbie-panel.js; do
[ -f "$HERE/dashboard/ui/$asset" ] && cp -f "$HERE/dashboard/ui/$asset" "$APPDIR/dashboard/ui/$asset"
done
if [ -d "$HERE/dashboard/ui/assets" ]; then
rm -rf "$APPDIR/dashboard/ui/assets"
cp -R "$HERE/dashboard/ui/assets" "$APPDIR/dashboard/ui/assets"
fi
[ -f "$HERE/dockbar.json" ] && cp -f "$HERE/dockbar.json" "$APPDIR/dockbar.json"
cat > "$BINDIR/altium-dashboard" <<EOF
#!/usr/bin/env bash
exec python3 "$APPDIR/dashboard/altium_dashboard.py" "\$@"
EOF
chmod +x "$BINDIR/altium-dashboard"
# The KiCad -> Altium converters the skills (altium-wiki-import, altium-part-import, altium-kicad-import)
# and AI Flow's Altium library step run in the container. They were only in the source repo, so an AI
# with just this package could not follow its own skills (found 2026-10-15). Install them as commands.
mkdir -p "$APPDIR/tools"
for t in kicad2altium symbol_modes kicad_v10_to_v9 bom_tool; do
cp -f "$HERE/tools/$t.py" "$APPDIR/tools/$t.py"
done
mk() { # <command> <tool>
cat > "$BINDIR/$1" <<EOF2
#!/usr/bin/env bash
exec python3 "$APPDIR/tools/$2.py" "\$@"
EOF2
chmod +x "$BINDIR/$1"
}
mk altium-kicad2altium kicad2altium
mk altium-symbol-modes symbol_modes
mk altium-kicad-downgrade kicad_v10_to_v9
mk altium-bom bom_tool
echo "OK: altium-bridge user skills installed + altium-dashboard + altium-kicad2altium, altium-symbol-modes, altium-kicad-downgrade, altium-bom"