claude-code-starter
π‘ Summary
A starter template for Claude Code that streamlines project setup and integrates various development tools.
π― Target Audience
π€ AI Roast: βPowerful, but the setup might scare off the impatient.β
Risk: Critical. Review: shell/CLI command execution; outbound network access (SSRF, data egress); API keys/tokens handling and storage; filesystem read/write scope and path traversal; dependency pinning and supply-chain risk. Run with least privilege and audit before enabling in production.
Claude Code Starter
A production-ready starter template for Claude Code. Get a fully configured setup in minutes instead of hours.
Prerequisites
Required:
- Claude Code CLI installed and authenticated
- Bash 3.2+ (macOS default works)
- Git
- jq - JSON parsing in hooks (
brew install jq/apt install jq)
Optional (for formatting hooks):
- Your language's formatter: prettier, black/ruff, gofmt, rustfmt, rubocop, mix format
Check your setup:
claude --version # Should show Claude Code version bash --version # Should be 3.2+ (macOS default works) jq --version # Required for hooks
Compatibility
| Component | Requirement | Notes | |-----------|-------------|-------| | OS | Linux, macOS | Tested on Ubuntu 22.04+, macOS 13+ | | Bash | 3.2+ | macOS default (3.2) works fine | | jq | Any version | Required for hooks | | Claude Code | Any version | Tested with 1.x |
Stack-specific formatters (optional):
| Stack | Formatter | Install |
|-------|-----------|---------|
| TypeScript | prettier | npm i -g prettier |
| Python | black, ruff | pip install black ruff |
| Go | gofmt | Included with Go |
| Rust | rustfmt | rustup component add rustfmt |
| Ruby | rubocop | gem install rubocop |
| Elixir | mix format | Included with Elixir |
Why This Exists
Most developers install Claude Code and use maybe 10% of its capabilities. This repo gives you:
- Stack-specific presets - TypeScript, Python, Go, Rust, Ruby, Elixir configurations
- Security by default - Blocked sensitive files, dangerous command prevention
- Custom skills - Reusable commands like review, test, explain
- Specialized agents - Subagents for research, code review, test writing
- Pre-commit review - Forces you to understand what you're committing
- Auto-formatting - Runs your formatter after every edit
- Version detection - Reads from
.tool-versionsautomatically
Installation
Homebrew (recommended)
brew tap zbruhnke/claude-code-starter brew install claude-code-starter
Update:
brew upgrade claude-code-starter
Shell script
curl -fsSL https://raw.githubusercontent.com/zbruhnke/claude-code-starter/main/install.sh | bash
This installs ccs (short alias) and claude-code-starter (full name) to your PATH.
The installer automatically verifies SHA256 checksums when available (v0.7.0+).
Update:
ccs update
Pin to a specific version:
curl -fsSL https://raw.githubusercontent.com/zbruhnke/claude-code-starter/main/install.sh | bash -s -- --version <version>
5 Minute Tour
See it work end-to-end:
# 1. Install the CLI (if you haven't already) curl -fsSL https://raw.githubusercontent.com/zbruhnke/claude-code-starter/main/install.sh | bash source ~/.zshrc # or restart your terminal # 2. Create your project and configure it mkdir my-app && cd my-app git init ccs init # Pick TypeScript, accept defaults # 3. Create something to work with mkdir -p src && echo "export const hello = () => 'world';" > src/utils.ts git add -A # 4. Start Claude Code claude
Now in Claude Code:
> Review my staged changes
# β Claude runs code-review skill, analyzes src/utils.ts
> Add a helper function to validate emails in src/utils.ts
# β After edit, auto-format hook runs prettier automatically
> Stage and commit these changes
# β Pre-commit hook shows diff, Claude explains before committing
That's the core loop: edit β auto-format β review β commit with understanding.
Quick Start
New Project
mkdir my-project && cd my-project git init ccs init
Existing Project
cd your-existing-project ccs init
Add Components
ccs adopt # Interactive mode - choose what to install ccs adopt all # Install core: skills, agents, hooks, rules, security ccs adopt skills # Just skills ccs adopt agents # Just agents ccs adopt precommit # Pre-commit review hook ccs adopt security # Security config only ccs adopt stack # Stack-specific preset
Note:
adopt allinstalls core components but NOT stack presets or precommit hook (since those are project-specific choices). Use interactive mode or add them explicitly.
CLI Reference
ccs help # Show all commands ccs init # Interactive setup ccs adopt [component] # Add components ccs update # Update to latest version ccs version # Show version
Note:
claude-code-starteralso works as the full command name.
The setup script will:
- Ask which stack you're using (TypeScript, Python, Go, Rust, Ruby, Elixir)
- Auto-detect versions from
.tool-versionsif present - Ask for your project name and description
- Ask for your dev/test/build commands
- Select components to install (rules, skills, agents, hooks)
- Generate all configuration files
Alternative Installation Methods
Clone and run directly
git clone https://github.com/zbruhnke/claude-code-starter.git ~/claude-code-starter cd your-project ~/claude-code-starter/setup.sh
Download a specific release
# Download and verify (recommended) VERSION="v0.8.3" # Check releases for latest TARBALL="claude-code-starter-${VERSION#v}.tar.gz" curl -fsSL "https://github.com/zbruhnke/claude-code-starter/archive/refs/tags/${VERSION}.tar.gz" -o "$TARBALL" curl -fsSL "https://github.com/zbruhnke/claude-code-starter/releases/download/${VERSION}/checksums.txt" -o checksums.txt # Verify checksum before extracting grep "$TARBALL" checksums.txt | sha256sum -c - # Extract and run tar -xzf "$TARBALL" cd your-project ~/claude-code-starter-${VERSION#v}/setup.sh
Copy files manually
# Core files cp CLAUDE.template.md your-project/CLAUDE.md cp .claudeignore your-project/ cp -r .claude your-project/ # Stack-specific preset (requires jq for settings merge) cp stacks/typescript/CLAUDE.md your-project/CLAUDE.md jq -s '.[0] as $core | .[1] as $stack | {permissions: {allow: ($core.permissions.allow + $stack.permissions.allow), deny: ($core.permissions.deny + $stack.permissions.deny)}, hooks: $core.hooks}' \ .claude/core-settings.json stacks/typescript/stack-settings.json > your-project/.claude/settings.json
Note: Stack templates contain
{{PLACEHOLDER}}variables. Manual copies require replacing these yourself.
Documentation
| Topic | Description | |-------|-------------| | Skills | Creating and using custom skills | | Agents | Specialized subagents for focused tasks | | Hooks | Automation via PreToolUse/PostToolUse | | Permissions | Allow/deny rules and patterns | | PR Reviews | Automated CI/CD code reviews |
Stability & Versioning
Current status: Pre-release. The file structure and core concepts are stable, but details may change.
What's stable:
- File structure (
.claude/,CLAUDE.md,.claudeignore) - Skill and agent YAML frontmatter format
- Hook input/output contract (JSON on stdin, exit codes)
- Permission pattern syntax
What may change:
- Setup script prompts and flow
- Default permissions in presets
- Included skills/agents/rules content
For reproducible installs, pin to a specific version:
curl -fsSL https://raw.githubusercontent.com/zbruhnke/claude-code-starter/main/install.sh | bash -s -- --version <version>
Upgrade to latest:
ccs update
This downloads the latest release while preserving your project's CLAUDE.md and .claude/settings.local.json.
See Releases for all versions.
Detailed Usage Guide
Understanding the File Structure
your-project/
βββ CLAUDE.md # Project context (Claude reads this first)
βββ CLAUDE.local.md # Personal context (gitignored)
βββ .claudeignore # Files to exclude from Claude's context
βββ .claude/
β βββ settings.json # Permissions, hooks, environment
β βββ settings.local.json # Personal overrides (gitignored)
β βββ rules/ # Reference documentation (NOT auto-loaded)
β β βββ code-style.md
β β βββ git.md
β β βββ quality-gates.md
β β βββ security.md
β β βββ security-model.md
β β βββ testing.md
β βββ skills/ # Custom skill definitions
β β βββ code-review/SKILL.md
β β βββ explain-code/SKILL.md
β β βββ generate-tests/SKILL.md
β β βββ install-precommit/SKILL.md
β β βββ refactor-code/SKILL.md
β β βββ refresh-claude/SKILL.md
β β βββ review-mr/SKILL.md
β β βββ wiggum/SKILL.md
β β βββ changelog-writer/SKILL.md
β β βββ release-checklist/SKILL.md
β β βββ risk-register/SKILL.md
β βββ agents/ # Specialized subagents
β β βββ researcher.md
β β βββ code-reviewer.md
β β βββ code-simplifier.md
β β βββ test-writer.md
β β βββ documentation-writer.md
β β βββ adr-writer.md
β βββ hooks/ # Automation scripts
β βββ validate-bash.sh
β βββ auto-format.sh
β βββ pre-commit-review.sh
In the starter repo only (not copied to your project):
stacks/ # Stack presets used by setup.sh
βββ typescript/
βββ python/
βββ go/
βββ rust/
βββ ruby/
βββ elix
Pros
- Quick setup with stack-specific presets.
- Integrates security features by default.
- Supports multiple programming languages.
- Automates formatting and code reviews.
Cons
- Requires multiple dependencies to be installed.
- May have a learning curve for new users.
- Pre-release status might lead to instability.
- Limited documentation on advanced features.
Related Skills
pytorch
SβIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.β
agno
SβIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.β
nuxt-skills
SβIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.β
Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.
Copyright belongs to the original author zbruhnke.
