Different tradeoff
safe-install prioritizes local-only sandbox execution. Aikido Safe Chain prioritizes proxy filtering and package intelligence. Socket prioritizes hosted analysis, visibility, and workflow automation.
$ safe-install onboarding
Add AI agent instructions? Y
Add repo-local shims? Y
Add package.json guard? Y
Install global shims? n
Sandbox: docker
Minimum package age: 48h
Onboarding complete.
Local-first dependency gate
A Docker sandbox gate for npm, pnpm, yarn, and bun. Built for humans, AI coding agents, and teams that do not want dependency graphs uploaded to a dashboard.
npm install -D @asynq.org/safe-install
First run
`safe-install onboarding` asks what to enable, checks Docker readiness, and tunes the policy for humans, agents, and CI.
$ safe-install onboarding --dry-run
Selected actions:
enable safe-install.yaml
enable AI agent instruction files
enable repo-local shims
enable package.json preinstall guard
skip global package-manager shims
No files were changed.
Pick package age, install-script blocking, repo shims, package.json guardrails, and global shim behavior from one prompt.
Generate instructions for Codex, Claude Code, Cursor, Copilot, and generic coding agents so dependency changes use the same route.
Use `safe-install verify-lockfile` and `safe-install ci` to turn lockfile intelligence into a pull-request gate.
Comparison
safe-install focuses on one narrow moment: what happens during an install or update before the real project is touched. These tools can be complementary. Comparison last updated June 10, 2026.
| Capability | safe-install | Aikido Safe Chain | Socket |
|---|---|---|---|
| Open source | Yes, Apache-2.0 | Yes, AGPL-3.0 | No |
| Free to use | ✓ | ✓ | Free* |
| Free plan scan limit | No scan meter | No scan meter | 1,000 / month |
| Docker sandbox detonation before apply | ✓ | - | - |
| Real project untouched until sandbox passes | ✓ | - | - |
| No hosted dashboard or dependency graph upload | ✓ | ✓ | - |
| AI agent instructions and repo shims | ✓ | - | - |
| CI command for lockfile verification | ✓ | - | ✓ |
| Package age policy | ✓ | ✓ | ✓ |
| Known malware and threat intelligence | - | ✓ | ✓ |
| Hosted triage, alerts, and team dashboard | - | - | ✓ |
| Broad ecosystem coverage beyond JS/TS | - | ✓ | ✓ |
* Socket has a $0 Free plan with 1,000 scans per month, plus paid plans for higher limits and team features.
safe-install prioritizes local-only sandbox execution. Aikido Safe Chain prioritizes proxy filtering and package intelligence. Socket prioritizes hosted analysis, visibility, and workflow automation.
Command surface
Use onboarding for first setup. Dependency changes run the sandbox first and apply automatically when the report passes. Use `--dry-run` for report-only checks.
safe-install onboardingsafe-install onboarding --dry-runsafe-install onboarding --defaultssafe-install initsafe-install init --agentssafe-install init --enforcesafe-install init --package-json-guardsafe-install init --allsafe-install <pm> <command> [args]safe-install npm install <pkg>safe-install pnpm add <pkg>safe-install yarn add <pkg>safe-install bun add <pkg>safe-install npm update <pkg>safe-install pnpm remove <pkg>... --dry-run... --jsonsafe-install doctorsafe-install verify-lockfile --base <ref>safe-install ci --base <ref>safe-install guard npmSAFE_INSTALL_GUARD_BYPASS=1 npm installsafe-install helpsafe-install --versionsafe-install install-global-shimssafe-install install-global-shims --applysafe-install uninstall-global-shimssafe-install uninstall-global-shims --applySAFE_INSTALL_GLOBAL_SHIM_BYPASS=1 npm installEnforcement modes
Lightweight warning for raw npm installs. It is simple, visible, and does not require shell changes.
safe-install init --package-json-guard
Local package-manager wrappers block raw commands when `.safe-install/bin` is first in PATH.
safe-install init --enforce
Generated instructions for Codex, Claude Code, Cursor, Copilot, and generic AI agents.
safe-install init --agents
Optional power-user mode that preserves normal npm/pnpm/yarn/bun muscle memory across repos.
safe-install install-global-shims --apply
Block direct dependency versions that are too new. Default is 48 hours; set 168 for a week.
policy.minimumPackageAgeHours: 168
Sandbox flow
Skip `.git`, `node_modules`, build output, and caches.
No real SSH keys, npm tokens, cloud credentials, or editor configs are mounted.
Fetch packages with lifecycle scripts disabled.
Rebuild scripts run in Docker with `--network none`.
Passing reports apply automatically; `--dry-run` stops after the sandbox report.
Roadmap
npm, pnpm, yarn, bun, Docker backend, lockfile verification, agent instructions, guards, local and global shims.
Install-script allowlists, richer PR annotations, transitive package-age checks, and better behavior tracing.
Python pip/uv, Rust cargo/build.rs, Podman, bubblewrap, and local report viewer.