CLAUDE.md · Cursor Rules · two lines

Agent rules for hallucination-free imports.

Models invent package names. Two lines of config make your agent check every name against a deterministic oracle before it installs or imports anything. The check is free and needs no account.

Free quota
25 checks/day
Keyed by
client IP
Reset
00:00 UTC
Over quota
HTTP 429
Paid route
$0.002–$0.02/call
Copy-paste

The snippet.

Paste into CLAUDE.md, Cursor Rules, or whatever file your agent reads before acting. Pick the variant that matches your setup.

# If your agent has the attester MCP tools (see uvx attester-mcp below):
- Before installing or importing any package, call attester_package_exists (and attester_symbol_exists for specific functions) to confirm the name exists. Never import a name the oracle says does not exist.
# Works anywhere, plain HTTP, no key:
- Before installing or importing any package, POST https://attester.dev/demo/v1/package/exists with {"ecosystem": "pypi" | "npm", "name": "..."} and proceed only when exists is true. For a specific function or class, use https://attester.dev/demo/v1/symbol/exists with {"ecosystem", "package", "symbol"}. Never import a name the oracle says does not exist.
Free, no key

Check a name right now.

The demo routes run the same pipeline as the paid routes: real registry artifacts, signed answers. Negative answers are the point. "Does not exist" comes with the artifact we checked, signed.

# does the package exist?
curl -X POST https://attester.dev/demo/v1/package/exists \
  -H 'Content-Type: application/json' \
  -d '{"ecosystem": "pypi", "name": "requests"}'

# does the symbol exist in that package?
curl -X POST https://attester.dev/demo/v1/symbol/exists \
  -H 'Content-Type: application/json' \
  -d '{"ecosystem": "pypi", "package": "requests", "symbol": "get"}'

Answers carry exists, closest_match on symbol misses, typosquat_adjacent on package misses, and proof (artifact sha256 plus source URL). Quota is 25 calls per day per client IP, shared across the four demo endpoints. When it runs out you get HTTP 429 and the paid route in the body. Paid: $0.002 per package check, $0.005 per symbol check, via x402 or prepaid credits. Details in /llms.txt and /policy.

Same check, other wiring

Prefer a tool over a rule?

01
free

MCP server: attester-mcp

Four oracle tools any MCP client can call (Claude Code, Cursor, Windsurf). Zero config: uvx attester-mcp and the free tools work immediately, no key, no wallet. Source and docs: github.com/maminihds/attester-mcp.

uvx attester-mcp
02
MIT

attester-import-check

The check as a guard, not a rule: a pre-commit hook, a Claude Code hook that blocks the write, and a GitHub Action that annotates PRs. Blocks only on a confident "does not exist"; quota and offline fail open. github.com/maminihds/attester-import-check.

pre-commit · Claude hook · Action
Keep reading