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
- Adds
cuitegit remote pointing to the framework repo - Runs
git subtree addto create.claude/cuite/ - Creates all symlinks via
cuite link - Copies starter files (
settings.json,domain-map.conf,domains.md,CLAUDE.md, etc.) — only if they don't already exist - Creates
.claude/.cache/directory - Adds
settings.local.jsonto.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.
cuite link
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
git subtree pull --squashfrom cuite remote- Refreshes all symlinks
- 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.
jq must be installed for this command to work.
cuite status
Show comprehensive framework status:
- Remote configuration
- Subtree location and last commit
- Symlink integrity (ok count, broken count)
- Project files (present, missing, or wrongly symlinked)
- Discovered domains
- Settings sync 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