Match the house style when adding code to an existing codebase.

MITAuto-check passed

Install Chameleon

skills CLI
$ npx skills add ccplugins/awesome-claude-code-plugins --skill chameleon -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ccplugins/awesome-claude-code-plugins chameleon --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ccplugins/awesome-claude-code-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/bullpen/skills/chameleon .claude/skills/chameleon && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
chameleon
GitHub stars
967
Token cost
~1.4k tokens
SKILL.md length
767 words
Files
1
Skills in repo
68
Repo updated
First seen
Licence
MIT

At a glance

Match the house style when adding code to an existing codebase.

  • Works in 4 steps: Find the house wrapper. Does the repo… → Match the error contract. If callers get… → Copy the surface grammar. Naming, file… → …
  • The user says chameleon
  • SKILL.md covers When it fires, The move, Rules and Output, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Chameleon is an agent skill from ccplugins/awesome-claude-code-plugins. Match the house style when adding code to an existing codebase. Before you write, read the neighbors — naming, error handling, imports, the repo's idioms, the test style — and make your code read like the file next to it. Reuse the project's own helper, wrapper, or Result-type instead of importing your favorite. New code should be indistinguishable from what's already there. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "chameleon", "match the style", "match the codebase"…

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Awesome Claude Code plugins — a curated list of slash commands, subagents, MCP servers, and hooks for Claude Code. The licence is MIT.

When your agent uses it

  • The user says chameleon
  • Match the style
  • Match the codebase
  • Follow the conventions

Example prompts

  • “chameleon”
  • “match the style”
  • “match the codebase”
  • “/chameleon”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Find the house wrapper. Does the repo call the network through api(), the
  2. Match the error contract. If callers get a Result, return a Result
  3. Copy the surface grammar. Naming, file layout, import order, how a module
  4. Write the test the way the suite writes tests. Same runner, same fixtures,

What it can do on your machine

Read from SKILL.md and the folder at commit 5bd4f16. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Chameleon loads about 1.4k tokens when it runs. Until then it costs about 189 tokens; SKILL.md has 767 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~189
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ccplugins/awesome-claude-code-plugins at commit 5bd4f16, republished under its MIT licence (© ccplugins). 767 words, ~1,438 tokens.

Download SKILL.mdSave it as .claude/skills/chameleon/SKILL.md (or your agent's skills folder).
name
chameleon
description
Match the house style when adding code to an existing codebase. Before you write, read the neighbors — naming, error handling, imports, the repo's idioms, the test style — and make your code read like the file next to it. Reuse the project's own helper, wrapper, or Result-type instead of importing your favorite. New code should be indistinguishable from what's already there. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "chameleon", "match the style", "match the codebase", "fit in", "blend in", "follow the conventions", or adds code to an existing project. Do NOT use on greenfield/empty repos, or to copy a pattern that's actively broken or insecure — flag those instead. Not for non-coding requests.
argument-hint
[lite|full|ultra]
license
MIT

The Chameleon

You are the engineer whose commits nobody can pick out of a blame. You don't have a signature style — you have the codebase's style, and you wear it the moment you open the file. New hires read your diff and assume the original author wrote it.

The best contribution is invisible. A diff that announces who wrote it has already cost the reviewer a decision they didn't need to make.

When it fires

Empty repo, blank file, your call — set the convention and move on. The skin only matters where there's already a body to match. It fires the moment you add code to a codebase that already has established idioms:

  • a naming convention (camelCase vs snake_case, getX vs fetchX)
  • an error-handling contract (Result<T>, thrown errors, error tuples)
  • a house wrapper for the thing you're about to do raw (an api() client)
  • import ordering, path aliases, barrel files
  • a test shape (arrange/act/assert, table-driven, one fixture style)

No established pattern in the neighbors → pick a sane default, note it, move on. Don't audit a whole repo to place a one-line fix. YAGNI applies to mimicry too.

The move

Before you write a line, read three neighbors — the file you're editing and the two nearest siblings. Then match, don't invent:

  1. Find the house wrapper. Does the repo call the network through api(), the DB through a repository, dates through a clock util? Use it. Your raw axios is a foreign body.
  2. Match the error contract. If callers get a Result<T>, return a Result<T> — not a thrown exception they now have to catch in a style nothing else uses.
  3. Copy the surface grammar. Naming, file layout, import order, how a module exports. These are free to match and loud when you don't.
  4. Write the test the way the suite writes tests. Same runner, same fixtures, same assertion style. A lone expect in a should-based suite is a smell.

Match the actual neighbors, not the framework's docs or your last project.

Rules

  • Match the house style even when yours is objectively better — consistency beats a local win; propose the improvement separately, don't smuggle it in a feature.
  • Reuse the project's helper/wrapper/type over introducing a new one that does the same job. Two ways to do one thing is the tax you're avoiding.
  • A foreign idiom is a maintenance cost and a review flag — every reviewer stops to ask "why is this one different?" and there's no good answer.
  • Broken or insecure pattern → do NOT silently copy it. Flag it, match what's safe, and say why you diverged. Consistency never overrides safety.

Output

Code that fits, first. Then a short Matched: report — a couple of lines: whose style you followed, which house helper you reused, anything you deliberately did NOT copy and why. If nothing notable, one line: "matched surrounding style."

Pattern: [code] → Matched: [followed X's Result<T> + api() wrapper] · [diverged on Y because Z]

Show full SKILL.md (282 more words)Show less

Intensity

LevelWhat change
liteWrite it your way, but name the house pattern you'd match — one line. User decides.
fullRead the neighbors, match naming/errors/wrappers/tests, reuse existing utilities. Default.
ultraMatch to the point of invisibility; if your instinct disagrees with the house style, suppress it and note the divergence you'd propose separately — never in this diff.

Example — "Add a function to fetch a user by id," in a repo where every call goes through api() returning Result<T>:

  • lite: "Added with axios + try/catch. Note: the rest of this module fetches through the api() wrapper and returns Result<T> — say the word and I'll match it."
  • full: "Added fetchUser(id) routed through the existing api() client, returning Result<User> like its siblings, with the same import order and a table-driven test matching user.test.ts. Matched the house style; no new deps."
  • ultra: full, plus — dropped my axios/try/catch instinct entirely; the code is indistinguishable from fetchOrg next to it. One divergence I'd raise separately: the wrapper swallows 4xx bodies — worth a follow-up, not this PR.

When NOT to

Skip it on greenfield code, throwaway scripts, or when the surrounding pattern is broken/insecure — there you flag and diverge, never mimic. Never match a style that weakens validation, error handling, security, or accessibility to "fit in." The human's explicit call on style wins; push once, then wear whatever they chose.

Boundaries

The Chameleon governs how your code reads against its neighbors, not what it does — pair it with Ponytail for lazy code and the Historian before you rip out a pattern you don't understand. "stop chameleon" / "normal mode": revert. Level persists until changed or session end.

You did your job right when no one can tell you were here.

© ccplugins, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/bullpen/skills/chameleon of ccplugins/awesome-claude-code-plugins.

Open the folder on GitHubat commit 5bd4f16

Compare with similar skills

Chameleon next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Chameleon compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Chameleon this skillccplugins/awesome-claude-code-plugins967—~1.4kAutomated safety check: PassMIT
Find Matching Tenderssickn33/agentic-awesome-skills47k1 repos~1kAutomated safety check: PassApache-2.0
Og URL Matchthedaviddias/Front-End-Checklist74k—~543Automated safety check: PassMIT
Matched Filteringbenchflow-ai/skillsbench1.8k—~1.6kAutomated safety check: PassApache-2.0
Fuzzy Matchbenchflow-ai/skillsbench1.8k—~794Automated safety check: PassMIT
The Open Housemohitagw15856/pm-claude-skills1.4k—~1.6kAutomated safety check: PassMIT

Similar skills

  • Find Matching Tenders

    sickn33/agentic-awesome-skills

    Find open AU/NZ government tenders matching what a company does, ranked by fit with why and gap analysis.

    47k GitHub starsUsed in 1 repo~1k tokens
    Sales & SupportAuto-check passed
  • Og URL Match

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing Open Graph tags or investigating why social share counts appear low.

    74k GitHub stars~543 tokensUpdated yesterday
    Auto-check passed
  • Matched Filtering

    benchflow-ai/skillsbench

    Matched filtering techniques for gravitational wave detection.

    1.8k GitHub stars~1.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Fuzzy Match

    benchflow-ai/skillsbench

    A toolkit for fuzzy string matching and data reconciliation.

    1.8k GitHub stars~794 tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • The Open House

    mohitagw15856/pm-claude-skills

    Simulate the open house and the listing agent's read of you — the questions that profile your budget and urgency, the staging that hides what inspection finds, and the offer-pressure choreography…

    1.4k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Message House Builder

    aaron-he-zhu/aaron-marketing-skills

    A skill your agent uses when the user asks to "build a message house", "write a PR-FAQ for our launch", or "define the launch narrative and value pillars"; derives from the positioning canvas a…

    2.9k GitHub stars~2.4k tokensUpdated today
    Marketing & SEOAuto-check passed

More from ccplugins/awesome-claude-code-plugins

All 68 skills in this repo
  • AI Meeting

    ccplugins/awesome-claude-code-plugins

    Run structured AI meetings for plans, product ideas, technical designs, business decisions, feature proposals, and strategy choices.

    967 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check: notes
  • Fastapi App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new FastAPI backend with async SQLAlchemy 2.0, asyncpg, Alembic, Pydantic v2, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Flutter App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Nextjs App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Next.js (App Router, TypeScript) web app with current packages and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Dev Report

    ccplugins/awesome-claude-code-plugins

    Write up a coding session for a non-technical stakeholder — the context, what was built, and the engineering reasoning behind it — the way a senior engineer briefs a product manager who does not…

    967 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Difesa Attacchi

    ccplugins/awesome-claude-code-plugins

    Aggiunge a un sito/app un agente di difesa che rileva e blocca richieste malevole (SQL injection, XSS, path traversal, brute force, bot) con rate limiting, blocklist IP e modalità lockdown che…

    967 GitHub stars~781 tokensUpdated 1 mo ago
    Auto-check passed

Questions about Chameleon

What does Chameleon do?

Match the house style when adding code to an existing codebase. Chameleon is an agent skill from ccplugins/awesome-claude-code-plugins. Match the house style when adding code to an existing codebase.

When should I use Chameleon?

Chameleon fits situations like: the user says chameleon; match the style; match the codebase; follow the conventions.

How do I install Chameleon in Claude Code?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill chameleon -a claude-code`. Or copy the skill folder (plugins/bullpen/skills/chameleon in ccplugins/awesome-claude-code-plugins) into .claude/skills/chameleon in your project. Claude Code loads it when a task matches its description.

How do I install Chameleon in Codex?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill chameleon -a codex`. Or copy the skill folder (plugins/bullpen/skills/chameleon in ccplugins/awesome-claude-code-plugins) into .agents/skills/chameleon in your project. Codex loads it when a task matches its description.

Can I use Chameleon in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ccplugins/awesome-claude-code-plugins --skill chameleon -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chameleon, .gemini/skills/chameleon, .github/skills/chameleon and .opencode/skills/chameleon in your project.

What does Chameleon need to run?

SKILL.md names no scripts, command-line tools or credentials: Chameleon is instructions for the agent only.

Does Chameleon access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Chameleon safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Chameleon use?

Chameleon is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Chameleon use?

About 1.4k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Chameleon?

Skills that share tags, products or a category with Chameleon: Find Matching Tenders (sickn33/agentic-awesome-skills, 47k stars), Og URL Match (thedaviddias/Front-End-Checklist, 74k stars), Matched Filtering (benchflow-ai/skillsbench, 1.8k stars) and Fuzzy Match (benchflow-ai/skillsbench, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Chameleon?

ccplugins (a GitHub organization) maintains it in ccplugins/awesome-claude-code-plugins, which has 967 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on August 12, 2026.

Source: ccplugins/awesome-claude-code-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.