Install
Send an agent here. Every command on this page runs without prompts when you add --yes.
Requirements
- Node ≥ 22.6. A hard wall, and Node 20 LTS is still common. Nothing ships a runtime.
- git on PATH
- Claude Code (required for enforcement, not for check). Enforcement currently requires Claude Code. `check` does not.
Verified on Windows and Linux. macOS is not verified yet.
Install
curl -fsSL https://interlock-a05.pages.dev/install.sh | sh -s -- --yesirm https://interlock-a05.pages.dev/install.ps1 | iexnpx interlock-cli@latest check tasks.mdonce published
/install.sh · /install.ps1 · interlock-cli-0.1.0.tgz
What happens
- Checks Node >= 22.6 and git are on PATH, and fails with a message naming the missing one and where to get it. Node 20 LTS is refused by name.
- Confirms, unless non-interactive. install.sh needs --yes when piped; install.ps1 cannot take flags through irm | iex, so it defaults to yes when piped and installs to $HOME\.interlock. Run either as a file for --prefix <dir> / -Prefix <dir>, or set INTERLOCK_PREFIX.
- Downloads the tarball to <prefix>/tmp, extracts to <prefix>/lib, writes a shim at <prefix>/bin/interlock (and interlock.cmd on Windows).
- Runs interlock doctor --json on the installed copy and prints the result. Success is the printed {"ok":true,...}, not the absence of an error.
Neither writes outside the prefix. Neither edits PATH or a shell profile; both print the line to add. Neither phones home; the one network request is the tarball GET.
Coding agents
Send an agent here. Every command on this page runs without prompts when you add --yes.
curl -fsSL https://interlock-a05.pages.dev/install.sh | sh -s -- --yesirm https://interlock-a05.pages.dev/install.ps1 | iex- A non-interactive flag, --yes, that bypasses every prompt that would block automation.
- A no-package-manager fallback, the curl form, for a machine without npm.
- A machine-readable self-check: --json exits 0 with a parseable object, so an agent can confirm the install worked rather than assuming it.
Verify
- interlock doctor --json
- exits 0 and prints {"ok":true,...} when Node and git are present
- interlock check tasks.md --json
- reads one task list and reports which tasks are not independent, as a machine-readable object
interlock check on a 20-task plan reports the exact two shared files. It runs with no git, no node_modules, no network.
Commands
- interlock check <tasks.md|dir> [--json] [--strict]
- Reads one file and reports. It never edits, never touches git, a database, a bus, or the network. Exit code is 0 by default; --strict exits 1 when tasks overlap, for CI. --json emits the same finding as a machine-readable object.
- interlock doctor --json
- Exits 0 when Node and git are present.
- interlock --version
- Prints the version.
- --yes
- installer: skip the confirmation; required when install.sh is piped
- --prefix <dir>
- installer: install somewhere other than ~/.interlock (run the script as a file, or set INTERLOCK_PREFIX)
- --json
- check, doctor: machine-readable output
- --strict
- check: exit 1 when tasks overlap
Enforcement currently requires Claude Code. `check` does not.
Recovery
- Re-run the installer. It writes the same prefix again.
- Uninstall is deleting the prefix. Nothing was written anywhere else.