# Claude Authenticity

Detect whether an API endpoint is backed by genuine Claude (not a wrapper, proxy, or...

- Repository: https://github.com/agentscope-ai/OpenJudge (1020 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add agentscope-ai/OpenJudge --skill claude-authenticity -g -a claude-code -y`
Codex: `npx skills add agentscope-ai/OpenJudge --skill claude-authenticity -g -a codex -y`
Cursor: `npx skills add agentscope-ai/OpenJudge --skill claude-authenticity -g -a cursor -y`
Gemini CLI: `npx skills add agentscope-ai/OpenJudge --skill claude-authenticity -g -a gemini-cli -y`

## Description

Detect whether an API endpoint is backed by genuine Claude (not a wrapper, proxy, or impersonator) using 9 weighted rule-based checks that mirror the claude-verify project. Also extracts injected system prompts from providers that override Claude's identity. Fully self-contained, copy the code below and run, no extra packages beyond httpx. Use when the user wants to verify a Claude API key or endpoint, check if a third-party Claude service is authentic, audit API providers for Claude authenticity, test multiple models in parallel, or discover what system prompt a provider has injected.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Claude Authenticity Skill

Verify whether an API endpoint serves genuine Claude and optionally extract any
injected system prompt.

**No installation required beyond `httpx`.** Copy the code blocks below directly
into a single `.py` file and run, no openjudge, no cookbooks, no other setup.

```bash
pip install httpx
```

## The 9 checks (mirrors [claude-verify](https://github.com/molloryn/claude-verify))

| # | Check | Weight | Signal |
|---|-------|--------|--------|
| 1 | Signature 长度 | 12 | `signature` field in response (official API exclusive) |
| 2 | 身份回答 | 12 | Reply mentions `claude code` / `cli` / `command` |
| 3 | Thinking 输出 | 14 | Extended-thinking block present |
| 4 | Thinking 身份 | 8 | Thinking text references Claude Code / CLI |
| 5 | 响应结构 | 14 | `id` + `cache_creation` fields present |
| 6 | 系统提示词 | 10 | No prompt-injection signals (reverse check) |
| 7 | 工具支持 | 12 | Reply mentions `bash` / `file` / `read` / `write` |
| 8 | 多轮对话 | 10 | Identity keywords appear ≥ 2 times |
| 9 | Output Config | 10 | `cache_creation` or `service_tier` present |

**Score → verdict:** ≥ 85 → `genuine 正版 ✓` / 60, 84 → `suspected 疑似 ?` / < 60 → `likely_fake 非正版 ✗`

## Gather from user before running

| Info | Required? | Notes |
|------|-----------|-------|
| API endpoint | Yes | Native: `https://xxx/v1/messages`  OpenAI-compat: `https://xxx/v1/chat/completions` |
| API key | Yes | The key to test |
| Model name(s) | Yes | One or more model IDs |
| API type | No | `anthropic` (default, **always prefer**) or `openai` |
| Extract prompt | No | Set `EXTRACT_PROMPT = True` to also attempt system prompt extraction |

**CRITICAL, always use `api_type="anthropic"`.**
OpenAI-compatible format silently drops `signature`, `thinking`, and `cache_creation`,
causing genuine Claude endpoints to score < 40. Only use `openai` if the endpoint
rejects native-format requests entirely.

## Self-contained script

Save as `claude_authenticity.py` and run:

The rest: https://github.com/agentscope-ai/OpenJudge/blob/HEAD/skills/claude-authenticity/SKILL.md
