-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
The claude-tools plugin teaches Claude Code about powerful CLI tools it wouldn't otherwise know to use (gron, eza, bat, delta, etc.) and provides CLAUDE.md scaffolding based on a battle-tested template. This is valuable because Claude defaults to cat, ls, grep when better alternatives exist on the system, and writing a good CLAUDE.md from scratch is tedious.
Original Intent
List of CLI tools for Claude to use, such as gron, mc, eza, etc — which can be more efficient than the default set that comes with Claude out of the box.
Commands
/claude-tools:setup
Purpose: Configure Claude Code for the current project — create .claude/ directory, settings, and CLAUDE.md.
Behavior:
- Check if
.claude/directory exists; create if not - Check if
CLAUDE.mdexists at project root- If yes → offer to update (merge new sections, preserve existing content)
- If no → generate from template
- Scan the project to populate CLAUDE.md:
- Tech stack: Detect from
package.json,pyproject.toml,Cargo.toml,go.mod,Makefile - Directory layout: Map top-level directories with purpose annotations
- Build/test commands: Extract from
scriptsin package.json, Makefile targets, etc. - Conventions: Detect from config files (
.eslintrc,biome.json,ruff.toml,.editorconfig)
- Tech stack: Detect from
- Generate CLAUDE.md using this template structure:
# CLAUDE.md ## Project overview <name> — <one-line description from manifest> ## Tech stack | Component | Tool | Version | |-----------|------|---------| | Runtime | Bun | 1.3.x | | Language | TypeScript | 5.x | | Linter | Biome | 1.9.x | ## Directory layout | Path | Purpose | |------|---------| | `src/` | Source code | | `tests/` | Test files | ## Commands | Command | Purpose | |---------|---------| | `bun test` | Run tests | | `bun run build` | Build | ## Conventions - <detected conventions> ## CLI tools available - `rg` (ripgrep) — use instead of grep for searching - `gron` — flatten JSON for grep-able output - <other detected tools>
- Create
.claude/settings.jsonif it doesn't exist:{ "permissions": { "allow": [], "deny": [] } } - Output summary of created/updated files
Edge cases:
- Monorepo → detect workspaces and document each package
- Existing CLAUDE.md with custom sections → preserve all custom content, only add missing sections
- No manifest files → ask user about the project
/claude-tools:context
Purpose: Generate or refresh the CLAUDE.md context file with current project state.
Behavior:
- Read existing CLAUDE.md if present
- Re-scan project for changes since last generation:
- New directories
- Changed dependencies
- New/removed scripts
- New config files
- Update each section while preserving user-written content:
- Sections with
<!-- auto-generated -->markers → regenerate - Sections without markers → preserve as-is
- Sections with
- Add
## Last updatedtimestamp - Show diff of changes before applying
Edge cases:
- User has heavily customized CLAUDE.md → only update auto-generated sections
- Large monorepo → limit depth, summarize rather than enumerate
/claude-tools:tools (new)
Purpose: Reference guide for CLI tools available on the system that Claude should prefer.
Behavior:
- Detect which enhanced CLI tools are installed by checking
which/command -v:- File viewing:
bat(vscat),less - Directory listing:
eza(vsls),tree - Searching:
rg(ripgrep, vsgrep),fd(vsfind),fzf - JSON:
gron(flatten for grep),jq(query/transform) - Disk usage:
gdu(vsdu),ncdu - Git:
delta(diff pager),gh(GitHub CLI),tea(Forgejo CLI) - System:
btop(vstop),glances - File management:
mc(Midnight Commander) - HTTP:
httpie(vscurl),xh - Text editing:
micro(vsnano/vi)
- File viewing:
- Output a reference table:
Available Enhanced CLI Tools | Default | Better Alternative | Installed | Notes | |----------|-------------------|-----------|-------| | cat | bat | ✓ | Syntax highlighting, line numbers | | ls | eza | ✗ | Icons, git integration | | grep | rg (ripgrep) | ✓ | 10x faster, .gitignore aware | | find | fd | ✗ | Simpler syntax, faster | | du | gdu | ✓ | Interactive, fast | | top | btop | ✓ | Beautiful, mouse support | | curl | httpie/xh | ✗ | Human-friendly HTTP | | jq | gron + grep | ✓ | Flatten JSON then grep | - For each installed tool, provide a one-line usage tip
- Offer to add the tool list to CLAUDE.md
Edge cases:
- None of the enhanced tools installed → provide installation suggestions
- Tools installed but not in PATH → check common locations (
~/.local/bin,~/.cargo/bin)
Hooks
None — this plugin operates through commands only.
File Manifest
| File | Est. Lines | Purpose |
|---|---|---|
commands/setup.md |
100-120 | Create .claude/ dir and CLAUDE.md |
commands/context.md |
80-100 | Update CLAUDE.md with project state |
commands/tools.md |
90-110 | CLI tool reference and detection |
README.md |
150-180 | Full plugin documentation |
.claude-plugin/plugin.json |
15-20 | Plugin manifest |
README Outline
- Overview — What claude-tools does: CLI awareness + CLAUDE.md management
- Quick Start — Installation +
/claude-tools:setup - Commands — Table with all 3 commands
- CLAUDE.md Template — Full reference of the generated template structure
- CLI Tool Reference — Complete table of default vs enhanced tools
- Tool Installation — Quick install commands for missing tools
- Customization — How to add custom sections to CLAUDE.md that survive regeneration
Prerequisites
- No external tools required — the plugin detects what's available
- Enhanced tools are optional recommendations, not requirements
Quality Checklist
- Each command .md is 60+ lines with concrete steps
- README is 100+ lines with examples and reference tables
- CLI tool comparison table is comprehensive (15+ tools)
- CLAUDE.md template is production-ready
- Plugin provides clear value beyond Claude's defaults