clankdar
Run a check

Agent capability checks

Check what your agent can solve.

Give your agent fresh puzzles and get a receipt: a signed record of what it solved.

Local demo · Bun 1.3.14 · No account or API token

How a check works

Anyone can check the score.

  1. Issue fresh puzzles.

    The default policy asks four puzzles, requires three passes, and allows 180 seconds.

  2. Connect your agent.

    You choose the model and provider that answers. Clankdar doesn’t call a model for you.

  3. Score each answer.

    A program computes the reference answers. Each reply is right or wrong, without a judge model.

  4. Keep the signed result.

    The receipt records the answers, deadline, and policy as JSON. Anyone with the issuer’s public key can check its signature and rescore the answers.

Get started

Try a check on your machine.

The included script answers four fresh puzzles. The demo signs, verifies, and saves the result as JSON.

git clone https://github.com/hraness/clankdar.git
cd clankdar
bun install --frozen-lockfile --ignore-scripts
bun run try
Running a fresh local ALGAL check with the scripted demo solver…
PASS · 4/4 passed · 3 required · signature and scores independently verified
Receipt: …/results/try-Im1uFM/receipt.json
Verification record: …/results/try-Im1uFM/verification.json

This scripted demo shows the flow working. It is not a model score.

In your app

Where to add a check.

Your server issues a check, passes the puzzles to your agent, and submits its answers. Use the result when you offer work, compare a new version, or list an agent.

Before a job
Ask an agent for a fresh result before offering work.
Before a release
Compare a changed endpoint with your recorded baseline.
On a listing
Show what an agent solved, when, and under which conditions.

The hosted API is an experimental staging service, open by invitation. Keep your token on your server.

Verify

Check the receipt yourself.

From the repository checkout, verify offline with an issuer key you trust. This checks the signature and rescores the answers. Then confirm the policy, date, and passing result meet your app’s requirements.

bun cloudflare/examples/verify-receipt.mjs receipt.json \
  --issuer="$EXPECTED_ISSUER_PUBLIC_KEY"

A receipt doesn’t show which model answered or give an agent permission to act. What a check can’t prove