zhin CLAUDE.md

zhin CLAUDE.md is an instructions file for coding agents from zhinjs/zhin. It costs 3,255 tokens per session, scanned A, original, MIT.

A repository guide for Zhin.js, a TypeScript chatbot framework, covering its project structure, commands, development setup, and package-specific work.

In plain words
What is it for?
Use it to develop or maintain Zhin.js, including building packages, running tests, preparing the command-line tools, and starting development bots.
Why use it?
It gives coding agents the project’s required build, test, lint, type-checking, and bootstrap steps so changes can be checked consistently.

Instructions file

Install

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.

agentmods
npx agentmods add instructions/zhinjs/zhin/claude-md
Clone the repo
git clone --depth 1 https://github.com/zhinjs/zhin

Wrote 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.

agentmods badge for zhin CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/zhinjs/zhin/claude-md.svg)](https://agentmods.dev/instructions/zhinjs/zhin/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/zhinjs/zhin/claude-md"><img src="https://agentmods.dev/badge/instructions/zhinjs/zhin/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 3,255 This file is loaded in full into every session.
When invoked 3,255 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.03255 $0.03255
Opus 5 $0.01628 $0.01628
Sonnet 5 $0.00651 $0.00651
Haiku 4.5 $0.00326 $0.00326

Measured 5d ago against content hash 6807edfdbfe8, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

zhin CLAUDE.md scanned grade A with 0 findings 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 5d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 234 lines

How it starts

The opening of the file, as written. The whole thing — 234 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

See also: AGENTS.md for the universal agent entry point; .github/copilot-instructions.md for detailed API patterns and plugin examples.

Project Overview

Zhin.js is a TypeScript chatbot framework — AI-driven, plugin-based, hot-reload, multi-platform. ESM-only ("type": "module"), targets Node.js ^20.19.0 || >=22.12.0.

Commands

pnpm build              # Full build (Turborepo: basic/ → packages/ → plugins/)
pnpm test               # Run all Vitest tests
pnpm test:watch         # Watch mode
pnpm test:coverage      # Coverage report
pnpm lint               # ESLint (.ts,.tsx)
pnpm type-check         # tsc --noEmit -p tsconfig.typecheck.json
pnpm dev                # Start minimal-bot (examples/minimal-bot); use pnpm dev:test for test-bot
pnpm clean              # Clean all lib/ dist/ directories

# Bootstrap (first-time or after clean)
pnpm prepare:logger     # Build @zhin.js/logger + install CLI deps
pnpm prepare:cli        # Build scaffold-wizard + CLI + reinstall

# Single package
pnpm --filter @zhin.js/core build
pnpm --filter @zhin.js/core test

# Run a single test file
pnpm vitest run packages/im/core/tests/plugin.test.ts

Custom lint checks:

  • pnpm check:harness-paths — 检测插件是否绕过 Adapter.sendMessage 直调 bot.$sendMessage
  • pnpm check:no-koa — 检测插件是否直接 import koa(应使用 RouterContext)
  • pnpm check:prod — 检查生产环境配置(无 console.log/debugger/TODO/FIXME)
  • pnpm check:plugin — 检查插件是否符合标准规范(入口文件、测试、README)
  • pnpm check:use-plugin-top-level — 检测是否仍调用已移除的 usePlugin()(现为 throwing stub)
  • pnpm check:get-plugin-runtime — 检测是否在运行时回调内调用已移除的 getPlugin()(现为 throwing stub)
  • pnpm check:plugin-agent-publish — 带 agent/ 的插件发布清单(files、prepublishOnly)
  • pnpm check:all — 运行所有 harness 检查(含 type-check / lint / test)

Architecture

Monorepo managed with pnpm 9.0.2 workspaces + Turborepo (turbo.json). Versioning via Changesets.

Read the full file on GitHub · 234 lines

Changes

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.

  1. 5d ago First seen · 234 lines · 3,255 tokens per session scan A 6807edfdbfe8

Subscribe to this mod's changes

zhin CLAUDE.md is an instructions file published in the GitHub repository zhinjs/zhin (135 stars, last pushed yesterday), licensed MIT. It adds 3,255 tokens to every session, about $0.0163 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.