Simplify your workflow with tools for Git operations, AI file analysis, release notes generation, and more!
GenesisTools includes a Claude Code plugin with skills and commands to enhance your AI-assisted development workflow.
# 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| 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
π Important: BunJS is required as some tools use Bun-specific APIs
# Install Bun if you haven't already
curl -fsSL https://bun.sh/install | bashcd ~
# 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# List all available tools
tools
# Pick a tool from the interactive list - it auto-copies to clipboard! π| 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 |
| 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 |
| 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 |
| Tool | Description |
|---|---|
| NPM Package Diff | π¨ Beautiful package version comparisons |
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 |
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
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π 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-lengthMonitor 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 watchmanReal-time file monitoring with powerful glob patterns - like
tail -fon 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 |
π 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.
π 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
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 -0Lightning-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": {}
}
}
}Control AI responses with a WebSocket-based hold/release mechanism.
π§ How It Works
- Start Server β Collects your messages
- AI Connects β Via client tool
- You Provide Input β Through editor interface
- 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 completeFetches 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)
FetchWebRawFetchWebMarkdownFetchJina
Each returns { content: [{ type: "text", text }], meta: { tokens } }.
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")
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
- Starts an fsevents watcher on the specified path
- Collects all file system events during the monitoring period
- Aggregates events by parent directory
- Displays the top N directories with the most activity
- 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
--watchersflag requires root privileges to runfs_usage - Use
--verboseto see events in real-time as they occur
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 matchSupported 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/eslogger3. Run with sudo: ESLogger requires root privileges
sudo tools macos-eslogger -e exec4. 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,echodon'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
--debugto see raw event structure for filter creation - Categories: Use
-c processfor general process monitoring
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"]
- Examples:
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 found2: TypeScript errors found
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
- Create Unified Config: Edit unified config (
~/.genesis-tools/mcp-manager/config.json) with all your MCP servers - Sync Servers:
- Sync FROM unified config TO providers:
tools mcp-manager sync - Sync FROM providers TO unified config:
tools mcp-manager sync-from-providers
- Sync FROM unified config TO providers:
- Review Changes: See diff and confirm or reject changes
- 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
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:
- Specify number of commits (via
-cor interactively) - Review commits and provide new messages one-by-one
- Confirm changes in the summary screen
- Git rebase rewrites the commit history
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
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:
- Install Azure CLI: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
- Install Azure DevOps extension:
az extension add --name azure-devops
- 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 configurationtasks/- 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
- Flat:
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.
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_keyThe tool uses Google's Gemini 2.0 Flash Lite model via OpenRouter for fast, high-quality commit messages.
π Workflow
- Stage Changes (Optional) β Runs
git add .if--stageis used - Analyze Diff β Examines staged changes
- 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
- With
- Select Message β Choose the best one interactively
- Commit β Creates commit with chosen message
- Push (Optional) β Asks if you want to push to remote
π MCP (Model Context Protocol)
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π 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 toolsorwhich mcp-server-githubfor 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": ""
}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/"]
}
}
}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 ~/.zshrcMonitor Process Usage
# Install psrecord
pipx install 'psrecord[plot]'
# Record process usage
psrecord <pid> --interval 1 --duration 60 --plot usage.pngSafe 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--ontorebasing - 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'