CLI Reference

The bin/cuite management CLI for framework setup, updates, and maintenance.

Usage

.claude/cuite/bin/cuite <command>

# Or alias it
alias cuite='.claude/cuite/bin/cuite'

cuite init

Full setup: adds git remote, creates subtree, sets up symlinks, copies starter files.

What it does

  1. Adds cuite git remote pointing to the framework repo
  2. Runs git subtree add to create .claude/cuite/
  3. Creates all symlinks via cuite link
  4. Copies starter files (settings.json, domain-map.conf, domains.md, CLAUDE.md, etc.) — only if they don't already exist
  5. Creates .claude/.cache/ directory
  6. Adds settings.local.json to .gitignore

Output

Next steps guide recommending /cuite-init or manual setup.

cuite envrc

Creates or updates .envrc for direnv, adding .claude/cuite/bin to your PATH.

Behavior

Scenario Action
No .envrc exists Creates a new file with bash header + cuite PATH block
.envrc exists, no cuite block Appends cuite PATH block
.envrc already has cuite block Skips (no-op)

Generated block

# cuite
: "${CUITE_BIN:="$(git rev-parse --show-toplevel)/.claude/cuite/bin"}"
PATH_add "${CUITE_BIN}"
# /cuite

After running, activate with direnv allow. Then cuite is available directly in your shell.

Creates or refreshes all symlinks from .claude/ to .claude/cuite/.

Symlinks created

Symlink Target
.claude/hooks cuite/hooks
.claude/commands cuite/commands
.claude/agents/templates ../cuite/agents/templates
.claude/agents/build-agent.md ../cuite/agents/build-agent.md
.claude/agents/review-agent.md ../cuite/agents/review-agent.md
.claude/agents/scout-agent.md ../cuite/agents/scout-agent.md
.claude/agents/experts/agent-teams-blueprint.md ../../cuite/agents/experts/agent-teams-blueprint.md
.claude/template.md cuite/template.md
.claude/teammates.md cuite/teammates.md

When to use

After a pull that might have changed directory structure, or if symlinks get broken.

cuite pull

Pull framework updates and refresh symlinks.

Steps

  1. git subtree pull --squash from cuite remote
  2. Refreshes all symlinks
  3. Checks settings hooks for drift (quiet mode)

What gets updated

Framework files (hooks, commands, agents, templates). Your files (settings, domains, experts) are never touched.

Conflicts

Only happen inside .claude/cuite/ if you edited framework files directly. Resolve with git checkout --theirs .claude/cuite/.

cuite push

Push framework changes back to the cuite repo.

Only files under .claude/cuite/ are pushed. Project-specific files are never included.

Use case

You fixed a bug in a hook or improved a template while working in your project. Push it back so other projects get the fix.

# Edit, commit, push
$EDITOR .claude/cuite/hooks/scope-enforcement.sh
git add .claude/cuite/hooks/scope-enforcement.sh
git commit -m "fix: scope-enforcement edge case"
cuite push

cuite settings [-q]

Compare project settings.json hooks against framework template.

Interactive mode (default)

Shows diff, lists your permissions, offers to update hooks while preserving permissions.

Quiet mode (-q)

Only warns if hooks differ. Used automatically by cuite pull.

Requires jq must be installed for this command to work.

cuite status

Show comprehensive framework status:

cuite log [N]

Show last N (default 20) cuite-related commits.

cuite log      # Last 20
cuite log 5    # Last 5

cuite diff

Show uncommitted changes in the cuite subtree.

cuite diff

Equivalent to git diff HEAD -- .claude/cuite/.

Environment Variables

Variable Default Description
CUITE_REMOTE cuite Git remote name for the framework
CUITE_BRANCH main Branch to track
CUITE_REPO https://github.com/fentas/cuite.git Repository URL
CUITE_PREFIX .claude/cuite Subtree path prefix
CLAUDE_DIR .claude Claude Code directory

File Categories

Framework files (inside .claude/cuite/, updated by pull)

hooks/*              # Security enforcement, expertise injection
commands/*           # /do, /do-teams, /improve, /cuite-init, /cuite-sync
agents/build-agent.md, scout-agent.md, review-agent.md
agents/templates/*   # Agent templates
agents/experts/agent-teams-blueprint.md
bin/cuite            # This CLI
bin/argsh.min.sh     # Bash framework runtime
settings.json        # Template (reference for sync)
CLAUDE.md            # Template
template.md          # Setup guide
teammates.md         # Workflow reference

Project files (real files in .claude/, never pushed)

settings.json        # Your WebFetch whitelist + hooks wiring
settings.local.json  # Per-user (gitignored)
domain-map.conf      # Your path-to-domain mappings
domains.md           # Your domain registry
agents/agent-registry.json
agents/experts/{your-domains}/
.cache/              # Session data (gitignored)

Symlinks (tracked by git, refreshed by cuite link)

hooks -> cuite/hooks
commands -> cuite/commands
template.md -> cuite/template.md
teammates.md -> cuite/teammates.md
agents/templates -> ../cuite/agents/templates
agents/*.md -> ../cuite/agents/*.md
agents/experts/agent-teams-blueprint.md -> ../../cuite/...

Makefile Helper

Optional convenience targets:

CUITE := .claude/cuite/bin/cuite

cuite-pull:
	$(CUITE) pull

cuite-init:
	$(CUITE) init

cuite-status:
	$(CUITE) status

cuite-settings:
	$(CUITE) settings