
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
The smart searchlight for your test suite. Fast, graph-powered selection for Jest and Cargo.
Headlamp is a Rust-powered test UX CLI: smarter test selection, cleaner output, and a unified workflow across jest, Rust tests (headlamp runner), cargo test, cargo nextest, and pytest.
Headlamp is useful when you want a consistent way to run tests across different projects and keep feedback fast as your repo grows. It can select tests based on what changed, surface failures in a readable format, and keep common defaults (like runner args and coverage settings) in a single config file so your team doesn’t have to remember a long list of flags.
--runner=headlamp|jest|cargo-nextest|cargo-test|pytest--changed) and what’s related (dependency-graph driven)Requirements:
Install:
npm i -D headlamp
Run:
npx headlamp --help
Install from crates.io:
cargo install headlamp
Install:
pip install headlamp
headlamp --runner=pytest
Headlamp is a wrapper around your project’s runners. It does not vendor the runners themselves, so you need the runner executables available in your environment for the features you’re using.
--changed=... modes (e.g. --changed=branch).--runner=jest)./node_modules/.bin/jest).--coverage): requires Jest coverage support (standard Jest --coverage + reporters). Headlamp formats/prints coverage from generated reports.--runner=pytest)PATH (pytest / pytest.exe).--coverage): requires pytest-cov (Headlamp enables coverage and passes --cov flags; branch coverage uses --cov-branch).--runner=headlamp)cargo + rustc.--report-time only when nightly is available).
rustup toolchain install nightly--runner=cargo-test)cargo + rustc.--coverage): collected via LLVM tools from rustup (no cargo-llvm-cov dependency).
rustup component add llvm-tools-preview--runner=cargo-nextest)cargo + rustc.cargo-nextest (cargo install cargo-nextest).--coverage): collected via LLVM tools from rustup (no cargo-llvm-cov dependency).
rustup component add llvm-tools-previewnpx headlamp --runner=jest
Forward runner args after -- (unknown args are forwarded):
npx headlamp --runner=jest -- --runInBand
headlamp --runner=cargo-nextest
headlamp --runner=cargo-test
Requirements:
--runner=cargo-nextest: requires cargo-nextest to be installed.
cargo install cargo-nextest (or your preferred installer)Run headlamp --help to see the up-to-date flags list.
Highlights:
--runner=headlamp|jest|pytest|cargo-nextest|cargo-test--changed=all|staged|unstaged|branch|lastCommit|lastRelease
lastRelease selects changes since the previous stable SemVer release tag--coverage plus --coverage-ui, --coverage-detail, thresholds, etc.--keep-artifacts to keep runner artifacts on diskLegacy aliases (still accepted, but not recommended):
--keepArtifacts--coverage.detailHeadlamp discovers config from your repo root. Supported file names:
headlamp.toml (highest precedence)headlamp.config.tsheadlamp.config.jsheadlamp.config.mjsheadlamp.config.cjsheadlamp.config.jsonheadlamp.config.json5headlamp.config.jsoncheadlamp.config.yamlheadlamp.config.yml.headlamprc plus .headlamprc.* variants (.json, .json5, .jsonc, .yaml, .yml, .js, .cjs, .mjs, .ts)Headlamp also supports embedded TOML config (lower precedence than explicit config files):
pyproject.toml under [tool.headlamp]Cargo.toml under [package.metadata.headlamp]headlamp.toml (recommended for Rust + Python)# Run tests sequentially (useful for very heavy integration tests)
sequential = true
[coverage]
abort_on_failure = true
mode = "auto"
page_fit = true
keep_artifacts = false
[changed]
depth = 20
headlamp.config.tsRules:
./ and ../)export default {
// Runner defaults
jestArgs: ["--runInBand"],
// Run once before tests (npm script name or a shell command)
bootstrapCommand: "test:jest:bootstrap",
// Global toggles
ci: false,
verbose: false,
noCache: false,
keepArtifacts: false,
// Coverage defaults
coverage: true,
coverageUi: "both",
coverage: {
abortOnFailure: true,
mode: "auto",
pageFit: true,
},
// Changed selection defaults
changed: { depth: 2 },
};
By default, headlamp runs artifact-free: it uses an ephemeral per-run workspace and does not leave files behind in your repo (e.g. coverage/, .coverage, .pytest_cache, target/) or OS temp.
If you need artifacts on disk (for example, to upload coverage reports in CI), opt out:
--keep-artifactskeepArtifacts: truePull requests are welcome. For large changes, open an issue first to align on direction.
MIT — see LICENSE.
FAQs
The smart searchlight for your test suite. Fast, graph-powered selection for Jest and Cargo.
We found that headlamp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.