playground-cli: Instructions file for Claude Code

CLAUDE.md

playground-cli CLAUDE.md is an instructions file for Claude Code from paritytech/playground-cli. It costs 23,782 tokens per session, scanned A, original, Apache-2.0.

A skill that creates an interactive HTML report from Claude Code session records. The report covers usage such as tokens, cached prompts, subagents, skills, projects, and costly prompts.

In plain words
What is it for?
Use it to review recent or all-time Claude Code usage, compare projects or skills, inspect unusual usage, and explore frequently used prompts.
Why use it?
It turns raw session transcripts into a structured view of how coding-agent time and tokens were used. The supplied instructions also define the checks required before committing changes to its project.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md.

This is paritytech/playground-cli's own configuration. It tells Claude Code how to work on playground-cli itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything playground-cli configures →

Reuse

Borrowing it

Nothing to install: this file belongs to paritytech/playground-cli. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/paritytech/playground-cli/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/paritytech/playground-cli

Made for: Claude Code.

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 playground-cli CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/paritytech/playground-cli/claude-md/github.svg)](https://agentmods.dev/instructions/paritytech/playground-cli/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/paritytech/playground-cli/claude-md"><img src="https://agentmods.dev/badge/instructions/paritytech/playground-cli/claude-md/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.

agentmods 80×15 button for playground-cli CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/paritytech/playground-cli/claude-md"><img src="https://agentmods.dev/badge/instructions/paritytech/playground-cli/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 23,782 This file is loaded in full into every session.
When invoked 23,782 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.23782 $0.23782
Opus 5.5 $0.09513 $0.09513
Sonnet 5.5 $0.04756 $0.04756
Haiku 4.5 $0.02378 $0.02378

Measured 3d ago against content hash a1e4d2559a0b, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

playground-cli 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 3d 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 · 148 lines

How it starts

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

CLAUDE.md

Refer to the Contributing and Architecture Highlights sections of README.md for development workflows, the release process, and repo conventions.

Verification before committing

Before claiming a task complete, opening a PR, or merging, run all four. The first three are enforced by CI; pnpm test also catches regressions:

pnpm format:check
pnpm lint:license
pnpm typecheck
pnpm test

🔴 pnpm <script> can exit BEFORE running the tool, and it looks like a pass. pnpm 11 runs a deps-status check first; when that fails — most often ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION after bumping onto a freshly published release train — it prints a stack and exits non-zero without invoking tsc/vitest at all. Grepping the output for error TS then finds nothing and reads as a clean typecheck. This cost real bugs in Sept 2026: four type errors (a missed await in identityGate.ts that broke every gated command, the same in DripScreen.tsx, and two malformed allowance literals) all "passed" a typecheck that never ran, and shipped to a live phone test. Check the exit code, or run the tool directly — ./node_modules/.bin/tsc --noEmit, npx vitest run. CI is unaffected (a non-zero exit fails the job either way); this is a local-verification trap only.

pnpm build compiles with bun, which STRIPS types without checking them — it is NOT a type signal. The tsc baseline was burned to zero in June 2026 and pnpm typecheck (tsc --noEmit) now runs as a CI job, so any new type error fails the build — keep it at zero.

.cdm/cdm.d.ts and .cdm/contracts.d.ts are COMMITTED, and must stay so. They are generated by cdm install and are the module augmentation that gives contract handles their real per-method signatures. Without them the registry handle is a bare Contract<ContractDef>, and every .query()/.tx() call site goes silently unchecked — that gap let the 7-arg publish regression and a getMetadataUri shape bug through, and it also produces the inverse trap (code that compiles locally and fails only in CI, because a structural interface can't match the un-augmented type). .cdm/ was gitignored wholesale until Sept 2026; CI never ran cdm install (the cdm CLI is a global tool needing chain access, not a repo dep), so the Typecheck job was checking everything EXCEPT the contract calls. The rest of .cdm/ stays ignored on purpose: contracts/**/info.json snapshots per-version contract addresses that we never read (addresses resolve live from the CDM meta-registry), so committing them would add a second, stale source of truth. After any cdm i, commit the regenerated .d.ts files — a stale one type-checks against the previous ABI, which is exactly the failure this prevents. (Oct 2026: with cdm-builder 6.0.0 on the same papi-3 product-sdk line as us, the contract.ts seams below no longer exist in the code — only asCloudStorageApi remains. The history is kept for the next skew.) The cdm-builder version skew is bridged through THREE cast seams: asCloudStorageApi in src/utils/allowances/bulletin.ts (the TypedApi<Paseo_bulletin> vs BulletinTypedApi codegen skew — two codegens of the same chain), plus asCdmAssetHubApi/asCdmAssetHubDescriptor and asCdmRegistryContract in src/commands/contract.ts. The asset-hub seams bridge the paseo-asset-hub DotnsGateway/descriptor shape drift between cdm-builder's pinned @parity/product-sdk-descriptors and our root's (the contract pipeline never touches DotnsGateway, so the cast is runtime-safe). asCdmRegistryContract was added when our root @parity/product-sdk-contracts reached 0.9.x: Contract.tx() now resolves a Result<TxResult, …>, nominally unassignable to cdm-builder's older RegistryContract param — but the install-time registry is query-only (no signer wired in), so .tx() is never invoked through it and the cast is runtime-safe. At [email protected] the pinned product-sdk moved up to [email protected] / [email protected] while our root is contracts@^0.9.2 / descriptors@^0.8.0 — so the .tx() Result shape realigns (making asCdmRegistryContract likely redundant) while a descriptors minor gap (0.7 vs 0.8) remains. Before deleting any seam, remove it and run pnpm typecheck. If lint:license flags a file you authored, run ./scripts/check-license-headers.sh --fix to prepend the standard Parity Apache-2.0 header (SPDX-License-Identifier: Apache-2.0 + Copyright (C) Parity Technologies (UK) Ltd., both lines required). The check script keeps shebangs on line 1 and places the header below them.

Read the full file on GitHub · 148 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. 3d ago Changed · +3 lines · +1,892 tokens per session a1e4d2559a0b
  2. 1mo ago Changed · +11 lines · +3,978 tokens per session 9fe29e5a0da7
  3. 2mo ago First seen · 134 lines · 17,912 tokens per session scan A 82e9dd68add4

Subscribe to this mod's changes

playground-cli CLAUDE.md is an instructions file published in the GitHub repository paritytech/playground-cli (5 stars, last pushed yesterday), licensed Apache-2.0. It adds 23,782 tokens to every session, about $0.0951 per session on Opus 5.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-31.

Related

playground-cli CLAUDE.md compared with instructions from other repositories

playground-cli CLAUDE.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
playground-cli CLAUDE.mdparitytech/playground-cliInstructions file5yesterdayApache-2.0A23,782Claude Code
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143kyesterdayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode