FuckClaude is a bilingual web tool that checks browser-visible signals and estimates whether Claude Code might identify the environment as belonging to a China-based user. It is for people who want to inspect signals such as the system timezone and proxy hostname without sending data over the network, since the scan runs locally. The catalogue rule and skill provide agent-oriented guidance related to the tool.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add LinXiaoTao/FuckClaude --skill detection-signalsgit clone --depth 1 https://github.com/LinXiaoTao/FuckClaudeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/linxiaotao/fuckclaude/detection-signals)<a href="https://agentmods.dev/skills/linxiaotao/fuckclaude/detection-signals"><img src="https://agentmods.dev/badge/skills/linxiaotao/fuckclaude/detection-signals/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/linxiaotao/fuckclaude/detection-signals"><img src="https://agentmods.dev/badge/skills/linxiaotao/fuckclaude/detection-signals.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00069 | $0.01312 |
| Opus 5.5 | $0.00028 | $0.00525 |
| Sonnet 5.5 | $0.00014 | $0.00262 |
| Haiku 4.5 | $0.00007 | $0.00131 |
Grade A, and why
detection-signals scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s "http://localhost:4321/api/check?format=json" \ How it starts
The opening of the file, as written. The whole thing — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
检测信号(Detection Signals)开发
本项目的核心是一组「中国用户」指纹信号:浏览器端跑扫描动画逐项检测,服务端 /api/check 复用同一批纯评分函数做估算。所有检测只读浏览器 API,零上传。
信号解剖(src/config/signals.ts)
export type SignalId = 'timezone' | /* … */ | 'emoji'; // 先扩展联合类型
interface SignalDef {
id: SignalId;
weight: number; // 所有信号权重之和必须恰好 = 100
claudeUsed?: boolean; // 仅当 Claude Code 真实机制读取该信号时为 true
icon: string; // 内联 SVG(24×24, stroke=currentColor, 复用 ICON 表)
detect: () => DetectOutcome | Promise<DetectOutcome>; // 支持 async(如 UA-CH 高熵值)
}
interface DetectOutcome {
raw: string; // 展示给用户的检测值,如 'Asia/Shanghai'、'none detected'
score: number; // 0..1 的「中国相似度」;≥0.25 记为命中,≥0.6 为 high
}
detect()内部禁止网络请求;异常无需自行兜底,调用方detect.ts已 try/catch。- 探测字体用现成的
isFontAvailable(font, ctx)(canvas 宽度探测)。 - 读 UA-CH 用
uaData()helper;高熵值(model等)需await getHighEntropyValues,拿不到时降级为纯 UA 正则。
新增一个信号的完整清单
- signals.ts
SignalId联合类型加新 id。- 写
detectXxx();若服务端(仅凭请求头)也能测,把纯打分逻辑抽成export function scoreXxx(probe: string)供 API 复用(参照scoreTimezone/scoreLanguages/scoreCnBrowser/scoreCnDevice)。 - 在
SIGNALS数组按权重降序插入,并重新分配权重使总和 = 100。 - 图标加进
ICON表(线性 stroke 风格,与现有一致)。
- i18n/ui.ts(en + zh 两份都要)
- 新增
signal.<id>.name与signal.<id>.desc。 - 以下文案硬编码了信号数量,改动数量时同步更新:
signals.sub(N 项指纹)、how.p2(N-1 项叠加指纹列表)、faq.a2(其余 N-1 项)。
- 新增
- pages/api/check.ts(仅当服务端可测)
analyze()的measuredmap 增加条目,复用第 1 步导出的纯评分函数。- 更新文件头注释与
note里的 browser-only 列表及可测权重数(当前 62/100)。
- layouts/BaseLayout.astro:JSON-LD
featureList追加t('signal.<id>.name')。 - README.md:英文与中文两张「信号与权重」表、API 段落的可测权重描述。
打分约定
- 决定性证据(如系统时区命中中国时区、检出国产厂商字体)→ score 接近 1。
- 全球化品牌 / 弱相关线索(如小米设备、emoji 风格)→ 0.4–0.7,并压低 weight。
- 检不到 / 不适用 →
{ raw: 'none detected', score: 0 },不要抛错。 - 阈值语义:
signalVerdict— ≥0.6 high、≥0.25 medium(命中)、其余 low。
验证(必做)
pnpm build # tsc + astro 构建必须通过
pnpm dev # http://localhost:4321
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 83 lines · 69 tokens per session scan A b528713481eb
detection-signals is a skill published in the GitHub repository LinXiaoTao/FuckClaude (1,105 stars, last pushed yesterday), licensed MIT. It adds 69 tokens to every session and 1,312 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…