awesome-claude-code: the README you read is generated from a CSV, and that decides what it can tell you
A hand-picked collection of the finest of resources for the most awesome of agents, Claude Code, the undisputed champion of coding companions, from the unstoppable team at Anthropic PBC. A delectable showcase of top tier skills, ambidextrous agents, scintillating status lines, top notch developer tooling, and also we have plugins
At a glance
- What is it?
- A hand-picked index of Claude Code resources kept as a CSV plus a Python generator rather than hand-edited prose. Good for finding names worth evaluating, useless for judging whether a linked project still works or where it went.
- Who is it for?
- Use it as a source of names to check, not as a dependency list or a verdict. Read the CSV and config.yaml before assuming the README reflects what the project currently recommends, look in README_ALTERNATIVES before concluding a tool vanished, and verify any linked project on its own repository before adopting it, since the list records neither versions nor verification status.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
README.md is a build artifact rendered from a CSV, a config, and a template
The Makefile names THE_RESOURCES_TABLE_NEW.csv as the single source of truth and states that `make generate` renders it, together with config.yaml and templates/README.template.md, into README.md. The recipe is one line:
venv/bin/python generate_readme.pyTwo properties matter before you change anything. Generation is idempotent, so re-running yields a byte-identical README.md, which means any diff you see in that file came from the inputs rather than from generator drift. And it fails closed: if an Active entry carries a Category that config.yaml does not declare, the run stops instead of emitting a half-formed list.
The table of contents is generated too, marked in the file as the part that gets generated, so reordering categories is an edit to config.yaml rather than a manual shuffle. For a reader, the practical consequence is that README.md reveals very little about how the list works. The CSV, config.yaml, and generate_readme.py hold that, and the rendered page hides the joins.
Two runtime dependencies and a venv you build yourself, with nothing to install
requirements.txt carries only PyYAML and requests, and its own comment scopes them as runtime dependencies for README generation, the category tooling, and the link and ticker scripts. The install line in that comment matches the interpreter path the Makefile pins, PYTHON := venv/bin/python. Setup is two steps:
python3 -m venv venv
venv/bin/python -m pip install -r requirements-dev.txtThe Makefile gates that install on a stamp file, venv/.deps-stamp, so pip runs only when the stamp is missing or older than requirements.txt and requirements-dev.txt, with venv attached as an order-only prerequisite so cache writes never retrigger it.
What the project cannot do is install as a library. There is no packaging metadata, no GitHub release, and nothing to import, so a question like how to install it has a short answer: you clone the repository, build a virtualenv, and run make targets. Python is the primary language here, yet the artifact most people consume is a Markdown file, which means the language choice tells you about the toolchain and nothing about the output.
make generate skips the ticker on purpose, so the carousel drifts away from the CSV
The full local regeneration target is `generate: sync-form recently-added readme`, covering the issue-form dropdown, the carousel SVGs, and the README. The ticker is deliberately left out, and the Makefile gives the reason: it fetches remote data and needs GITHUB_TOKEN, so it runs separately as `make ticker`. The phony target list also splits the work into ticker-data and ticker-svg, and assets/ holds the SVG sets the page references, including the light-scheme variant used in the Recently Added block.
The consequence for a reader is concrete. A fresh local regeneration refreshes the prose and the carousel SVGs but not the ticker, so the sample of Claude Code projects shown near the top of the page can describe a moment that has already passed, and nothing in the page marks it as stale. There is no token requirement anywhere in `make generate`, which makes the default path pleasant to run and also means that path never revalidates remote data. If you rely on the ticker to spot active projects, re-run `make ticker` on purpose.
A missing project is a curation decision, not a verdict on the project
The page is explicit that the current iteration was launched with the express intent of highlighting resources that were not on the previous one, and that this is only temporary, with additions arriving over the coming weeks and legacy resources to be migrated into the new format. Entries featured before and absent now are described as preserved but not updated in the README_ALTERNATIVES directory.
So the list cannot tell you that a tool you relied on has gone stale, lost its maintainers, or stopped working with a recent Claude Code release. It tells you the entry has not been migrated yet, which is a statement about the list's schedule, not about the project. For someone assembling a setup from this list, the workable use is to treat every entry as a name to verify on its own repository, and to check README_ALTERNATIVES rather than concluding that a project disappeared. The visible entries also carry a one-line opinion rather than a score or a review date, so nothing here ranks two listed projects for you.
A new category has to exist in config.yaml before the build will pass
Category management has its own targets in the Makefile: add-category, move-category, remove-category, alongside add-resource, move-resource, update-resource, and submit-resource. The fail-closed rule is the constraint that shapes them, because an Active entry whose Category is absent from config.yaml stops generation outright. The submit path also runs sync-form, and the issue-form dropdown is named as one of the artifacts `make generate` produces, so the form's options come from config.yaml rather than being typed by hand.
For a reader, that means adding an entry is not a text edit. It is a row in the CSV, a category that already exists in config.yaml, and a regeneration, and a contributor who invents a new category name gets a failed run rather than a helpful message. What the project cannot offer is a selective view of itself. The table of contents carries 22 top-level categories and six nested subsections, with slots for status lines, alternative clients, remote control and voice input, security, testing, and linting, yet there is no index of entries by type, no filter, and no short form of the list. The machine-readable artifact is the CSV; the reader-facing artifact is prose.
An entry is a link and one sentence of judgment, with no version or health data attached
The shape of the visible entries has no schema beyond a title, an author, and a sentence. Agent Skills is credited to Anthropic as the official repository for the SKILL.md format, a skill template, and example skills, in the same format Claude Code loads natively. A Field Guide to Claude Fable is credited to Thariq Shihipar at Anthropic. explore-claude-code is credited to Luke Renton for an annotated project where CLAUDE.md, settings.json, rules, commands, skills, agents, hooks, plugins, and .mcp.json are each explained as a real concept. claude-howto is credited to luongnv89 for a ten-module path with a self-assessment quiz.
That sentence is the whole editorial content per entry. The list cannot tell you a linked project's license, its install command, its release date, or whether it still runs against the Claude Code build you have, and it does not mark entries as verified. The repository has no releases of its own to track either, so the only currency signal is the commit line, and the last push to main landed on 2026-09-29. Since the list moves often, links in any copy you have read can be weeks out of date.
A pre-commit config and a test target whose recipes the Makefile excerpt does not show
The top level of the repository carries .pre-commit-config.yaml, .github/, CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, tests/, templates/, and scripts/, and the Makefile's phony list includes test, install-hooks, sync-form, and clean next to a help target that greps annotated comments and prints them in colour. That help target is a genuine convenience, since every recipe carries a `## ` comment describing itself, so `make help` lists the targets once you have a checkout.
What you cannot learn from the page is what install-hooks installs or what test runs, because neither recipe appears in the part of the Makefile that accompanies the list. A contributor who clones the repository to add a single entry therefore has to read the Makefile and the contributing files to find out whether a formatter will rewrite their CSV row and whether a test fails on a bad category. That gap matters for a one-entry contribution far more than it does for reading the list, and the help output is the closest thing to documentation the project offers, available only after a clone and a virtualenv.
Editorial conclusion
Use it as a source of names to check, not as a dependency list or a verdict. Read the CSV and config.yaml before assuming the README reflects what the project currently recommends, look in README_ALTERNATIVES before concluding a tool vanished, and verify any linked project on its own repository before adopting it, since the list records neither versions nor verification status.
Frequently asked questions
what is awesome claude code
It is a hand-picked list of resources for Claude Code, an agent from Anthropic PBC, spanning skills, subagents, status lines, plugins, observability, testing, and linting across 22 top-level categories. The current iteration was launched specifically to feature resources that were not on the previous one, and earlier entries sit unupdated in the README_ALTERNATIVES directory until they are migrated.
how to install awesome claude code
There is nothing to install: the repository has no GitHub releases and no packaging metadata, and requirements.txt holds only PyYAML and requests for the generation scripts. To build the toolchain locally you create a virtualenv with `python3 -m venv venv` and then run `venv/bin/python -m pip install -r requirements-dev.txt`.
how to use awesome claude code
Read it as an index: each entry is a link plus one sentence of judgment from the list author. The toolchain regenerates the list itself through `make generate` or `venv/bin/python generate_readme.py`, and does nothing to the projects the list points at.
how to use awesome claude code subagents
The list points at subagent material rather than shipping any. The visible entries describe Agent Skills as Anthropic's repository for the SKILL.md format that Claude Code loads natively, and claude-howto as a ten-module path covering slash commands, memory, skills, subagents, MCP, hooks, plugins, and checkpoints.
Is there an Awesome Claude Code plugin?
Plugins are in scope, since the project description names plugins alongside skills, agents, status lines, and developer tooling, and the explore-claude-code entry walks through plugins as one explained concept. No individual plugin is named in the portion of the list shown here, so check the resource table behind the page, THE_RESOURCES_TABLE_NEW.csv.