# Setup

Get a new developer up and running with the Chops codebase, prerequisites, build...

- Repository: https://github.com/Shpigford/chops (2106 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-08-23
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Shpigford/chops --skill setup -g -a claude-code -y`
Codex: `npx skills add Shpigford/chops --skill setup -g -a codex -y`
Cursor: `npx skills add Shpigford/chops --skill setup -g -a cursor -y`
Gemini CLI: `npx skills add Shpigford/chops --skill setup -g -a gemini-cli -y`

## Description

Get a new developer up and running with the Chops codebase, prerequisites, build, architecture, and common tasks.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

Set up the Chops development environment and orient a new contributor to the codebase.

## Instructions

### Step 1: Check prerequisites

Verify these are installed. If any are missing, tell the user what to install and stop.

1. **macOS 15+**, `sw_vers -productVersion` (must be ≥ 15.0)
2. **Xcode CLI tools**, `xcode-select -p` (if missing: `xcode-select --install`)
3. **Homebrew**, `which brew` (if missing: direct them to https://brew.sh)
4. **xcodegen**, `which xcodegen` (if missing: `brew install xcodegen`)

### Step 2: Generate Xcode project

```bash
xcodegen generate
```

This reads `project.yml` (the source of truth for all Xcode project settings) and generates `Chops.xcodeproj`. Re-run this anytime `project.yml` changes. Never edit the `.xcodeproj` directly.

### Step 3: Build and run

```bash
xcodebuild -scheme Chops -configuration Debug build
```

Or open in Xcode and hit Cmd+R:

```bash
open Chops.xcodeproj
```

### Step 4: Orient the developer

Share this architecture overview:

**Entry point:** `Chops/App/ChopsApp.swift`, sets up SwiftData ModelContainer (Skill + SkillCollection), starts Sparkle updater, injects AppState into environment.

**State:** `Chops/App/AppState.swift`, `@Observable` singleton holding UI state (selected tool, selected skill, search text, sidebar filter).

**Models (SwiftData):**
- `Chops/Models/Skill.swift`, a discovered skill file, uniquely identified by resolved symlink path
- `Chops/Models/Collection.swift`, user-created groupings of skills
- `Chops/Models/ToolSource.swift`, enum of supported tools with display names, icons, colors, and filesystem paths

The rest: https://github.com/Shpigford/chops/blob/HEAD/.claude/skills/setup/SKILL.md
