project-init
Automates Claude Code project initialization by detecting programming languages and adding appropriate tool permissions to settings.json. Creates session hooks and merges configurations without overwriting existing settings. Saves manual setup time for developers using Claude Code across multiple languages.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install arjenschwarz-agentic-coding-project-init
Repository
Skill path: claude/skills/project-init
Automates Claude Code project initialization by detecting programming languages and adding appropriate tool permissions to settings.json. Creates session hooks and merges configurations without overwriting existing settings. Saves manual setup time for developers using Claude Code across multiple languages.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: Developers using Claude Code who work with multiple programming languages and need consistent project setup.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: ArjenSchwarz.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install project-init into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/ArjenSchwarz/agentic-coding before adding project-init to shared team environments
- Use project-init for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
--- name: project-init description: Initialize Claude Code project settings with standard hooks and language-specific permissions. Use when setting up a new project for Claude Code or adding standard configuration to an existing project. --- # 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: ```bash ~/.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: ```bash for dir in ~/projects/*; do (cd "$dir" && ~/.claude/skills/project-init/scripts/setup-project.sh) done ```