Skip to content

genesiscz/GenesisTools

Repository files navigation

🌟 GenesisTools

DeepWiki TypeScript Bun Node.js MIT License

✨ A powerful collection of development utilities for the modern developer ✨

Simplify your workflow with tools for Git operations, AI file analysis, release notes generation, and more!


πŸ“š Table of Contents


🎯 Claude Code Plugin

GenesisTools includes a Claude Code plugin with skills and commands to enhance your AI-assisted development workflow.

Installation for Claude Code

# 1. Clone the repository
git clone https://github.com/genesiscz/GenesisTools.git
cd GenesisTools

# 2. Install the marketplace
# Add this repository as a marketplace in your Claude Code settings
# The marketplace file is located at: .claude-plugin/marketplace.json

# 3. The plugin includes:
# - Setup command: Guide you through GenesisTools installation
# - Azure DevOps skill: Fetch and manage work items, queries, and dashboards

What's Included in the Plugin

Component Name Description
Command setup Interactive setup guide for installing GenesisTools globally
Skill azure-devops Automatically helps with Azure DevOps work items and queries

To use the plugin in Claude Code:

  • Commands are invoked with /genesis-tools:setup
  • Skills are automatically triggered when you ask about Azure DevOps work items

πŸš€ Quick Start

Prerequisites

πŸ“Œ Important: BunJS is required as some tools use Bun-specific APIs

# Install Bun if you haven't already
curl -fsSL https://bun.sh/install | bash

Installation

cd ~
# Clone and install GenesisTools
git clone https://github.com/genesiscz/GenesisTools.git
cd GenesisTools

# Install dependencies and make tools globally available
bun install && ./install.sh

# Reload your shell configuration
source ~/.zshrc  # For Zsh users
source ~/.bashrc # For Bash users

🎯 First Command

# List all available tools
tools

# Pick a tool from the interactive list - it auto-copies to clipboard! πŸ“‹

πŸ› οΈ Available Tools

πŸ” Git & Version Control

Tool Description
Git Commit πŸ€– AI-powered commit messages with auto-staging
Git Last Commits Diff πŸ“ View diffs between recent commits
GitHub Release Notes πŸ“‹ Generate beautiful release notes
Last Changes πŸ“… Show uncommitted changes grouped by time
Rename Commits πŸ”„ Interactively rename commit messages
Git Rebase Multiple 🌳 Safe branch hierarchy rebasing with rollback

πŸ€– AI & Analysis

Tool Description
Collect Files for AI πŸ€– Aggregate project files for AI analysis
Files to Prompt πŸ’¬ Convert files to AI-friendly prompts
Hold-AI ⏸️ Control AI responses via WebSocket
JSON/TOON Converter πŸ”„ Convert JSON ↔ TOON for token optimization
MCP Ripgrep ⚑ Lightning-fast code search server
MCP Web Reader 🌐 Fetch raw HTML or Markdown (Jina/local)
MCP TSC πŸ” TypeScript diagnostics (CLI & MCP)
MCP Manager βš™οΈ Cross-platform MCP configuration manager
Azure DevOps πŸ”· Fetch and manage Azure DevOps work items

πŸ“Š Monitoring & Watching

Tool Description
macOS ESLogger πŸ” Monitor macOS Endpoint Security events
Watchman πŸ‘οΈ Monitor file changes with Facebook Watchman
Watch πŸ”„ Real-time file monitoring with glob patterns
FSEvents Profile πŸ“Š Profile macOS filesystem events

πŸ“¦ Package Management

Tool Description
NPM Package Diff 🎨 Beautiful package version comparisons

πŸ’‘ Tool Details

1. πŸ“ Git Last Commits Diff

Display beautiful diffs between recent commits or working changes - perfect for AI input!

🎯 Quick Example
# Diff last 2 commits
tools git-last-commits-diff /path/to/repo --commits 2

# Interactive commit selection
tools git-last-commits-diff /path/to/repo

# Copy diff to clipboard
tools git-last-commits-diff . --commits 3 --clipboard
βš™οΈ Options
Option Description
<directory> πŸ“ Path to Git repository (required)
--commits, -c πŸ”’ Number of recent commits to diff
--output, -o πŸ’Ύ Save diff to file
--clipboard, -cl πŸ“‹ Copy diff to clipboard
--help, -h ❓ Show help message

2. πŸ€– Collect Files for AI

Smart file collection tool that gathers changed files for AI analysis with intelligent filtering.

🎯 Quick Examples
# Collect files from last 5 commits
tools collect-files-for-ai ./my-repo -c 5

# Collect only staged files
tools collect-files-for-ai . --staged

# Collect with flat structure (no subdirectories)
tools collect-files-for-ai . --all --flat
βš™οΈ Modes & Options

🎨 Collection Modes (choose one):

  • --commits, -c NUM - Files from last NUM commits
  • --staged, -s - Only staged files
  • --unstaged, -u - Only unstaged files
  • --all, -a - All uncommitted files (default)

πŸ“ Output Options:

  • --target, -t DIR - Custom output directory
  • --flat, -f - Copy files without preserving directory structure

3. πŸ“‹ GitHub Release Notes

Generate beautiful, markdown-formatted release notes from any GitHub repository.

🎯 Quick Examples
# Generate release notes
tools github-release-notes facebook/react releases.md

# From GitHub URL
tools github-release-notes https://github.com/microsoft/vscode releases.md

# Limit releases & sort oldest first
tools github-release-notes vercel/next.js notes.md --limit=10 --oldest
πŸ’‘ Pro Tip

Set GITHUB_TOKEN environment variable to avoid rate limits:

export GITHUB_TOKEN=your_github_token

4. πŸ”’ T3Chat Length

πŸ”’ Internal Tool - Analyzes T3Chat message lengths and thread sizes.

ℹ️ Note

This tool is for internal use. Modify myInputJson in src/t3chat-length/index.ts before running:

tools t3chat-length

5. πŸ‘οΈ Watchman

Monitor files using Facebook's Watchman for instant change detection.

🎯 Quick Examples
# Watch current directory
tools watchman -c

# Watch specific directory
tools watchman /path/to/project

# Interactive directory selection
tools watchman

6. πŸ”„ Watch

Real-time file monitoring with powerful glob patterns - like tail -f on steroids! πŸš€

✨ Features
  • 🎯 Watch files matching any glob pattern
  • πŸ“‘ Real-time content updates
  • πŸ†• Auto-detect new files
  • 🏠 Tilde expansion support (~)
  • ⚑ Configurable polling intervals
  • πŸ“Š Directory & file summaries
🎯 Examples
# Watch TypeScript files
tools watch "src/**/*.ts"

# Multiple file types with verbose mode
tools watch "~/projects/**/*.{js,ts,tsx}" -v -n 100

# Follow mode (like tail -f)
tools watch "logs/**/*.log" -f

# Fast polling with custom line count
tools watch "src/**/*" --seconds 1 -n 200
βš™οΈ Options
Option Alias Description Default
--seconds -s Polling interval 3
--verbose -v Detailed logging false
--follow -f Tail mode false
--lines -n Lines to display 50

7. 🎨 NPM Package Diff

πŸš€ Lightning-fast, beautiful diffs between NPM package versions

A powerful command-line tool that creates temporary directories, installs package versions in parallel, watches for file changes during installation, and shows beautiful diffs with multiple output formats.

Features Output Formats Performance

🌟 Key Features

🎨 Visual Excellence

  • Beautiful colored terminal diffs with syntax highlighting
  • Side-by-side and line-by-line comparisons
  • Interactive HTML reports with toggle views
  • Delta integration for GitHub-style diffs

πŸ“Š Smart Analysis

  • File size comparisons and statistics
  • Addition/deletion line counts
  • Glob pattern filtering (include/exclude)
  • Binary file detection and skipping

⚑ Performance

  • Parallel package installation
  • Efficient file watching during install
  • Configurable timeouts
  • Multi-package manager support (npm, yarn, pnpm, bun)
🎯 Examples
# Basic comparison
tools npm-package-diff react 18.0.0 18.2.0

# Compare all JavaScript files
tools npm-package-diff lodash 4.17.20 4.17.21 --filter="**/*.js"

# Generate a patch file
tools npm-package-diff express 4.17.0 4.18.0 --patch express.patch

# Create interactive HTML report
tools npm-package-diff @types/node 18.0.0 20.0.0 --format html -o report.html

# Use delta for beautiful diffs
tools npm-package-diff typescript 4.9.0 5.0.0 --use-delta

# Compare with statistics
tools npm-package-diff webpack 4.46.0 5.88.0 --stats --sizes
βš™οΈ Options
Option Alias Description Default
--filter -f Glob pattern to include files **/*.d.ts
--exclude -e Glob pattern to exclude files -
--output -o Output file path console
--format -F Output format (terminal/unified/html/json/side-by-side) terminal
--patch -p Generate patch file -
--verbose -v Enable verbose logging false
--silent -s Suppress output except errors false
--stats - Show statistics summary false
--sizes - Compare file sizes false
--line-numbers - Show line numbers true
--word-diff - Show word-level differences false
--side-by-side - Side-by-side view false
--context - Context lines in diff 3
--use-delta - Use delta for output false
--keep -k Keep temporary directories false
πŸ“‹ Output Formats (`--format`)
  • πŸ–₯️ terminal - Colored diff with syntax highlighting (default)
  • πŸ“„ unified - Standard patch format for git apply
  • 🌐 html - Interactive web page with toggle views
  • πŸ“Š json - Structured data for programmatic use
  • ↔️ side-by-side - Split-screen terminal comparison

8. πŸ’¬ Files to Prompt

Convert your codebase into AI-friendly prompts with intelligent formatting and filtering.

✨ Features
  • 🎯 Multiple output formats (XML, Markdown, plain text)
  • πŸ“ Recursive directory processing
  • πŸ” Extension and pattern filtering
  • πŸ‘» Hidden file handling
  • πŸ“Š Line number support
  • 🚫 Gitignore respect
  • πŸ“‚ Flat folder structure copying with renamed files
🎯 Examples
# Basic usage
tools files-to-prompt src/components

# Filter by extensions
tools files-to-prompt -e js -e ts src/

# Generate markdown with line numbers
tools files-to-prompt --markdown -n -o output.md project/

# XML format for Claude
tools files-to-prompt --cxml src/ > prompt.xml

# Copy files to flat folder structure (renames files with directory structure)
tools files-to-prompt --flat-folder -o flat-output/ src/

# Flat folder with extension filtering
tools files-to-prompt --flat-folder -e js -e ts -o flat-js-ts/ project/

# Pipe from find command
find . -name "*.py" | tools files-to-prompt -0

9. ⚑ MCP Ripgrep

Lightning-fast code search server implementing the Model Context Protocol (MCP).

πŸš€ Capabilities
  • search - Basic pattern search with highlighting
  • advanced-search - Extended options (word boundaries, symlinks, etc.)
  • count-matches - Count occurrences efficiently
  • list-files - List searchable files
  • list-file-types - Show supported file types
βš™οΈ MCP Configuration

Add to your MCP configuration file:

{
    "mcpServers": {
        "ripgrep": {
            "command": "tools mcp-ripgrep",
            "args": ["--root", "/Root/Path/For/Project/"],
            "env": {}
        }
    }
}

10. ⏸️ Hold-AI Tool

Control AI responses with a WebSocket-based hold/release mechanism.

πŸ”§ How It Works
  1. Start Server β†’ Collects your messages
  2. AI Connects β†’ Via client tool
  3. You Provide Input β†’ Through editor interface
  4. Send "OK" β†’ Releases AI to continue
πŸ“ Usage Flow
# Terminal 1: Start server
tools hold-ai/server

# Terminal 2: AI runs client
tools hold-ai/client

# Server: Opens editor for your input
# Type messages, save & exit to send
# Type "OK" alone to complete

12. 🌐 MCP Web Reader

Fetches web content as raw HTML, Jina Reader Markdown, or locally extracted Markdown. Works as both CLI and MCP server.

🎯 Quick Examples
# CLI modes
tools mcp-web-reader --mode raw --url https://example.com
tools mcp-web-reader --mode markdown --depth advanced --url https://example.com
tools mcp-web-reader --mode jina --url https://example.com

# Token limiting and compaction
tools mcp-web-reader --mode markdown --url https://example.com --tokens 2048 --save-tokens
βš™οΈ MCP Tools

Exposed tools with parameters: url, depth (basic|advanced), save_tokens (0|1), tokens (max tokens)

  • FetchWebRaw
  • FetchWebMarkdown
  • FetchJina

Each returns { content: [{ type: "text", text }], meta: { tokens } }.


13. πŸ“… Last Changes

Shows uncommitted git changes grouped by modification time to help you understand what files were updated and when.

✨ Features
  • πŸ“… Time-based grouping (Last hour, Last 3 hours, Today, Yesterday, etc.)
  • 🎨 Color-coded git status (modified, added, deleted, renamed)
  • ⏰ Relative and absolute timestamps
  • πŸ“‹ Detailed status descriptions (staged/unstaged)
  • πŸ” Handles untracked files and directories
🎯 Quick Examples
# Show uncommitted changes grouped by time
tools last-changes

# Enable verbose logging
tools last-changes --verbose
βš™οΈ Options
Option Alias Description
--verbose -v Enable verbose logging
--help -h Show help message
πŸ“‹ Output Format

Groups files by time periods:

  • Last hour - Files modified in the past hour
  • Last 3 hours - Files modified 1-3 hours ago
  • Last 6 hours - Files modified 3-6 hours ago
  • Last 12 hours - Files modified 6-12 hours ago
  • Today - Files modified today but more than 12 hours ago
  • Yesterday - Files modified yesterday
  • Last N days - Files modified in the past week
  • Older - Files modified more than a week ago

Each file shows:

  • Git status (M, A, D, R, etc.) with color coding
  • Status description (e.g., "modified (staged & unstaged)")
  • Relative time (e.g., "5 minutes ago")
  • Absolute timestamp (e.g., "Oct 30, 2024, 2:30:45 PM")

14. πŸ“Š FSEvents Profile

Profile file system events using macOS fsevents. Helps identify directories with high filesystem activity to diagnose performance issues or find cache/build directories.

✨ Features
  • πŸ“Š Monitor filesystem events in real-time
  • πŸ“ˆ Aggregate events by directory
  • πŸ† Show top N most active directories
  • πŸ” Find processes watching fsevents
  • ⚑ Uses native macOS fsevents API for efficiency
🎯 Quick Examples
# Monitor entire filesystem for default 15 seconds
tools fsevents-profile

# Monitor specific directory
tools fsevents-profile /Users

# Monitor for custom duration
tools fsevents-profile -d 30

# Show top 5 directories instead of default 10
tools fsevents-profile -t 5 /tmp

# Show processes currently watching fsevents (requires root)
sudo tools fsevents-profile --watchers

# Enable verbose logging to see events in real-time
tools fsevents-profile -v /Users/Martin
βš™οΈ Options
Option Alias Description Default
--duration -d Monitoring duration in seconds 15
--top -t Number of top directories to display 10
--path - Path to monitor "/"
--watchers -w Show processes currently watching fsevents (needs root) -
--verbose -v Enable verbose logging to see events as they occur -
--help -h Show help message -
πŸ“‹ How It Works
  1. Starts an fsevents watcher on the specified path
  2. Collects all file system events during the monitoring period
  3. Aggregates events by parent directory
  4. Displays the top N directories with the most activity
  5. Press Ctrl+C at any time to stop early and see results
πŸ’‘ Tips
  • Common high-activity locations include: caches, build outputs, cloud sync folders
  • Monitoring the root filesystem (/) may generate a large number of events
  • The --watchers flag requires root privileges to run fs_usage
  • Use --verbose to see events in real-time as they occur

16. πŸ” macOS ESLogger

Monitor macOS Endpoint Security events in real-time using the ESLogger utility - perfect for security monitoring and debugging process execution!

🚨 macOS Only - Requires macOS 10.15+ and Full Disk Access permissions

✨ Features
  • πŸ” Real-time Event Monitoring: Monitor system events as they happen
  • 🎯 Advanced Filtering: Filter events using JSON path expressions
  • πŸ“Š Multiple Event Types: Process execution, file operations, authentication, and more
  • 🏷️ Event Categories: Pre-defined groups like process, file, network, security
  • 🎨 Beautiful Output: Color-coded, formatted event display
  • πŸ”§ Debug Mode: Raw JSON output for troubleshooting
  • πŸ“ Multiple Output: Console, file logging, or clipboard
  • πŸ–₯️ Interactive Mode: Easy setup for beginners
🎯 Quick Examples
# Interactive mode (recommended for beginners)
tools macos-eslogger

# Monitor process events (exec, fork, exit)
tools macos-eslogger -c process

# Monitor specific events
tools macos-eslogger -e exec,fork,authentication

# Filter for specific processes
tools macos-eslogger -e exec --filter-event '.event.target.path =~ ".*bash.*"'

# Monitor file operations but exclude temp files
tools macos-eslogger -e open,write --filter-event '.event.file.path !~ ".*tmp.*"'

# Save authentication events to file
tools macos-eslogger -e authentication -o auth.log

# Debug mode to see raw event structure
tools macos-eslogger -e exec --debug --dry-run
βš™οΈ Event Categories
Category Events Description
process exec, fork, exit Process lifecycle events
file open, close, create, write, unlink, rename File system operations
network uipc_bind, uipc_connect Network/socket operations
security authentication, sudo, su, setuid... Security and privilege events
session login/logout, screensharing, ssh User session events
auth authorization events System authorization
πŸ” Filter Syntax

Use JSON path expressions with dot notation and regex operators:

# Regex matching (recommended)
.event.target.path =~ ".*bash.*"        # Executables containing "bash"
.event.target.path =~ "^/usr/.*"        # Paths starting with "/usr/"
.event.process.audit_token.pid == "1234" # Specific PID (exact match)

# Regex exclusion
.event.target.path !~ ".*tmp.*"         # Exclude temp file paths

# String matching (supports regex if pattern contains special chars)
.event.target.path == "/bin/bash"       # Exact string match

Supported Operators:

  • == - Exact match (supports regex if pattern contains .*)
  • != - Not equal (supports regex if pattern contains .*)
  • =~ - Regex match
  • !~ - Regex not match
βš™οΈ Options
Option Alias Description
--events, -e Comma-separated list of event types to monitor
--category, -c Monitor all events in a category
--output, -o Write output to file instead of stdout
--filter-event Filter events using JSON path expression
--include-fork Auto-include fork events when monitoring exec
--debug Show raw JSON events for debugging
--dry-run Show what would be monitored without running
--silent Suppress non-error messages
--verbose Enable verbose logging
--help, -h Show help message
πŸ”§ Setup Requirements

1. macOS Version: 10.15+ (Catalina or later)

2. Full Disk Access: Required for ESLogger to work

# Go to: System Settings > Privacy & Security > Full Disk Access
# Add and enable: /usr/sbin/eslogger

3. Run with sudo: ESLogger requires root privileges

sudo tools macos-eslogger -e exec

4. Terminal Session: Run in a separate terminal from the one you're monitoring

πŸ“‹ Understanding Events

Process Events:

  • exec: event.target.path - Executable being run
  • fork: event.child.executable.path - Child process created

File Events:

  • open/write: event.file.path - File being accessed
  • create/unlink: event.target.path - File being created/deleted

Security Events:

  • authentication: event.success - Auth success/failure
  • sudo: event.command - Command run with sudo

Common Paths:

  • .event.target.path - Executable path (exec events)
  • .event.file.path - File path (file events)
  • .process.executable.path - Process that triggered event
  • .process.audit_token.pid - Process ID
πŸ’‘ Pro Tips
  • Shell Builtins: which, cd, echo don't trigger exec events - use /usr/bin/which
  • Process Groups: ESLogger suppresses events from its own process group
  • Performance: Start with specific events rather than all events
  • Debugging: Use --debug to see raw event structure for filter creation
  • Categories: Use -c process for general process monitoring

15. πŸ” MCP TSC

TypeScript diagnostics checker that can run as both a CLI tool and an MCP server. It supports checking individual files, directories, or glob patterns against your project's tsconfig.json.

✨ Features
  • βœ… CLI Mode: Check TypeScript files from the command line
  • βœ… MCP Server Mode: Run as a persistent MCP server for AI assistants
  • βœ… Dual Checking Methods: Use TypeScript Compiler API or LSP
  • βœ… Glob Pattern Support: Check multiple files using patterns
  • βœ… Persistent LSP: In MCP mode, LSP stays running for faster checks
🎯 Quick Examples
# Check a single file
tools mcp-tsc src/app.ts

# Check all TypeScript files in a directory
tools mcp-tsc src

# Check files using glob patterns (use quotes!)
tools mcp-tsc 'src/**/*.ts'

# Use LSP for checking (faster for incremental checks)
tools mcp-tsc --lsp src/app.ts

# Show warnings too
tools mcp-tsc --warnings src/app.ts

# Run as MCP server for current directory
tools mcp-tsc --mcp .

# Run MCP server for a specific project
tools mcp-tsc --mcp /path/to/project
βš™οΈ Options
Option Description
--lsp Use typescript-language-server instead of compiler API
--warnings Show warnings in addition to errors
--mcp Run as MCP server (requires project path argument)
βš™οΈ MCP Configuration

Add to your MCP settings (e.g., Claude Desktop config):

{
    "mcpServers": {
        "typescript-diagnostics": {
            "command": "/path/to/GenesisTools/tools",
            "args": ["mcp-tsc", "--mcp", "/path/to/your/project"]
        }
    }
}
βš™οΈ MCP Tool: GetTsDiagnostics

Get TypeScript diagnostics for files matching the specified patterns.

Parameters:

  • files (required): String or array of file paths/glob patterns
    • Examples: "src/app.ts", "src/**/*.ts", ["file1.ts", "file2.ts"]
  • showWarnings (optional): Include warnings in addition to errors (default: false)

Example Requests:

// Single file
{ "files": "src/app.ts" }

// Glob pattern
{ "files": "src/**/*.ts" }

// Multiple files
{ "files": ["src/app.ts", "src/utils.ts"] }

// With warnings
{ "files": "src/app.ts", "showWarnings": true }
πŸ“‹ Exit Codes
  • 0: Success (no errors)
  • 1: Usage error or no files found
  • 2: TypeScript errors found

17. βš™οΈ MCP Manager

Cross-platform MCP (Model Context Protocol) server configuration manager. Manage MCP servers across multiple AI assistants (Claude Desktop, Gemini Code Assist, Codex, Cursor) with automatic backups, visual diffs, and safe operations.

✨ Features
  • 🎯 Multi-Provider Support: Manage MCP servers for Claude, Gemini, Codex, and Cursor
  • πŸ“¦ Unified Configuration: Single config file (~/.genesis-tools/mcp-manager/config.json) to manage all servers
  • πŸ’Ύ Automatic Backups: Creates backups before any changes with automatic restore on rejection
  • πŸ‘οΈ Visual Diffs: See exactly what changed before applying updates
  • βœ… Interactive Confirmation: Review changes and approve or revert
  • πŸ”„ Bidirectional Sync: Sync servers from unified config to providers, or import from providers to unified config
  • πŸ›‘οΈ Safe Operations: All changes are reversible with automatic backup restoration
🎯 Quick Examples
# Interactive mode - choose an action
tools mcp-manager

# Open/edit unified configuration file
tools mcp-manager config

# Sync servers from unified config to selected providers
tools mcp-manager sync

# Sync servers FROM providers TO unified config
tools mcp-manager sync-from-providers

# List all MCP servers across all providers
tools mcp-manager list

# Enable/disable servers
tools mcp-manager enable github
tools mcp-manager disable github

# Install a server from unified config to a provider
tools mcp-manager install github

# Show full configuration of a server
tools mcp-manager show github
βš™οΈ Commands
Command Description
config Open/create unified configuration file
sync Sync MCP servers from unified config to providers
sync-from-providers Sync servers FROM providers TO unified config
list List all MCP servers across all providers
enable Enable an MCP server in a provider
disable Disable an MCP server in a provider
disable-all Disable an MCP server for all projects (Claude)
install Install/add an MCP server to a provider
show Show full configuration of an MCP server
πŸ’‘ Workflow
  1. Create Unified Config: Edit unified config (~/.genesis-tools/mcp-manager/config.json) with all your MCP servers
  2. Sync Servers:
    • Sync FROM unified config TO providers: tools mcp-manager sync
    • Sync FROM providers TO unified config: tools mcp-manager sync-from-providers
  3. Review Changes: See diff and confirm or reject changes
  4. Automatic Backup: If rejected, automatically restores from backup
πŸ›‘οΈ Safety Features
  • Automatic Backups: Created before every write operation
  • Visual Diffs: See exactly what will change
  • Confirmation Prompts: Approve or reject changes
  • Automatic Restore: Reverts changes if rejected

Backups are stored in ~/.mcp-manager/backups/ with timestamps.

πŸ“‹ Supported Providers
  • Claude Desktop: ~/.claude.json (supports global and project-specific configs)
  • Gemini Code Assist: ~/.gemini/settings.json
  • Codex: ~/.codex/config.toml (TOML format)
  • Cursor: ~/.cursor/mcp.json

18. πŸ”„ Rename Commits

Interactively rename commit messages for the last N commits with a beautiful confirmation screen before rewriting history.

✨ Features
  • 🎯 Interactive prompts for each commit message
  • πŸ“‹ Confirmation screen showing old β†’ new mapping
  • πŸ”„ Automatic git rebase to rewrite history
  • ⚠️ Safety warnings about history rewriting
  • 🧹 Clean implementation with inline bash commands
🎯 Quick Examples
# Rename last 3 commits
tools rename-commits --commits 3

# Interactive mode (prompts for number)
tools rename-commits

# Show help
tools rename-commits --help
βš™οΈ Options
Option Alias Description
--commits, -c Number of recent commits to rename
--help, -h Show help message
⚠️ Important Notes

History Rewriting:

  • ⚠️ Only use on commits that haven't been pushed yet
  • πŸ”„ Changes commit hashes for all renamed commits and their descendants
  • πŸ’Ύ Consider creating a backup branch before renaming

Workflow:

  1. Specify number of commits (via -c or interactively)
  2. Review commits and provide new messages one-by-one
  3. Confirm changes in the summary screen
  4. Git rebase rewrites the commit history

19. πŸ”„ JSON/TOON Converter

Convert data between JSON and TOON (Token-Oriented Object Notation) formats. TOON can reduce token usage by 30-60% compared to standard JSON, making it ideal for LLM applications.

✨ Features
  • βœ… Auto-Detection: Automatically detects JSON or TOON format
  • βœ… Bidirectional Conversion: Convert JSON ↔ TOON seamlessly
  • βœ… Size Comparison: Compares TOON with compact JSON and returns the smaller format
  • βœ… File & Stdin Support: Works with files or piped input
  • βœ… Verbose Mode: Shows format detection, size comparison, and savings statistics
  • βœ… Error Handling: Clear, LLM-readable error messages
🎯 Quick Examples
# Auto-detect format and convert (file)
tools json data.json
tools json data.toon

# Auto-detect format and convert (stdin)
cat data.json | tools json
echo '{"key":"value"}' | tools json

# Force conversion to TOON
tools json data.json --to-toon
cat data.json | tools json --to-toon

# Force conversion to JSON
tools json data.toon --to-json
cat data.toon | tools json --to-json

# Verbose mode (shows statistics)
tools json data.json --verbose
βš™οΈ Options
Option Alias Description
--to-toon, -t Force conversion to TOON format
--to-json, -j Force conversion to JSON format
--verbose, -v Enable verbose logging (shows format detection, etc.)
--help, -h Show help message
πŸ’‘ How It Works

Auto-Detection Mode:

  • Detects input format (JSON or TOON)
  • Converts to the opposite format automatically
  • When converting JSON β†’ TOON, compares sizes and returns the smaller format

Forced Conversion Mode:

  • Validates input format matches the requested conversion
  • Provides clear error messages if format doesn't match
  • Returns the converted result

Size Comparison:

  • Compares TOON output with compact JSON (no whitespace)
  • Returns the format with fewer bytes
  • Logs statistics in verbose mode
πŸ“‹ Example Output

JSON Input:

{
    "users": [
        { "id": 1, "name": "Alice", "role": "admin" },
        { "id": 2, "name": "Bob", "role": "user" }
    ]
}

TOON Output:

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

Verbose Mode:

Detected format: JSON
Compact JSON size: 86 bytes
TOON size: 52 bytes
βœ“ TOON is 39.5% smaller (34 bytes saved)
Returning TOON format
🎯 Use Cases

For LLM Applications:

  • Before sending data: Convert JSON to TOON to reduce token usage
  • After receiving data: Convert TOON responses back to JSON
  • In pipelines: Automatically optimize data format

For Development:

  • Format comparison: See which format is more compact
  • Data transformation: Convert between formats for different tools

20. πŸ”· Azure DevOps

Fetch, track, and manage Azure DevOps work items, queries, and dashboards with intelligent caching and change detection.

✨ Features
  • πŸ”· Work Item Management: Fetch individual work items with full details, comments, and relations
  • πŸ“Š Query Support: Run Azure DevOps queries with change detection between runs
  • πŸ“ˆ Dashboard Integration: Extract queries from dashboards automatically
  • πŸ’Ύ Smart Caching: 5-minute cache for work items, 180-day cache for queries
  • πŸ” Change Detection: Automatically detects new items and updates (state, assignee, severity, title)
  • πŸ“ Task File Generation: Saves work items as JSON and Markdown files
  • πŸ—‚οΈ Category Organization: Organize work items into categories (remembered per item)
  • πŸ“¦ Batch Operations: Fetch multiple work items or download all items from a query
  • 🎯 Filtering: Filter queries by state and severity
  • πŸ“„ Multiple Output Formats: AI-optimized, Markdown, or JSON output
🎯 Quick Examples
# Configure for your project (first-time setup)
tools azure-devops --configure "https://dev.azure.com/MyOrg/MyProject/_workitems"

# Fetch a work item
tools azure-devops --workitem 12345

# Fetch multiple work items
tools azure-devops --workitem 12345,12346,12347

# Fetch a query with change detection
tools azure-devops --query d6e14134-9d22-4cbb-b897-b1514f888667

# Filter query results by state
tools azure-devops --query <id> --state Active,Development

# Download all work items from a query
tools azure-devops --query <id> --download-workitems

# Organize into categories (remembered per work item)
tools azure-devops --query <id> --download-workitems --category react19
tools azure-devops --workitem 12345 --category hotfixes

# Use task folders (each task in its own subfolder)
tools azure-devops --workitem 12345 --task-folders

# Get dashboard queries
tools azure-devops --dashboard <url|id>

# List all cached work items
tools azure-devops --list

# Force refresh (bypass cache)
tools azure-devops --workitem 12345 --force
βš™οΈ Options
Option Alias Description Default
--format <ai|md|json> - Output format ai
--force, --refresh - Force refresh, ignore cache -
--state <states> - Filter by state (comma-separated) -
--severity <sev> - Filter by severity (comma-separated) -
--download-workitems - With --query: download all work items to tasks/ -
--category <name> - Save to tasks// (remembered per work item) -
--task-folders - Save in tasks// subfolder (only for new files) -
--help -h Show help message -
πŸ”§ First-Time Setup

Prerequisites:

  1. Install Azure CLI: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
  2. Install Azure DevOps extension:
    az extension add --name azure-devops
  3. Login with device code:
    az login --allow-no-subscriptions --use-device-code

Configure:

tools azure-devops --configure "https://dev.azure.com/MyOrg/MyProject/_workitems"

This auto-detects org, project, and projectId from the URL and saves to .claude/azure/config.json.

πŸ“‹ Storage Structure

Global Cache (~/.genesis-tools/azure-devops/cache/):

  • Query cache: 180 days TTL
  • Work item cache: 5 minutes TTL
  • Dashboard cache: 180 days TTL

Project Storage (.claude/azure/):

  • config.json - Project configuration
  • tasks/ - Work item files (JSON + Markdown)
    • Flat: {id}-{Slug-Title}.json
    • With category: {category}/{id}-{Slug-Title}.json
    • With task folders: {id}/{id}-{Slug-Title}.json

Config search: Searches up to 3 parent levels from current directory.

πŸ’‘ Key Features

Change Detection:

  • Detects new work items added to queries
  • Highlights changes to state, assignee, severity, title
  • Shows before/after values in AI format

Category Memory:

  • Categories are remembered per work item in global cache
  • Future fetches automatically use the same category

Task Folders:

  • Only applies to new files
  • Existing files stay in their current location
  • Prevents accidental reorganization

Batch Download:

  • Download all work items from a query with one command
  • Automatically fetches full details (comments, relations) for each item
πŸ€– Claude AI Skill

This tool includes a Claude AI skill that enables AI assistants to automatically use the Azure DevOps tool when users ask about work items, queries, or tasks.

Installing the Skill:

# Using skill-installer (if available)
tools skill-installer install azure-devops

# Or manually copy the skill file
cp skills/azure-devops.skill ~/.codex/skills/

Skill Features:

  • Automatic tool invocation when users mention work items, queries, or Azure DevOps URLs
  • Work item analysis with codebase exploration agents
  • Automatic query handling and task organization

The skill triggers on phrases like "get workitem", "fetch task", "show query", "download tasks", "analyze workitem", "analyze task", or Azure DevOps URLs.


11. πŸ€– Git Commit

Generate AI-powered commit messages for your staged changes, with optional detailed descriptions and push functionality!

✨ Features
  • πŸ€– Generates 4 commit message suggestions using Google Gemini AI
  • πŸ“ Interactive commit message selection
  • πŸ“ƒ Optional detailed commit messages with body text (--detail)
  • πŸ“¦ Optional staging of all changes (--stage)
  • πŸš€ Optional automatic push after commit
  • πŸ” Shows diff preview in verbose mode
🎯 Quick Examples
# Generate commit for already staged changes
tools git-commit

# Stage all changes first, then commit
tools git-commit --stage

# Generate detailed commit messages with body text
tools git-commit --detail

# Stage changes and generate detailed commits
tools git-commit --stage --detail

# Verbose mode to see diff preview
tools git-commit --verbose
βš™οΈ Options
Option Alias Description
--stage -s Stage all changes before committing
--detail -d Generate detailed commit messages with body text
--verbose -v Enable verbose logging
--help -h Show help message
βš™οΈ Configuration

Required Environment Variable:

export OPENROUTER_API_KEY=your_openrouter_api_key

The tool uses Google's Gemini 2.0 Flash Lite model via OpenRouter for fast, high-quality commit messages.

πŸ“‹ Workflow
  1. Stage Changes (Optional) β†’ Runs git add . if --stage is used
  2. Analyze Diff β†’ Examines staged changes
  3. Generate Messages β†’ AI creates 4 contextual commit messages
    • With --detail: Each message includes a summary line and detailed body
    • Without --detail: Just concise summary lines
  4. Select Message β†’ Choose the best one interactively
  5. Commit β†’ Creates commit with chosen message
  6. Push (Optional) β†’ Asks if you want to push to remote

Useful notes

πŸ”Œ MCP (Model Context Protocol)

🌐 Global MCP Server Installation

For system-wide access to MCP servers:

bun add --global \
  @modelcontextprotocol/inspector \
  @modelcontextprotocol/server-sequential-thinking \
  @modelcontextprotocol/server-filesystem \
  @modelcontextprotocol/server-github \
  @modelcontextprotocol/server-puppeteer \
  @modelcontextprotocol/server-brave-search \
  @executeautomation/playwright-mcp-server \
  @eslint/mcp \
  interactive-mcp

πŸ”§ MCP Configuration Example for Claude Desktop

πŸ“Œ Important: Claude Desktop seems to lose ability to find tools in the $PATH. For that reason, the "command" needs to have the FULL path to the tool (to find where it is, run which tools or which mcp-server-github for example)

Here's a complete MCP example configuration for Claude Desktop:

{
    "mcpServers": {
        "github": {
            "command": "/Users/YourName/.bun/bin/mcp-server-github",
            "args": [],
            "env": {
                "GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_...."
            }
        },
        "ripgrep": {
            "command": "/Users/YourName/PathTo/GenesisTools/tools",
            "args": ["mcp-ripgrep"],
            "env": {
                "SHELL": "/bin/zsh"
            }
        },
        "sequential-thinking": {
            "command": "/opt/homebrew/bin/mcp-server-sequential-thinking",
            "args": [],
            "env": {}
        },
        "puppeteer": {
            "command": "/Users/YourName/.bun/bin/mcp-server-puppeteer",
            "args": [],
            "env": {}
        },
        "brave-search": {
            "command": "/Users/YourName/.bun/bin/mcp-server-brave-search",
            "env": {
                "BRAVE_API_KEY": "BSAIV......"
            }
        },
        "filesystem": {
            "command": "/Users/YourName/.bun/bin/mcp-server-filesystem",
            "args": ["/Users/YourName/PathTo/Projects/"]
        },
        "context": {
            "command": "context7-mcp"
        },
        "eslint-mcp": {
            "type": "stdio",
            "command": "/Users/Yourname/.bun/bin/bun",
            "args": ["x", "@eslint/mcp@latest"],
            "env": {}
        }
    },
    "globalShortcut": ""
}

πŸ”§ MCP Configuration Example for Cursor

Here's a complete MCP configuration for Cursor:

{
    "mcpServers": {
        "ripgrep": {
            "command": "tools mcp-ripgrep",
            "args": ["--root", "/Users/YourName/Projects/"],
            "env": {}
        },
        "github": {
            "command": "mcp-server-github",
            "args": [],
            "env": {
                "GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_..."
            }
        },
        "sequential-thinking": {
            "command": "mcp-server-sequential-thinking",
            "args": [],
            "env": {}
        },
        "puppeteer": {
            "command": "mcp-server-puppeteer",
            "args": [],
            "env": {}
        },
        "brave-search": {
            "command": "mcp-server-brave-search",
            "env": {
                "BRAVE_API_KEY": "..."
            }
        },
        "context": {
            "command": "context7-mcp"
        },
        "filesystem": {
            "command": "mcp-server-filesystem",
            "args": ["/Users/YourName/Allowed/Directory/"]
        }
    }
}

🐍 Python Package Management Tips

Install packages with isolated environments using pipx
# Install pipx
brew install python-argcomplete pipx && pipx ensurepath

# Optional: Enable global access
sudo pipx ensurepath --global

# For autocomplete
pipx completions
echo 'eval "$(register-python-argcomplete pipx)"' >> ~/.zshrc
source ~/.zshrc
Monitor Process Usage
# Install psrecord
pipx install 'psrecord[plot]'

# Record process usage
psrecord <pid> --interval 1 --duration 60 --plot usage.png

21. 🌳 Git Rebase Multiple

Safe branch hierarchy rebasing with full rollback capability. Rebase a parent branch and automatically rebase all its child branches using correct fork points.

🎯 Quick Examples
# Interactive mode (recommended)
tools git-rebase-multiple

# Show current state and backups
tools git-rebase-multiple --status

# Preview plan without making changes
tools git-rebase-multiple --dry-run

# Abort and restore all branches
tools git-rebase-multiple --abort

# Continue after resolving conflicts
tools git-rebase-multiple --continue

# Cleanup backup refs when done
tools git-rebase-multiple --cleanup
βš™οΈ Options
Option Alias Description
--help -h Show help message
--abort -a Abort and restore all branches
--continue -c Continue after resolving conflicts
--status -s Show current state and backups
--cleanup Remove all backup refs and fork tags
--restore <branch> -r Restore single branch from backup
--dry-run Show execution plan without running
✨ Features
  • Backup Refs: Creates refs/backup/grm/<branch> refs that survive git gc
  • Fork Point Tags: Saves fork/<child> tags for accurate --onto rebasing
  • State Persistence: Tracks progress in .git/rebase-multiple-state.json
  • Verbose Output: Shows every git command being executed
  • Full Rollback: Abort at any point and restore all branches to original state
  • Auto-Detection: Automatically finds child branches of the parent being rebased
πŸ“– Example Scenario
Before:
  main:     A---B---C---D
                 \
  feature:        E---F
                       \
  child-1:              G---H
                       \
  child-2:              I

After rebasing feature onto main (with children):
  main:     A---B---C---D
                         \
  feature:                E'--F'
                               \
  child-1:                      G'--H'
                               \
  child-2:                      I'

Star History Chart

🌟 Built with ❀️ by developers, for developers

⭐ Star this repo β€’ πŸ› Report Bug β€’ ✨ Contribute

About

Useful tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •