Back to skills
SkillHub ClubShip Full StackFull Stack

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.

Stars
16
Hot score
86
Updated
March 20, 2026
Overall rating
A7.8
Composite score
5.4
Best-practice grade
C60.0

Install command

npx @skill-hub/cli install arjenschwarz-agentic-coding-project-init
project-setupclaude-codeautomationdev-tools

Repository

ArjenSchwarz/agentic-coding

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 repository

Best 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

Claude CodeCodex CLIGemini CLIOpenCode

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
```
project-init | SkillHub