project-init

SKILL.md

Project Init

Initialize a project with standard Claude Code configuration.

What It Does

  1. Adds a SessionStart hook to .claude/settings.json for remote environment setup
  2. Detects project languages and adds appropriate tool permissions

Language Detection

The script detects languages based on project files and adds permissions:

Detection File Language Permissions Added
go.mod Go go, golangci-lint, staticcheck, govulncheck
Package.swift, *.xcodeproj Swift swift, xcodebuild, swiftlint, xcrun
package.json Node.js npm, npx, node, plus yarn/pnpm/bun if lockfiles present
pyproject.toml, requirements.txt Python python, pip, uv, pytest, ruff, mypy
Cargo.toml Rust cargo, rustc
Gemfile Ruby ruby, bundle, rake, rspec
pom.xml Java (Maven) mvn, java
build.gradle Java (Gradle) gradle, ./gradlew, java
Dockerfile Docker docker, docker-compose
*.tf Terraform terraform, tofu
Makefile Make make

git is always included.

Usage

Run the setup script from your project directory:

~/.claude/skills/project-init/scripts/setup-project.sh

The script:

  • Creates .claude/settings.json if it doesn't exist
  • Merges hooks and permissions into existing settings without overwriting
  • Is idempotent (safe to run multiple times)
  • Requires jq for JSON manipulation

Batch Setup

To initialize multiple projects:

for dir in ~/projects/*; do
  (cd "$dir" && ~/.claude/skills/project-init/scripts/setup-project.sh)
done
Weekly Installs
16
GitHub Stars
16
First Seen
Jan 27, 2026
Installed on
opencode16
codex16
gemini-cli16
github-copilot15
claude-code14
kimi-cli14