{"id":32329871,"url":"https://github.com/pythoninthegrass/cli-ninja","last_synced_at":"2025-10-23T18:19:43.798Z","repository":{"id":320136751,"uuid":"1080929939","full_name":"pythoninthegrass/cli-ninja","owner":"pythoninthegrass","description":"Claude skill to level up CLI operations 🥷","archived":false,"fork":false,"pushed_at":"2025-10-22T05:43:40.000Z","size":48,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-22T06:30:20.526Z","etag":null,"topics":["claude","claude-code"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pythoninthegrass.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-22T04:19:10.000Z","updated_at":"2025-10-22T05:43:30.000Z","dependencies_parsed_at":"2025-10-22T06:30:26.048Z","dependency_job_id":"bb6bbf95-d279-4078-b9f5-3fff28164963","html_url":"https://github.com/pythoninthegrass/cli-ninja","commit_stats":null,"previous_names":["pythoninthegrass/cli-ninja"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/pythoninthegrass/cli-ninja","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fcli-ninja","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fcli-ninja/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fcli-ninja/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fcli-ninja/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pythoninthegrass","download_url":"https://codeload.github.com/pythoninthegrass/cli-ninja/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fcli-ninja/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280668400,"owners_count":26370299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude","claude-code"],"created_at":"2025-10-23T18:19:41.590Z","updated_at":"2025-10-23T18:19:43.775Z","avatar_url":"https://github.com/pythoninthegrass.png","language":"Shell","readme":"# CLI Ninja Skill\n\n\u003e ```\n\u003e ## Tooling for shell interactions \n\u003e Is it about finding FILES? use 'fd' \n\u003e Is it about finding TEXT/strings? use 'rg' \n\u003e Is it about finding CODE STRUCTURE? use 'ast-grep'\n\u003e Is it about SELECTING from multiple results? pipe to 'fzf' \n\u003e Is it about interacting with JSON? use 'jq' \n\u003e Is it about interacting with YAML or XML? use 'yq'\n\u003e ```\n\n-- [Acceptable-Garage906](https://www.reddit.com/r/ClaudeAI/comments/1lefmff/comment/mykm3nz/)\n\nA [Claude skill](https://support.claude.com/en/articles/12512176-what-are-skills) for mastering CLI navigation and code exploration using modern command-line tools.\n\n## Overview\n\nThe `cli-ninja` skill provides guidance for efficient repository navigation and code exploration using these tools:\n\n- **fd** - Fast file finding\n- **rg** (ripgrep) - Lightning-fast text search\n- **ast-grep** - Code structure search by AST\n- **fzf** - Interactive fuzzy selection\n- **jq** - JSON processing\n- **yq** - YAML/XML processing\n\n## What's Included\n\n### SKILL.md (12.4 KB)\n\nMain skill file with:\n\n- Tool selection decision tree\n- Quick reference guide for all 6 tools\n- Combination workflows (7 common patterns)\n- Best practices and performance tips\n- Integration examples\n\n### References (63 KB total)\n\nComprehensive guides for each tool:\n\n- `fd-patterns.md` (5.1 KB) - File finding patterns and flags\n- `rg-patterns.md` (8.2 KB) - Text search patterns and regex tips\n- `ast-grep-guide.md` (14 KB) - Code structure patterns for Python, Zig, Go, Ruby, JS/TS, Rust\n- `fzf-workflows.md` (12 KB) - Interactive selection and preview configurations\n- `jq-cookbook.md` (11.4 KB) - JSON transformations and filters\n- `yq-examples.md` (12.4 KB) - YAML/XML processing examples\n\n### Scripts (18.9 KB total)\n\nReusable workflow examples:\n\n- `combo-search.sh` (8.2 KB) - 10 common combination workflows\n- `interactive-code-finder.sh` (10.8 KB) - Interactive ast-grep + fzf tool\n\n## Tool Selection Decision Tree\n\n```\nWhat are you looking for?\n\n├─ FILES by name/path/extension?\n│  └─ Use: fd\n│     └─ Need to select from results? → Pipe to fzf\n│\n├─ TEXT/STRINGS in file contents?\n│  └─ Use: rg (ripgrep)\n│     └─ Need to select from results? → Pipe to fzf\n│\n├─ CODE STRUCTURE (functions, classes, imports)?\n│  └─ Use: ast-grep\n│     └─ Need to select from results? → Pipe to fzf\n│     └─ Need to refactor/replace? → Use ast-grep --rewrite\n│\n├─ Working with JSON data?\n│  └─ Use: jq\n│\n└─ Working with YAML or XML data?\n   └─ Use: yq\n```\n\n## Example Workflows\n\n### 1. Find and Edit Files with Context\n\n```bash\nrg -l 'def process_data' -t py | fzf --preview 'rg -C 5 \"def process_data\" {}' | xargs $EDITOR\n```\n\n### 2. Code Refactoring\n\n```bash\nast-grep --pattern 'old_function($$$)' --rewrite 'new_function($$$)' -l py --interactive\n```\n\n### 3. Interactive Configuration Explorer\n\n```bash\nfd -e json | fzf --preview 'jq . {}'\n```\n\n## Key Features\n\n- **Language-agnostic**: Patterns for Python, JavaScript/TypeScript, Rust, Go, Zig, and Ruby\n- **Practical examples**: Real-world workflows for common tasks\n- **Performance tips**: Optimize searches for speed\n- **Integration ready**: Combine tools for powerful workflows\n- **Interactive scripts**: Ready-to-use bash scripts for complex searches\n\n## Installation\n\n### Option 1: Direct Installation (Recommended)\n\n```bash\n# Add the marketplace\n/plugin marketplace add pythoninthegrass/cli-ninja\n\n# Install the skill\n/plugin install cli-ninja\n```\n\nOr install directly in one command:\n```bash\n/plugin install cli-ninja@pythoninthegrass/cli-ninja\n```\n\n### Option 2: Manual Installation\n\n1. Download `cli-ninja-{version}.zip` from the [latest release](https://github.com/pythoninthegrass/cli-ninja/releases/latest)\n2. Extract and place in your Claude Code plugins directory\n3. Restart Claude Code if necessary\n\n### Using the Skill\n\nOnce installed, invoke the skill when navigating repositories or searching code:\n```bash\n/cli-ninja\n```\n\n## When to Use This Skill\n\nUse the cli-ninja skill when:\n\n- Navigating repositories and codebases\n- Searching for files, text, or code patterns\n- Working with JSON/YAML/XML configuration\n- Performing code refactoring\n- Building interactive CLI workflows\n- Needing to select from multiple results\n\n## Prerequisites\n\nThe skill assumes these tools are installed:\n\n- fd\n- rg (ripgrep)\n- ast-grep\n- fzf\n- jq\n- yq\n\nInstallation varies by platform (Homebrew on macOS, apt/dnf on Linux, etc.)\n\n## Total Package Size\n\n94.5 KB (9 files)\n\n## Development\n\nThis project uses [Release Please](https://github.com/googleapis/release-please) to automate releases based on [Conventional Commits](https://www.conventionalcommits.org/).\n\n### How It Works\n\n1. **Make changes and commit** using Conventional Commits format:\n   ```bash\n   git commit -m \"feat: add new search pattern for Python\"\n   git commit -m \"fix: correct typo in fzf examples\"\n   git commit -m \"docs: update installation instructions\"\n   ```\n\n2. **Push to main branch**:\n   ```bash\n   git push origin main\n   ```\n\n3. **Release Please creates a PR** automatically with:\n   - Updated CHANGELOG.md based on your commits\n   - Version bump following semantic versioning\n   - All changes since the last release\n\n4. **Merge the release PR** to trigger:\n   - Git tag creation\n   - GitHub Release creation with auto-generated release notes\n   - Packaging and uploading of `cli-ninja-{VERSION}.zip`\n\n### Conventional Commit Types\n\n- `feat:` - New feature (bumps minor version)\n- `fix:` - Bug fix (bumps patch version)\n- `docs:` - Documentation changes (no version bump)\n- `chore:` - Maintenance tasks (no version bump)\n- `refactor:` - Code refactoring (no version bump)\n- `test:` - Test changes (no version bump)\n\nAdd `!` or `BREAKING CHANGE:` footer for breaking changes (bumps major version):\n```bash\ngit commit -m \"feat!: redesign skill structure\"\n```\n\n### Current Version\n\nThe current version is tracked in `.release-please-manifest.json`. Release Please manages this automatically.\n\n### Manual Release (if needed)\n\nIf you need to create a release manually, you can:\n\n1. Update `.release-please-manifest.json` with the new version\n2. Update `CHANGELOG.md` manually\n3. Create and push a tag:\n   ```bash\n   git tag v0.2.0\n   git push origin v0.2.0\n   ```\n\nThe workflow will package and upload the zip file to the release.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=pythoninthegrass/cli-ninja\u0026type=Date)](https://star-history.com/#pythoninthegrass/cli-ninja\u0026Date)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythoninthegrass%2Fcli-ninja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythoninthegrass%2Fcli-ninja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythoninthegrass%2Fcli-ninja/lists"}