This document lists required local tools for development, linting, testing, and packaging.
- Alfred runtime/interactive acceptance is macOS-only.
- Linux dependencies are intentionally kept for CI and headless test/lint/package flows.
- This repository's CI runs on Ubuntu (
.github/workflows/ci.yml), andscripts/setup-rust-tooling.shincludes Debian/Ubuntu handling.
- Rust toolchain (
rustup,cargo,rustc) - Rust components:
rustfmt,clippy,llvm-tools-preview - Cargo tools:
cargo-nextest,cargo-llvm-cov - Core CLI/runtime:
git,jq,rg(ripgrep),curl - Workflow SVG asset conversion:
image-processing(required when regenerating SVG-based workflow assets) - Shell tooling:
shellcheck,shfmt - Node runtime:
node,npm - Node dependencies:
playwrightandrumdlpackages (managed via rootpackage.json) - SHA-256 provider (at least one):
shasumorsha256sumoropenssl - Packaging/runtime helpers:
zip,unzip,open(macOS install/runtime),xdg-open(Linux CI/local smoke compatibility) - Optional live scraper runtime: Playwright Chromium browser (
npx playwright install chromium)
- Regenerate artifacts:
bash scripts/generate-third-party-artifacts.sh --write
- Verify artifact freshness:
bash scripts/generate-third-party-artifacts.sh --check
- Run regression tests:
bash tests/third-party-artifacts/generator.test.sh
- Generator/runtime prerequisites:
cargo,jq, andcurl- one SHA-256 provider (
shasum,sha256sum, oropenssl) - standard shell utilities used by the script (
awk,cmp,mktemp,sed,sort)
- Packaging/install/macOS acceptance: docs/PACKAGING.md
- Release/tag/publish flow: docs/RELEASE.md
- Cross-workflow runtime and troubleshooting standards: ALFRED_WORKFLOW_DEVELOPMENT.md
# Rust + cargo tools used by this repo
scripts/setup-rust-tooling.sh
# Shell tools
brew install shellcheck shfmt
# Workflow SVG asset conversion
brew install nils-cli
# Packaging helpers
brew install zip unzip
# Node + Playwright deps for cambridge-dict scraper tests
npm ci
# Optional (only for live scraping checks)
npx playwright install chromium
# Workflow SVG asset conversion
# Install `image-processing` from nils-cli before regenerating SVG workflow assets.# Base build + shell tools
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libssl-dev git jq ripgrep shellcheck shfmt zip unzip
# Rust + cargo tools used by this repo
scripts/setup-rust-tooling.sh
# Node + Playwright deps for cambridge-dict scraper tests
npm ci
# Optional (only for live scraping checks)
npx playwright install chromiumrustc --version
cargo --version
cargo fmt --version
cargo clippy --version
cargo nextest --version
cargo llvm-cov --version
git --version
jq --version
rg --version
shellcheck --version
shfmt --version
node --version
npm --version
npx playwright --version
zip -v | head -n 1