Skip to main content
netresearch

cli-tools

by netresearchv1.3.1

CLI tool management with automatic missing-tool detection, installation, and auditing

Installation guide →
1 skillMIT GitHub

Documentation

# CLI Tools Skill

A Claude Code skill for automatic CLI tool management. Detects missing tools, installs them via optimal package managers, and audits project environments.

## 🔌 Compatibility

This is an **Agent Skill** following the [open standard](https://agentskills.io) originally developed by Anthropic and released for cross-platform use.

**Supported Platforms:**
- ✅ Claude Code (Anthropic)
- ✅ Cursor
- ✅ GitHub Copilot
- ✅ Other skills-compatible AI agents

> Skills are portable packages of procedural knowledge that work across any AI agent supporting the Agent Skills specification.


## Features

- **Reactive Mode**: Auto-detect "command not found" errors and install missing tools
- **Proactive Mode**: Audit project environments and report missing/outdated tools
- **Maintenance Mode**: Batch update all managed tools across package managers

## Supported Tools

74+ tools across categories:

| Category | Tools |
|----------|-------|
| **Core CLI** | ripgrep, fd, fzf, jq, yq, bat, delta, just |
| **Languages** | python, node, rust, go, ruby, php |
| **Package Managers** | uv, npm, pnpm, cargo, pip, gem, composer |
| **DevOps** | docker, compose, kubectl, terraform, ansible |
| **Linters** | eslint, prettier, ruff, black, shellcheck, phpstan |
| **Security** | trivy, gitleaks, bandit, semgrep |
| **Git Tools** | gh, glab, git-lfs, delta |

## Project Type Detection

Automatically detects project types and their requirements:

| Project Type | Detection Files | Required Tools |
|--------------|-----------------|----------------|
| Python | `pyproject.toml`, `requirements.txt` | python, uv |
| Node.js | `package.json` | node, npm |
| Rust | `Cargo.toml` | rust |
| Go | `go.mod` | go |
| PHP | `composer.json`, `*.php` | php, composer |
| Ruby | `Gemfile` | ruby |
| Docker | `Dockerfile`, `docker-compose.yml` | docker, compose |
| Terraform | `*.tf` | terraform |

## Installation

### Option 1: Via Netresearch Marketplace (Recommended)

```bash
/plugin marketplace add netresearch/claude-code-marketplace
```

Then browse skills with `/plugin`.

### Option 2: Download Release

Download the [latest release](https://github.com/netresearch/cli-tools-skill/releases/latest) and extract to `~/.claude/skills/cli-tools/`

### Option 3: Manual Installation

```bash
# Copy to your skills directory
cp -r cli-tools ~/.claude/skills/
```

### Manual Usage

```bash
# Install a specific tool
./scripts/install_tool.sh ripgrep install

# Detect project type
./scripts/detect_project_type.sh json .

# Audit environment
./scripts/check_environment.sh audit .

# Update all tools
./scripts/auto_update.sh update
```

## Triggers

The skill activates automatically on:

### Error Patterns
```
bash: <tool>: command not found
zsh: command not found: <tool>
'<tool>' is not recognized as an internal or external command
```

### User Requests
- "check environment", "audit tools"
- "what's missing", "what's outdated"
- "install development tools"
- "update all tools"

## Installation Methods

The skill selects the optimal installation method based on catalog priority:

1. **GitHub Release Binary** - Direct download (fastest, no deps)
2. **Cargo** - Rust tools via cargo install
3. **UV/Pip** - Python tools
4. **NPM** - Node tools
5. **Apt/Brew** - System packages (fallback)

Priority: user-level (`~/.local/bin`, `~/.cargo/bin`) over system-level.

## Directory Structure

```
cli-tools/
├── SKILL.md              # Skill definition and workflows
├── catalog/              # Tool definitions (74+ JSON files)
│   ├── ripgrep.json
│   ├── php.json
│   └── ...
├── scripts/
│   ├── install_tool.sh   # Main installer
│   ├── auto_update.sh    # Batch updater
│   ├── check_environment.sh
│   ├── detect_project_type.sh
│   ├── lib/              # Shared libraries
│   └── installers/       # Method-specific installers
└── references/
    ├── binary_to_tool_map.md
    └── project_type_requirements.md
```

## Requirements

- **jq**: Required for JSON parsing (auto-installed if missing)
- **Bash 4+**: Required for associative arrays
- **Internet**: Required for tool downloads

## License

MIT License - See [LICENSE](LICENSE) for details.

## Contributing

1. Add tool definition to `catalog/<tool>.json`
2. Update `references/binary_to_tool_map.md` if binary differs from tool name
3. Test with `scripts/install_tool.sh <tool> install`
4. Submit PR

## Credits

Developed and maintained by [Netresearch DTT GmbH](https://www.netresearch.de/).

---

**Made with ❤️ for Open Source by [Netresearch](https://www.netresearch.de/)**