Early alpha — feedback welcome

Stop your AI agent from shipping broken code

Holdpoint enforces deterministic eval checkpoints on Copilot CLI, Claude Code, Cursor, and any AI coding agent. One checks.yaml file. Zero config required.

$ curl -fsSL https://holdpoint.dev/install.sh | sh
or:npx @holdpoint/cli@alpha init

Requires Node.js 18+ and an active git repo.

holdpoint check
typecheck passed in 1.2s
lint passed in 0.8s
test 1 failing — see vitest output
blocked: 1 check failed.
agent cannot mark task complete.

Works with

GitHub Copilot CLIbeforeTaskComplete hook
Claude CodeStop / PostToolUse hooks
Cursoradvisory only (no block)

Everything you need to keep agents honest

Deterministic Checkpoints

Define shell commands that must pass before any agent can commit or mark a task done. Zero tolerance for skipped checks.

Visual Builder

n8n-style node canvas to build your checks.yaml without writing YAML. Trigger → Condition → Check — drag, drop, export.

Any Agent, One File

Works with GitHub Copilot CLI, Claude Code, Cursor, and more. One checks.yaml. Each agent gets a purpose-built adapter.

Trigger Matching

Checks activate only when relevant. Frontend checks run on .tsx files. Backend checks on API routes. Custom regex triggers.

Status

Holdpoint is in early alpha. What works today:

  • Deterministic check enforcement on GitHub Copilot CLI
  • Deterministic check enforcement on Claude Code (PostToolUse + Stop hooks)
  • YAML schema + validation (yaml-core package, covered by tests)
  • Stack auto-detection for TypeScript, Next.js, Python, Go, fullstack

What's incomplete:

  • Cursor support is advisory; no hard block
  • Visual builder only runs from inside the holdpoint monorepo
  • Test coverage outside yaml-core is thin — contributions welcome
  • npm-published API surface may change before 1.0

As simple as a YAML file

checks.yaml
checks:
  - id: typecheck
    label: "TypeScript type check"
    cmd: "pnpm typecheck"
  - id: test
    label: "Run unit tests"
    cmd: "pnpm test --run"
  - id: openapi-updated
    label: "OpenAPI spec updated"
    when: backend
    conditionId: has-openapi
    prompt: "Update openapi.yaml for any API route changes."

Install with npx @holdpoint/cli@alpha init