
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@lockstep-ai/lockstep
Advanced tools
Cryptographic verification for AI coding agents. Stop trusting your AI agent — verify it.
Cryptographic verification for AI coding agents.
Stop trusting your AI agent. Verify it.
Define steps. Set validation criteria. Let the agent work. Lockstep generates a verifiable execution receipt proving every step passed.
npm install -g @lockstep-ai/lockstep
lockstep setup
Choose between using your Claude subscription (zero setup) or an Anthropic API key.
Create a spec from a template:
lockstep init nextjs-saas
Or write your own .lockstep.yml:
version: "1"
config:
agent: "claude-code"
max_retries: 3
step_timeout: 300
context: |
Building a REST API with Express.js and TypeScript.
steps:
- name: "Initialize project"
prompt: |
Create an Express.js project with TypeScript.
Set up tsconfig.json, install dependencies, create src/index.ts.
validate:
- type: file_exists
target: "package.json"
- type: file_exists
target: "src/index.ts"
- type: file_contains
path: "package.json"
pattern: "express"
- name: "Add tests"
prompt: |
Write tests for the API using Jest.
validate:
- type: test_passes
command: "npm test"
- type: ai_judge
criteria: |
Are the tests comprehensive? Score 1-10.
threshold: 6.0
evaluation_method: "file_content"
evaluation_targets:
- "src/__tests__/"
Run it:
lockstep run
Lockstep executes each step, validates the results, and produces a cryptographic receipt chaining every step together.
Anyone with the receipt can independently verify the hash chain:
lockstep verify .lockstep/receipt.json
| Type | Description |
|---|---|
file_exists | File exists at path |
file_not_exists | File does not exist |
file_contains | File matches a pattern |
file_not_contains | File does not match a pattern |
command_passes | Shell command exits 0 |
command_output | Command stdout matches pattern |
api_responds | HTTP endpoint returns expected status |
json_valid | File contains valid JSON |
type_check | TypeScript type checking passes |
lint_passes | Linter passes |
test_passes | Test command passes |
ai_judge | AI evaluation against your criteria |
lockstep init <template>
lockstep templates # list all
| Template | Description |
|---|---|
blank | Empty starter |
nextjs-saas | Full-stack Next.js SaaS app |
rest-api | Express.js REST API with TypeScript |
solana-program | Solana program with Anchor |
| Command | Description |
|---|---|
lockstep run [spec] | Execute a spec and generate a receipt |
lockstep validate [spec] | Validate a spec without running |
lockstep init [template] | Create a spec from a template |
lockstep verify <receipt> | Verify a receipt's integrity |
lockstep templates | List available templates |
lockstep setup | Configure authentication |
Run options: --dry-run, --step <n>, --from <n>, --verbose, --no-color, --output <path>
| Agent | Status |
|---|---|
| Claude Code | Supported |
| Cursor | Coming soon |
| GitHub Copilot | Coming soon |
Proprietary. See LICENSE for details.
FAQs
Cryptographic verification for AI coding agents. Stop trusting your AI agent — verify it.
We found that @lockstep-ai/lockstep 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.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.