diff --git a/README.md b/README.md index 04fb2c0..8318ddd 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ pip install -e ".[dev]" ### Requirements - Python 3.10+ -- At least one AI CLI tool installed (see [Provider Setup](docs/PROVIDERS.md)) +- At least one AI CLI tool installed (see [Provider Setup](docs/reference/providers.md)) - PySide6 (included automatically - requires display server on Linux) ### Post-Install @@ -127,6 +127,7 @@ Opens the graphical interface where you can create and manage tools visually. Fe ### CLI Mode ```bash +# Tool Management cmdforge list # List all tools cmdforge create mytool # Create new tool cmdforge edit mytool # Edit in $EDITOR @@ -135,6 +136,30 @@ cmdforge run mytool # Run a tool cmdforge test mytool # Test with mock provider cmdforge check mytool # Check dependencies (meta-tools) cmdforge refresh # Update executable wrappers +cmdforge docs mytool # View/create tool documentation + +# Registry +cmdforge registry search "keyword" # Search for tools +cmdforge registry install owner/tool # Install a tool +cmdforge registry publish mytool # Publish your tool +cmdforge registry status # Check moderation status +cmdforge registry my-tools # List your published tools + +# Collections (curated tool bundles) +cmdforge collections list # List available collections +cmdforge collections info starter # View collection details +cmdforge collections install starter # Install all tools in a collection + +# Project Dependencies +cmdforge init # Create cmdforge.yaml manifest +cmdforge add owner/tool # Add tool as dependency +cmdforge install # Install all dependencies +cmdforge deps # Check dependency status + +# Configuration +cmdforge config show # Show current config +cmdforge config connect username # Connect to registry account +cmdforge config disconnect # Disconnect from registry ``` ### Running Tools @@ -282,7 +307,7 @@ CmdForge works with any AI CLI tool. We've profiled 12 providers: | `claude-opus` | 18s | 4/4 | $$$ | Highest quality | | `gemini` | 91s | 3/4 | Paid | Large docs (1M tokens) | -See [docs/PROVIDERS.md](docs/PROVIDERS.md) for setup instructions. +See [Provider Setup](docs/reference/providers.md) for setup instructions. ## Tool Anatomy @@ -374,7 +399,7 @@ output: "{translated}" Check dependencies before running: `cmdforge check my-meta-tool` -See [docs/META_TOOLS.md](docs/META_TOOLS.md) for full documentation. +See [Meta-Tools Design](docs/reference/meta-tools.md) for full documentation. ### Variables @@ -384,6 +409,125 @@ See [docs/META_TOOLS.md](docs/META_TOOLS.md) for full documentation. | `{argname}` | Custom argument value | | `{output_var}` | Output from previous step (prompt, code, or tool) | +## Project Dependencies + +For projects that use multiple CmdForge tools, you can declare dependencies in a `cmdforge.yaml` manifest: + +```yaml +# cmdforge.yaml +name: my-project +description: My awesome project +dependencies: + - official/summarize + - official/translate + - myuser/custom-tool@^1.0.0 +``` + +### Managing Dependencies + +```bash +# Initialize a new manifest +cmdforge init + +# Add a dependency +cmdforge add official/summarize +cmdforge add myuser/tool@^2.0.0 # With version constraint + +# Install all dependencies +cmdforge install + +# Check dependency status +cmdforge deps +``` + +This ensures all required tools are available before running your project's scripts. + +## Collections + +Collections are curated bundles of related tools. Install an entire workflow with one command: + +```bash +# List available collections +cmdforge collections list + +# View what's in a collection +cmdforge collections info starter +# Output: +# starter - Essential tools for getting started +# Tools: summarize, translate, fix-grammar, explain-error, commit-msg +# Total: 5 tools + +# Install all tools in a collection +cmdforge collections install starter +``` + +### Available Collections + +| Collection | Description | Tools | +|------------|-------------|-------| +| `starter` | Essential tools for beginners | 5 | +| `developer` | Code review and development | 8 | +| `writer` | Writing and editing tools | 6 | +| `data` | Data extraction and conversion | 7 | + +## Registry + +The CmdForge Registry at [cmdforge.brrd.tech](https://cmdforge.brrd.tech) hosts community tools. + +### Searching Tools + +```bash +# Basic search +cmdforge registry search "summarize" + +# Filter by category +cmdforge registry search --category Developer + +# Sort by popularity +cmdforge registry search --sort downloads + +# Show only new tools (last 7 days) +cmdforge registry search --new + +# Advanced filters +cmdforge registry search --owner official --min-downloads 100 +``` + +### Publishing Tools + +```bash +# Connect your account (opens browser for authentication) +cmdforge config connect yourusername + +# Publish a tool +cmdforge registry publish mytool + +# Check moderation status +cmdforge registry status +# Output: +# mytool: pending (submitted 2 hours ago) +# other-tool: approved + +# Sync moderation feedback to your local tool +cmdforge registry status --sync +``` + +Published tools go through moderation before appearing publicly. You'll receive feedback if changes are requested. + +### Tool Documentation + +Each tool can have its own README: + +```bash +# View tool documentation +cmdforge docs mytool + +# Create/edit documentation (opens in $EDITOR) +cmdforge docs mytool --edit +``` + +The documentation is stored as `README.md` in the tool's directory (`~/.cmdforge/mytool/README.md`). + ## Shell Integration ### Git Hooks @@ -668,16 +812,14 @@ cmdforge providers test claude ## Links ### User Documentation -- [Installation Guide](docs/INSTALL.md) -- [Provider Setup](docs/PROVIDERS.md) -- [Example Tools](docs/EXAMPLES.md) +- [Provider Setup](docs/reference/providers.md) +- [Example Tools](docs/reference/examples.md) - [User Wiki](wiki/Home.md) ### Developer Documentation -- [Project Overview](docs/PROJECT.md) - Start here to understand the codebase -- [Design Document](docs/DESIGN.md) -- [Meta-Tools Design](docs/META_TOOLS.md) - Tools that call other tools -- [Registry API Design](docs/REGISTRY.md) -- [Web UI Design](docs/WEB_UI.md) -- [Deployment Guide](docs/DEPLOYMENT.md) -- [Architecture Diagrams](docs/diagrams/) +- [Project Overview](docs/overview.md) - Start here to understand the codebase +- [Design Document](docs/reference/design.md) +- [Meta-Tools Design](docs/reference/meta-tools.md) - Tools that call other tools +- [Collections](docs/reference/collections.md) - Curated tool bundles +- [Registry API Design](docs/reference/registry-spec.md) +- [Web UI Design](docs/reference/web-ui-spec.md) diff --git a/wiki/Home.md b/wiki/Home.md index 2032099..b854033 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -342,9 +342,96 @@ git diff --stat | awk '$3 > 100 {print $1}' | xargs cat | review-code --- +## Collections + +Collections are curated bundles of related tools. Get started quickly by installing a whole workflow: + +```bash +# See available collections +cmdforge collections list + +# Learn what's in a collection +cmdforge collections info starter + +# Install all tools in a collection +cmdforge collections install starter +``` + +### Popular Collections + +| Collection | What you get | +|------------|--------------| +| `starter` | summarize, translate, fix-grammar, explain-error, commit-msg | +| `developer` | Code review, test generation, error explanation | +| `writer` | Grammar, tone, simplification, expansion tools | +| `data` | JSON extraction, CSV conversion, data analysis | + +--- + +## Registry + +The [CmdForge Registry](https://cmdforge.brrd.tech) hosts community-created tools. + +### Finding Tools + +```bash +# Search by keyword +cmdforge registry search "code review" + +# Browse by category +cmdforge registry search --category Developer + +# Find popular tools +cmdforge registry search --sort downloads --popular + +# Install a tool +cmdforge registry install official/summarize +``` + +### Publishing Your Tools + +Share your tools with the community: + +```bash +# Connect to your registry account +cmdforge config connect yourusername +# (Opens browser for authentication) + +# Publish a tool +cmdforge registry publish mytool + +# Check status (tools are moderated) +cmdforge registry status +``` + +--- + +## Project Dependencies + +For projects using multiple tools, create a `cmdforge.yaml` manifest: + +```yaml +name: my-project +dependencies: + - official/summarize + - official/translate +``` + +Then manage dependencies: + +```bash +cmdforge init # Create manifest +cmdforge add tool # Add dependency +cmdforge install # Install all +cmdforge deps # Check status +``` + +--- + ## Links - **Repository**: https://gitea.brrd.tech/rob/CmdForge +- **Registry**: https://cmdforge.brrd.tech - **Docker Image**: `gitea.brrd.tech/rob/cmdforge:latest` - **Issues**: https://gitea.brrd.tech/rob/CmdForge/issues