# Piebald-AI/claude-code-system-prompts: Claude Code's system prompts, extracted and versioned

> The repository mirrors the system prompts, builtin tool descriptions and sub-agent prompts that ship inside Claude Code, with a changelog across 274 versions. It is a reference and a diffing source, not a runtime component.

**Piebald-AI/claude-code-system-prompts** — All parts of Claude Code's system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.

- Repository: https://github.com/Piebald-AI/claude-code-system-prompts
- Stars: 12,769 · Forks: 2,042
- Language: JavaScript
- License: MIT
- Published: 2026-08-04 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/piebald-ai-claude-code-system-prompts

## What this repository actually contains, and who needs it

Claude Code does not ship one system prompt string. The README states there are large portions added conditionally depending on environment and configuration, descriptions for builtin tools such as Write, Bash and TodoWrite, separate system prompts for builtin agents like Explore and Plan, and utility prompts for compaction, CLAUDE.md generation and session title generation. The repository gathers those strings, described as 500+ in the README, and lists each with a token count. The audience is narrow but real: people who want to know what instructions the tool is operating under before they debug its behaviour, and people who maintain forks, patches or evaluations against a specific Claude Code version. If you only want Claude Code to write code, this repository will not help you. It is reading material, not a component.

## How the prompts get extracted, and why that matters for trust

The README says the prompts are extracted using a script from the latest npm version of Claude Code, and that because they come directly from the compiled source they are guaranteed to be exactly what Claude Code uses. That claim is the whole value proposition, and it also sets the boundary: the repository is a mirror of a build artifact, so its accuracy is tied to the release it was extracted from. The README pins the current coverage to Claude Code v2.1.251 (August 28th, 2026) and states that the repository is updated within minutes of each Claude Code release. The last push to the repository was on 2026-08-28, the same day as the v2.1.251 release listed in the releases. Nothing in the README describes how the extraction script handles minified code transformations, so if a string is assembled at runtime from fragments, the extracted form is the best available record rather than a live trace.

## Reading a prompt file and checking its token budget

There is no install step for the repository itself. It is a set of markdown files under system-prompts/, plus CHANGELOG.md, CLAUDE.md, LICENSE, README.md and a tools/ directory. The practical first use is opening the file that corresponds to the behaviour you are investigating. The README gives the token counts inline, for example the Explore subagent prompt at 862 tks and the enhanced Plan mode prompt at 1066 tks. The README names these files directly, including agent-prompt-explore.md and agent-prompt-plan-mode-enhanced.md, so the filename is the entry point. To follow changes between Claude Code versions, read the changelog rather than the individual files. The README states the changelog covers 274 versions since v2.0.14, so the top of that file is where a version-to-version prompt change shows up first.

## The token counts are approximations, and the README says so

Every prompt is listed with a token count, and it is tempting to treat those numbers as exact. The README pre-empts that: some prompts contain interpolated pieces such as builtin tool name references, lists of available sub agents and other context-specific variables, so the counts in a particular session will differ slightly, likely not beyond plus or minus 20 tokens. That is a small error bar, but it means a budget calculation built on these numbers is an estimate. The size question is one people search for, and this is the honest answer the repository gives: the listed figure is the extracted string, not the string as assembled in your session. If you are comparing prompt sizes across versions to detect bloat, differences under roughly 20 tokens are inside the noise the README describes.

## Where this repository stops: it documents, tweakcc patches

A common misreading is that this is a way to change Claude Code's system prompt. It is not. The README explicitly directs anyone who wants to modify a piece of the system prompt in their own installation to tweakcc, a separate project from the same team. The division is clean: this repository extracts and lists the strings, tweakcc lets you customize individual pieces as markdown files, patches an npm-based or native binary installation, and provides diffing and conflict management when you and Anthropic have both modified the same prompt file. If your goal is behavioural change, this repository is the wrong tool and the README says where the right one is. Read it here, patch it there.

## Maintenance cadence, licence and the cost of keeping up

The repository is not archived, and its last push was on 2026-08-28. Its releases track Claude Code versions closely: v2.1.251, v2.1.250 and v2.1.248 all landed on 2026-08-28, and the README states updates arrive within minutes of each Claude Code release. That cadence is the maintenance cost for anyone who depends on it: if you pin your analysis to a version, you must re-check when Claude Code ships, because the extracted strings move with every release. The licence is MIT, which permits reuse and modification; the prompts themselves are extracted from Anthropic's compiled Claude Code package, so treat the repository's licence as covering the repository's own files and read Anthropic's terms separately for the underlying content. That is a distinction to check with your own counsel, not a conclusion this article can settle.

## Alternatives, and what changes if you pick one

The obvious alternative is reading the prompts out of your own installed Claude Code package, or finding a blog post that quotes them. Both differ in a specific way. Reading your local installation gives you the version you actually run, which the repository cannot guarantee, but it gives you no history and no diff. A blog post gives you prose and no file-level record. This repository's differentiator is the changelog across 274 versions since v2.0.14 plus a stable file per prompt, which is what makes version-to-version comparison possible at all. If you never need that comparison, the repository is heavier than your need. If you do, the alternative is reconstructing the history yourself from npm tarballs, which is exactly the work the extraction script and changelog already did.

## Conclusion

Adopt it if you need to read or diff Claude Code's prompts: the changelog across 274 versions and the per-prompt token counts are the reason to use this repository rather than a blog post. Do not adopt it as a runtime dependency, a prompt-injection layer, or a way to change Claude Code's behaviour; the README points at tweakcc for that, and this repository only documents. Before relying on it, confirm that the extracted files match the Claude Code version you actually run, and read the note that interpolated values make real session counts differ, likely not beyond plus or minus 20 tokens.

## FAQ

### What are system prompts in Claude Code?

They are the instructions Claude Code operates under. The README states that Claude Code does not use a single system prompt string: there are conditionally added portions, descriptions for builtin tools like Write, Bash and TodoWrite, separate prompts for builtin agents such as Explore and Plan, and utility prompts for compaction and CLAUDE.md generation.

### What prompts does Claude Code use?

According to the README, the set includes sub-agent prompts for Explore and Plan, creation assistants such as the CLAUDE.md creation prompt and the status line setup prompt, slash command prompts including the /batch and /code-review families, and utility prompts. The README describes the total as 500+ strings, with per-prompt token counts listed alongside each file.

### What is the best system prompt for Claude Code?

The repository does not rank prompts or recommend one. It extracts the prompts Claude Code already uses and lists them with token counts, so it supports reading and comparing them, not selecting a best one. The README points to tweakcc for anyone who wants to customize a piece of the system prompt in their own installation.

### What are Claude prompts?

In this repository the term covers the strings Claude Code sends as instructions, including builtin tool descriptions and the separate prompts used by sub-agents and utility functions. The README notes that some prompts contain interpolated values such as tool name references and lists of available sub agents, so session counts differ slightly from the listed figures.

## Sources

- [Official README](https://github.com/Piebald-AI/claude-code-system-prompts#readme)
- [Project repository](https://github.com/Piebald-AI/claude-code-system-prompts)
- [Release notes](https://github.com/Piebald-AI/claude-code-system-prompts/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/piebald-ai-claude-code-system-prompts
