diff --git a/README.md b/README.md index 37f4752..f267db1 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ alias: metool --- -# MeTool (mt) – A Propagation tray for Ideas +# MeTool (mt) – A Propagation Tray for Ideas ![A place for my code](docs/images/20250721011600.png) -MeTool (`mt`) is a lightweight, modular system designed to capture, organize, -and evolve my shell environment. Like a gardener's propagation tray for -seedlings, it provides the perfect environment where scripts, functions, and -tools can take root and grow before being transplanted into standalone -projects. +MeTool (`mt`) is a modular system for organizing all my code, scripts, and configuration. Each piece of functionality lives in its own package with a clear structure, making it easy to find, edit, share, and evolve my tools over time. + +Whether capturing a quick shell hack, building a complete application, or managing system services, metool keeps everything organized and accessible—for both humans and AI assistants. + +Packages can include a `SKILL.md` file that gives AI assistants like Claude Code the knowledge to help work with that package's tools and workflows. ## Key Features @@ -21,34 +21,46 @@ projects. ## Core Commands -- `cd` - Change to mt root or specified target -- `components` - List all package components (bin, shell, config, etc.) +- `cd` - Change to MT_ROOT, module, package, or executable - `deps` - Check metool dependencies (--install to auto-install on macOS) -- `disable` - Disable systemd service(s) while preserving service files +- `doctor` - Run system health diagnostics - `edit` - Edit function, executable or file -- `enable` - Enable systemd service(s) from a package - `git` - Git repository management commands: - - `clone` - Clone a git repository to a canonical location (or show status if already cloned) + - `add` - Add repository to .repos.txt manifest + - `clone` - Clone a git repository to a canonical location + - `pull` - Pull repositories from repos.txt manifest file + - `push` - Push local commits for repositories in manifest - `repos` - List git repositories - - `sync` - Sync repositories from repos.txt manifest file - - `trusted` - Check if repository is trusted or list patterns -- `install` - Symlink package directories: bin, config, shell -- `modules` - List all metool modules (collections of packages) -- `packages` - List all metool packages with their parent modules + - `trusted` - Check if repository is trusted +- `module` - Module management commands: + - `list` - List modules in working set + - `add` - Add module to working set + - `remove` - Remove module from working set + - `edit` - Edit module + - `update` - Update module(s) from git remote +- `package` - Package management commands: + - `list` - List packages in working set + - `add` - Add package to working set + - `remove` - Remove package from working set + - `edit` - Edit package + - `install` - Install package components + - `uninstall` - Uninstall package (remove symlinks) + - `new` - Create new package from template + - `service` - Manage package services - `reload` - Reload metool - `update` - Update metool from git Use `-h` or `--help` for command usage. + ## Real-World Value -- **Capture Ideas Fast**: Turn quick shell hacks into organized, reusable tools -- **Share Selectively**: Keep private scripts private, share what's useful -- **Evolve Naturally**: Start simple, refactor safely, extract when ready -- **Stay Organized**: Never lose track of where that useful function lives +- **Capture Ideas Fast**: Turn quick hacks into organized, reusable packages +- **Share Selectively**: Keep private packages private, share what's useful +- **Stay Organized**: Never lose track of where useful code lives +- **Works at Any Scale**: From shell functions to complete applications with systemd/launchd services -MeTool brings structure to shell creativity while keeping everything accessible -and hackable. +MeTool brings structure to code while keeping everything accessible and hackable. ## Prerequisites diff --git a/SKILL.md b/SKILL.md index b706bc9..71307dd 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,13 +1,13 @@ --- name: metool -description: Package management system for organizing, installing, and managing shell scripts, dotfiles, and development tools. This skill should be used when creating, modifying, reviewing, or installing metool packages, working with metool commands and package structure, or creating Claude Code skills for metool packages. +description: Package management for modular code organization. This skill should be used when creating, installing, or modifying metool packages, working with package structure conventions, or adding Claude Code skills to packages. --- # Metool Package Management ## Overview -Metool (mt) is a modular system for managing shell environments through packages. It provides a "propagation tray for ideas" - a place where scripts, functions, and tools can be organized, tested, and evolved before becoming standalone projects. +Metool (mt) organizes code through packages - self-contained units with scripts, functions, configuration, and documentation. Packages are organized in modules and installed via GNU Stow symlinks. From shell utilities to complete applications, all code follows the same structure. ## When to Use This Skill diff --git a/shell/completions/mt.bash b/shell/completions/mt.bash index 42d1bfe..98af0ae 100644 --- a/shell/completions/mt.bash +++ b/shell/completions/mt.bash @@ -51,7 +51,7 @@ _mt_completions() { local prev="${COMP_WORDS[COMP_CWORD - 1]}" # Get all mt commands from libexec - local mt_commands="cd edit git module package reload update deps" + local mt_commands="cd deps doctor edit git module package reload update" if [[ -d "${MT_ROOT}/libexec" ]]; then local libexec_cmds=$(find "${MT_ROOT}/libexec" -type f -name "mt-*" -exec basename {} \; | sed 's/^mt-//') mt_commands+=" ${libexec_cmds}" diff --git a/shell/mt b/shell/mt index 864b742..2c9a8cf 100644 --- a/shell/mt +++ b/shell/mt @@ -154,6 +154,8 @@ mt() { echo echo "Core Commands:" echo " cd [TARGET] Change to MT_ROOT, module, package, or executable" + echo " deps [--install] Check metool dependencies (--install to auto-install on macOS)" + echo " doctor [OPTIONS] Run system health diagnostics" echo " edit TARGET Edit function, executable or file" echo " git Git repository management" echo " add [REPO] [ALIAS] Add repository to .repos.txt manifest" @@ -177,10 +179,8 @@ mt() { echo " uninstall PKG [OPTS] Uninstall package (remove symlinks)" echo " new NAME [PATH] Create new package from template" echo " service CMD PKG Manage package services" - echo " update Update metool from git" echo " reload Reload metool" - echo " deps [--install] Check metool dependencies (--install to auto-install on macOS)" - echo " doctor [OPTIONS] Run system health diagnostics" + echo " update Update metool from git" echo " -h, --help Show this help message and exit" echo ;;