Add comprehensive documentation for Collections, Project Dependencies, Provider Setup, and CLI Reference

- Add Tool Collections tutorial covering bundles, installation, and creating collections
- Add Project Dependencies tutorial for cmdforge.yaml manifests and team workflows
- Add Provider Setup guide with interactive installer and testing commands
- Add complete CLI Reference for all commands
- Update TOC with new sections

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
rob 2026-01-18 00:54:36 -04:00
parent d0581daa35
commit cdc910d7b6
1 changed files with 925 additions and 2 deletions

View File

@ -3230,6 +3230,923 @@ providers:
("next", "Next Steps"),
],
},
"collections": {
"title": "Tool Collections",
"description": "Install curated bundles of tools with a single command",
"content": """
<p class="lead">Why install tools one at a time? Collections are curated bundles of tools that work
great together. One command gives you a complete toolkit for a specific workflowwhether you're
a developer, writer, or data wrangler.</p>
<div class="bg-indigo-50 border-l-4 border-indigo-500 p-4 my-6">
<p class="font-semibold text-indigo-800">What You'll Learn</p>
<ul class="mt-2 text-indigo-700">
<li>What collections are and why they're useful</li>
<li>Browsing available collections</li>
<li>Installing a complete toolkit in one command</li>
<li>Understanding pinned versions</li>
</ul>
</div>
<h2 id="what-are-collections">What Are Collections?</h2>
<p>Think of collections like playlists for your terminal. Someone has already done the work of finding
tools that complement each other, testing them together, and bundling them up. You just hit play.</p>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 my-6">
<div class="bg-white border rounded-lg p-4 text-center">
<div class="text-3xl mb-2">🎯</div>
<p class="font-bold text-gray-900">Curated</p>
<p class="text-sm text-gray-600">Hand-picked tools that work well together</p>
</div>
<div class="bg-white border rounded-lg p-4 text-center">
<div class="text-3xl mb-2"></div>
<p class="font-bold text-gray-900">One Command</p>
<p class="text-sm text-gray-600">Install everything at once</p>
</div>
<div class="bg-white border rounded-lg p-4 text-center">
<div class="text-3xl mb-2">🔒</div>
<p class="font-bold text-gray-900">Version Pinned</p>
<p class="text-sm text-gray-600">Tested versions that work together</p>
</div>
</div>
<h2 id="browsing">Browsing Collections</h2>
<p>See what's available:</p>
<pre><code class="language-bash"># List all collections
cmdforge collections list</code></pre>
<p>You'll see something like:</p>
<pre><code class="language-text">Available collections (4):
starter
The Starter Pack
Essential tools for getting started with CmdForge
Tools: 5
developer
Developer Toolkit
Code review, testing, and documentation tools
Tools: 8
writer
Writer's Workshop
Grammar, tone, and content tools for writers
Tools: 6
data
Data Wrangler
JSON, CSV, and data extraction tools
Tools: 7
Install a collection with: cmdforge collections install <name></code></pre>
<h2 id="collection-details">Viewing Collection Details</h2>
<p>Before installing, see exactly what you'll get:</p>
<pre><code class="language-bash"># See what's in a collection
cmdforge collections info starter</code></pre>
<p>Output:</p>
<pre><code class="language-text">The Starter Pack
==================================================
Essential tools for getting started with CmdForge.
Perfect for new users who want a solid foundation.
Maintainer: official
Tags: beginner, essential, getting-started
Tools (5):
- official/summarize
- official/translate
- official/fix-grammar
- official/explain-error
- official/commit-msg
Install all: cmdforge collections install starter</code></pre>
<h2 id="installing">Installing a Collection</h2>
<p>Ready to go? One command:</p>
<pre><code class="language-bash"># Install all tools in a collection
cmdforge collections install starter</code></pre>
<p>Watch as each tool is downloaded and installed:</p>
<pre><code class="language-text">Installing collection: The Starter Pack
Tools to install: 5
Installing official/summarize... v1.2.0
Installing official/translate... v1.1.0
Installing official/fix-grammar... v1.0.3
Installing official/explain-error... v1.1.2
Installing official/commit-msg... v2.0.0
Installed: 5/5
Collection 'starter' installed successfully!</code></pre>
<p>All five tools are now available as commands. Try them:</p>
<pre><code class="language-bash">echo "teh quick brown fox" | fix-grammar
# The quick brown fox</code></pre>
<h2 id="pinned-versions">Pinned Versions</h2>
<p>Collections can pin specific versions of tools that are known to work well together. Use the
<code>--pinned</code> flag to install these exact versions:</p>
<pre><code class="language-bash"># Install with pinned (tested) versions
cmdforge collections install developer --pinned</code></pre>
<p>This is useful when you need reproducible setups across machines or team members.</p>
<h2 id="popular-collections">Popular Collections</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Collection</th>
<th class="px-4 py-2 text-left">Description</th>
<th class="px-4 py-2 text-left">Tools</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>starter</code></td>
<td class="px-4 py-2">Essential tools for beginners</td>
<td class="px-4 py-2">summarize, translate, fix-grammar, explain-error, commit-msg</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>developer</code></td>
<td class="px-4 py-2">Code review and development tools</td>
<td class="px-4 py-2">review-code, explain-code, gen-tests, docstring, plus more</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>writer</code></td>
<td class="px-4 py-2">Content creation and editing</td>
<td class="px-4 py-2">fix-grammar, tone-shift, simplify, expand, eli5, tldr</td>
</tr>
<tr>
<td class="px-4 py-2"><code>data</code></td>
<td class="px-4 py-2">Data extraction and transformation</td>
<td class="px-4 py-2">json-extract, json2csv, extract-emails, csv-insights, sql-from-text</td>
</tr>
</tbody>
</table>
<h2 id="next">Next Steps</h2>
<ul>
<li><a href="/docs/registry-usage">Browse individual tools</a> - Find more specialized tools</li>
<li><a href="/docs/project-deps">Set up project dependencies</a> - Lock tools for your team</li>
<li><a href="/docs/first-tool">Create your own tools</a> - Build on top of what you've installed</li>
</ul>
""",
"headings": [
("what-are-collections", "What Are Collections?"),
("browsing", "Browsing Collections"),
("collection-details", "Viewing Collection Details"),
("installing", "Installing a Collection"),
("pinned-versions", "Pinned Versions"),
("popular-collections", "Popular Collections"),
("next", "Next Steps"),
],
},
"project-deps": {
"title": "Project Dependencies",
"description": "Lock tool versions for reproducible team workflows",
"content": """
<p class="lead">Working on a project with a team? Need the same tools on your CI server?
Project dependencies let you declare which tools your project needs, pin their versions,
and install everything with a single command. Think <code>package.json</code> for your AI tools.</p>
<div class="bg-indigo-50 border-l-4 border-indigo-500 p-4 my-6">
<p class="font-semibold text-indigo-800">What You'll Learn</p>
<ul class="mt-2 text-indigo-700">
<li>Creating a <code>cmdforge.yaml</code> manifest</li>
<li>Adding and managing dependencies</li>
<li>Version constraints and pinning</li>
<li>Installing dependencies for your project</li>
<li>Overriding providers for different environments</li>
</ul>
</div>
<h2 id="why">Why Project Dependencies?</h2>
<p>Without dependency management:</p>
<ul>
<li>"It works on my machine" - but not your teammate's</li>
<li>Tool updates break your workflow unexpectedly</li>
<li>Setting up a new machine means remembering every tool</li>
<li>CI/CD environments are a mystery</li>
</ul>
<p>With <code>cmdforge.yaml</code>:</p>
<ul>
<li>Everyone gets the same tools at the same versions</li>
<li>New team members run one command and they're ready</li>
<li>CI/CD setup is just <code>cmdforge install</code></li>
<li>You control when to upgrade</li>
</ul>
<h2 id="creating">Creating a Manifest</h2>
<p>Initialize a new manifest in your project:</p>
<pre><code class="language-bash"># Create cmdforge.yaml in current directory
cmdforge init
# With custom project name and version
cmdforge init --name my-project --version 1.0.0</code></pre>
<p>This creates a <code>cmdforge.yaml</code> file:</p>
<pre><code class="language-yaml">name: my-project
version: 1.0.0
dependencies: []</code></pre>
<h2 id="adding-deps">Adding Dependencies</h2>
<p>Add tools your project needs:</p>
<pre><code class="language-bash"># Add a tool (installs it too)
cmdforge add official/summarize
# Add with version constraint
cmdforge add official/translate --version "^1.0.0"
# Add without installing (just record it)
cmdforge add official/fix-grammar --no-install</code></pre>
<p>Your manifest now looks like:</p>
<pre><code class="language-yaml">name: my-project
version: 1.0.0
dependencies:
- name: official/summarize
version: "*"
- name: official/translate
version: "^1.0.0"
- name: official/fix-grammar
version: "*"</code></pre>
<h2 id="version-constraints">Version Constraints</h2>
<p>Control which versions are acceptable:</p>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Constraint</th>
<th class="px-4 py-2 text-left">Meaning</th>
<th class="px-4 py-2 text-left">Example Matches</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>*</code></td>
<td class="px-4 py-2">Any version (latest)</td>
<td class="px-4 py-2">1.0.0, 2.0.0, 3.5.2</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>1.2.3</code></td>
<td class="px-4 py-2">Exact version only</td>
<td class="px-4 py-2">1.2.3</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>^1.2.0</code></td>
<td class="px-4 py-2">Compatible (same major)</td>
<td class="px-4 py-2">1.2.0, 1.3.0, 1.9.9</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>~1.2.0</code></td>
<td class="px-4 py-2">Approximate (same minor)</td>
<td class="px-4 py-2">1.2.0, 1.2.1, 1.2.9</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>>=1.0.0</code></td>
<td class="px-4 py-2">At least this version</td>
<td class="px-4 py-2">1.0.0, 1.5.0, 2.0.0</td>
</tr>
<tr>
<td class="px-4 py-2"><code><2.0.0</code></td>
<td class="px-4 py-2">Before this version</td>
<td class="px-4 py-2">1.0.0, 1.9.9</td>
</tr>
</tbody>
</table>
<div class="bg-green-50 border-l-4 border-green-500 p-4 my-6">
<p class="font-semibold text-green-800">Recommendation</p>
<p class="text-green-700">Use <code>^1.0.0</code> (caret) for most dependencies. This allows
bug fixes and new features while preventing breaking changes.</p>
</div>
<h2 id="installing-deps">Installing Dependencies</h2>
<p>When someone clones your project:</p>
<pre><code class="language-bash"># Install all dependencies from cmdforge.yaml
cmdforge install</code></pre>
<p>This reads the manifest, resolves versions, and installs every tool. Perfect for:</p>
<ul>
<li>New team members getting set up</li>
<li>CI/CD pipeline preparation</li>
<li>Refreshing your environment after pulling changes</li>
</ul>
<h2 id="checking-deps">Checking Dependencies</h2>
<p>See what's in your manifest and what's installed:</p>
<pre><code class="language-bash"># Show project dependencies
cmdforge deps</code></pre>
<p>Output:</p>
<pre><code class="language-text">Project: my-project v1.0.0
Dependencies (3):
official/summarize * (installed: 1.2.0)
official/translate ^1.0.0 (installed: 1.1.0)
official/fix-grammar * (not installed)
Run 'cmdforge install' to install missing dependencies.</code></pre>
<h2 id="overrides">Provider Overrides</h2>
<p>Need to use different AI providers in different environments? Add overrides to your manifest:</p>
<pre><code class="language-yaml">name: my-project
version: 1.0.0
dependencies:
- name: official/summarize
version: "^1.0.0"
overrides:
summarize:
provider: ollama # Use local Ollama instead of cloud</code></pre>
<p>This is useful for:</p>
<ul>
<li><strong>Development</strong> - Use local/free models to save money</li>
<li><strong>CI/CD</strong> - Use mock providers for testing</li>
<li><strong>Production</strong> - Use high-quality cloud providers</li>
</ul>
<h2 id="manifest-location">Manifest Location</h2>
<p>CmdForge searches for <code>cmdforge.yaml</code> starting from your current directory and
moving up to parent directories. This means you can have:</p>
<ul>
<li><strong>Per-project manifests</strong> - In each project root</li>
<li><strong>Shared manifests</strong> - In a parent directory for multiple projects</li>
</ul>
<h2 id="workflow">Recommended Workflow</h2>
<div class="bg-white border rounded-lg p-4 my-6">
<ol class="space-y-3">
<li><strong>1. Initialize</strong> - <code>cmdforge init</code> in your project root</li>
<li><strong>2. Add tools</strong> - <code>cmdforge add owner/tool</code> as you need them</li>
<li><strong>3. Commit</strong> - Add <code>cmdforge.yaml</code> to version control</li>
<li><strong>4. Document</strong> - Tell your team to run <code>cmdforge install</code></li>
<li><strong>5. CI/CD</strong> - Add <code>cmdforge install</code> to your pipeline</li>
</ol>
</div>
<h2 id="next">Next Steps</h2>
<ul>
<li><a href="/docs/collections">Install tool collections</a> - Get started quickly with curated bundles</li>
<li><a href="/docs/registry-usage">Browse the registry</a> - Find tools for your project</li>
<li><a href="/docs/publishing">Publish your own tools</a> - Share with the community</li>
</ul>
""",
"headings": [
("why", "Why Project Dependencies?"),
("creating", "Creating a Manifest"),
("adding-deps", "Adding Dependencies"),
("version-constraints", "Version Constraints"),
("installing-deps", "Installing Dependencies"),
("checking-deps", "Checking Dependencies"),
("overrides", "Provider Overrides"),
("manifest-location", "Manifest Location"),
("workflow", "Recommended Workflow"),
("next", "Next Steps"),
],
},
"provider-setup": {
"title": "Setting Up AI Providers",
"description": "Install and configure AI providers for your tools",
"content": """
<p class="lead">CmdForge is the brain, but AI providers are the muscle. Before your tools can do
anything smart, you need at least one provider configured. The good news? CmdForge has an
interactive installer that makes this painless.</p>
<div class="bg-indigo-50 border-l-4 border-indigo-500 p-4 my-6">
<p class="font-semibold text-indigo-800">What You'll Learn</p>
<ul class="mt-2 text-indigo-700">
<li>Using the interactive provider installer</li>
<li>Available provider options and their tradeoffs</li>
<li>Testing your provider setup</li>
<li>Managing multiple providers</li>
</ul>
</div>
<h2 id="interactive-install">The Interactive Installer</h2>
<p>The easiest way to get started:</p>
<pre><code class="language-bash">cmdforge providers install</code></pre>
<p>You'll see a menu of available provider groups:</p>
<pre><code class="language-text">============================================================
CmdForge Provider Installation Guide
============================================================
Available AI Provider Groups:
1. OpenCode
Cost: FREE tier available (4 models)
Models: opencode-pickle, opencode-deepseek, opencode-claude, ...
2. Claude (Anthropic)
Cost: Pay per token
Models: claude-haiku, claude-sonnet, claude-opus
3. Ollama (Local)
Cost: FREE (runs on your machine)
Models: ollama-llama, ollama-mistral, ollama-codellama
4. OpenAI
Cost: Pay per token
Models: openai-gpt4, openai-gpt35
0. Cancel
Select a provider to install (1-4, or 0 to cancel):</code></pre>
<p>Select a provider, and CmdForge will:</p>
<ol>
<li>Show you the installation command</li>
<li>Offer to run it for you</li>
<li>Guide you through any post-install setup</li>
</ol>
<h2 id="provider-options">Choosing a Provider</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 my-6">
<div class="bg-green-50 border border-green-200 rounded-lg p-4">
<p class="font-bold text-green-800">Best for Getting Started: OpenCode</p>
<ul class="text-sm text-green-700 mt-2">
<li>4 FREE models included</li>
<li>No API key required for free tier</li>
<li>One command install</li>
<li>Web UI for model management</li>
</ul>
<p class="text-xs text-green-600 mt-2">Install: Option 1 in the installer</p>
</div>
<div class="bg-blue-50 border border-blue-200 rounded-lg p-4">
<p class="font-bold text-blue-800">Best for Privacy: Ollama</p>
<ul class="text-sm text-blue-700 mt-2">
<li>Runs 100% locally</li>
<li>No data leaves your machine</li>
<li>Free forever</li>
<li>Great for sensitive content</li>
</ul>
<p class="text-xs text-blue-600 mt-2">Install: Option 3 in the installer</p>
</div>
<div class="bg-purple-50 border border-purple-200 rounded-lg p-4">
<p class="font-bold text-purple-800">Best Quality: Claude</p>
<ul class="text-sm text-purple-700 mt-2">
<li>State-of-the-art reasoning</li>
<li>Long context windows</li>
<li>Excellent for complex tasks</li>
<li>Pay per use</li>
</ul>
<p class="text-xs text-purple-600 mt-2">Install: Option 2 in the installer</p>
</div>
<div class="bg-gray-50 border border-gray-200 rounded-lg p-4">
<p class="font-bold text-gray-800">Most Flexible: OpenAI</p>
<ul class="text-sm text-gray-700 mt-2">
<li>Wide ecosystem support</li>
<li>Fast response times</li>
<li>Reliable infrastructure</li>
<li>Pay per use</li>
</ul>
<p class="text-xs text-gray-600 mt-2">Install: Option 4 in the installer</p>
</div>
</div>
<h2 id="testing">Testing Your Setup</h2>
<p>After installation, verify everything works:</p>
<pre><code class="language-bash"># Test a specific provider
cmdforge providers test opencode-pickle
# The test sends a simple prompt and shows the response
# You should see something like:
# Testing provider: opencode-pickle
# Sending test prompt...
# ✓ Provider responded successfully!
# Response: "Hello! I'm working correctly."</code></pre>
<h2 id="listing">Viewing Configured Providers</h2>
<pre><code class="language-bash"># List all providers and their status
cmdforge providers list</code></pre>
<p>Output:</p>
<pre><code class="language-text">Configured providers:
NAME COMMAND STATUS
opencode-pickle opencode -m pickle Available
claude-haiku claude -m haiku -p Available
ollama-llama ollama run llama2 Not found
mock echo '[MOCK]' Available
4 providers configured, 3 available</code></pre>
<h2 id="manual-add">Manually Adding Providers</h2>
<p>Need a custom provider? Add it manually:</p>
<pre><code class="language-bash"># Add a new provider
cmdforge providers add my-provider "my-ai-cli --prompt"
# Add with description
cmdforge providers add my-provider "my-ai-cli --prompt" --description "My custom AI"</code></pre>
<p>Or edit <code>~/.cmdforge/providers.yaml</code> directly:</p>
<pre><code class="language-yaml">providers:
- name: my-provider
command: "my-ai-cli --prompt"
description: "My custom AI provider"</code></pre>
<h2 id="removing">Removing Providers</h2>
<pre><code class="language-bash"># Remove a provider you no longer use
cmdforge providers remove old-provider</code></pre>
<h2 id="multiple">Using Multiple Providers</h2>
<p>You can have many providers configured and choose per-tool or per-run:</p>
<pre><code class="language-bash"># Use the tool's default provider
cat file.txt | summarize
# Override for this run
cat file.txt | summarize --provider ollama-llama
# Use a fast provider for quick tasks
cat file.txt | summarize --provider opencode-pickle
# Use a powerful provider for complex tasks
cat file.txt | summarize --provider claude-opus</code></pre>
<h2 id="mock">The Mock Provider</h2>
<p>CmdForge includes a built-in <code>mock</code> provider for testing without API calls:</p>
<pre><code class="language-bash"># Test your tool without using real AI
cat file.txt | summarize --provider mock</code></pre>
<p>This returns a placeholder response, perfect for:</p>
<ul>
<li>Testing tool configuration</li>
<li>Debugging variable flow</li>
<li>CI/CD pipelines</li>
<li>Saving money during development</li>
</ul>
<h2 id="next">Next Steps</h2>
<ul>
<li><a href="/docs/providers">Deep dive into provider configuration</a></li>
<li><a href="/docs/first-tool">Create your first tool</a></li>
<li><a href="/docs/testing-steps">Test your tools with mock providers</a></li>
</ul>
""",
"headings": [
("interactive-install", "The Interactive Installer"),
("provider-options", "Choosing a Provider"),
("testing", "Testing Your Setup"),
("listing", "Viewing Configured Providers"),
("manual-add", "Manually Adding Providers"),
("removing", "Removing Providers"),
("multiple", "Using Multiple Providers"),
("mock", "The Mock Provider"),
("next", "Next Steps"),
],
},
"cli-reference": {
"title": "CLI Reference",
"description": "Complete reference for all CmdForge commands",
"content": """
<p class="lead">A quick reference for every CmdForge command. Bookmark this pageyou'll come back to it.</p>
<h2 id="tool-commands">Tool Commands</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Command</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge</code></td>
<td class="px-4 py-2">Launch the Visual Builder (desktop GUI)</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge list</code></td>
<td class="px-4 py-2">List all installed tools</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge create</code></td>
<td class="px-4 py-2">Create a new tool (interactive wizard)</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge edit &lt;tool&gt;</code></td>
<td class="px-4 py-2">Open tool config in your editor</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge delete &lt;tool&gt;</code></td>
<td class="px-4 py-2">Remove a tool</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge test &lt;tool&gt;</code></td>
<td class="px-4 py-2">Test a tool with mock provider</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge run &lt;tool&gt;</code></td>
<td class="px-4 py-2">Run a tool directly (without wrapper)</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge refresh</code></td>
<td class="px-4 py-2">Regenerate all wrapper scripts</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge docs &lt;tool&gt;</code></td>
<td class="px-4 py-2">View or edit tool documentation</td>
</tr>
<tr>
<td class="px-4 py-2"><code>cmdforge check &lt;tool&gt;</code></td>
<td class="px-4 py-2">Check if tool dependencies are installed</td>
</tr>
</tbody>
</table>
<h2 id="registry-commands">Registry Commands</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Command</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge registry search &lt;query&gt;</code></td>
<td class="px-4 py-2">Search for tools</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge registry install &lt;tool&gt;</code></td>
<td class="px-4 py-2">Install a tool from registry</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge registry uninstall &lt;tool&gt;</code></td>
<td class="px-4 py-2">Uninstall a registry tool</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge registry info &lt;tool&gt;</code></td>
<td class="px-4 py-2">Show tool details</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge registry publish &lt;tool&gt;</code></td>
<td class="px-4 py-2">Publish a tool to registry</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge registry my-tools</code></td>
<td class="px-4 py-2">List your published tools</td>
</tr>
<tr>
<td class="px-4 py-2"><code>cmdforge registry browse</code></td>
<td class="px-4 py-2">Browse registry (interactive TUI)</td>
</tr>
</tbody>
</table>
<h2 id="collection-commands">Collection Commands</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Command</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge collections list</code></td>
<td class="px-4 py-2">List available collections</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge collections info &lt;name&gt;</code></td>
<td class="px-4 py-2">Show collection details</td>
</tr>
<tr>
<td class="px-4 py-2"><code>cmdforge collections install &lt;name&gt;</code></td>
<td class="px-4 py-2">Install all tools in collection</td>
</tr>
</tbody>
</table>
<h2 id="provider-commands">Provider Commands</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Command</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge providers install</code></td>
<td class="px-4 py-2">Interactive provider installation guide</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge providers list</code></td>
<td class="px-4 py-2">List configured providers</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge providers check</code></td>
<td class="px-4 py-2">Check which providers are available</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge providers add &lt;name&gt; &lt;cmd&gt;</code></td>
<td class="px-4 py-2">Add a new provider</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge providers remove &lt;name&gt;</code></td>
<td class="px-4 py-2">Remove a provider</td>
</tr>
<tr>
<td class="px-4 py-2"><code>cmdforge providers test &lt;name&gt;</code></td>
<td class="px-4 py-2">Test a provider</td>
</tr>
</tbody>
</table>
<h2 id="project-commands">Project Commands</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Command</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge init</code></td>
<td class="px-4 py-2">Create cmdforge.yaml manifest</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge add &lt;tool&gt;</code></td>
<td class="px-4 py-2">Add tool to project dependencies</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge install</code></td>
<td class="px-4 py-2">Install project dependencies</td>
</tr>
<tr>
<td class="px-4 py-2"><code>cmdforge deps</code></td>
<td class="px-4 py-2">Show project dependencies</td>
</tr>
</tbody>
</table>
<h2 id="config-commands">Config Commands</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Command</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge config show</code></td>
<td class="px-4 py-2">Show current configuration</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>cmdforge config set &lt;key&gt; &lt;value&gt;</code></td>
<td class="px-4 py-2">Set a configuration value</td>
</tr>
<tr>
<td class="px-4 py-2"><code>cmdforge config connect &lt;username&gt;</code></td>
<td class="px-4 py-2">Connect to registry account</td>
</tr>
</tbody>
</table>
<h2 id="useful-flags">Useful Global Flags</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Flag</th>
<th class="px-4 py-2 text-left">Description</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>--help</code></td>
<td class="px-4 py-2">Show help for any command</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>--version</code></td>
<td class="px-4 py-2">Show CmdForge version</td>
</tr>
<tr>
<td class="px-4 py-2"><code>--provider &lt;name&gt;</code></td>
<td class="px-4 py-2">Override provider for tool execution</td>
</tr>
</tbody>
</table>
<h2 id="file-locations">Important File Locations</h2>
<table class="w-full my-4">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left">Path</th>
<th class="px-4 py-2 text-left">Contents</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="px-4 py-2"><code>~/.cmdforge/</code></td>
<td class="px-4 py-2">Tool configs directory</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>~/.cmdforge/&lt;tool&gt;/config.yaml</code></td>
<td class="px-4 py-2">Individual tool configuration</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>~/.cmdforge/providers.yaml</code></td>
<td class="px-4 py-2">Provider configurations</td>
</tr>
<tr class="border-b">
<td class="px-4 py-2"><code>~/.local/bin/</code></td>
<td class="px-4 py-2">Tool wrapper scripts</td>
</tr>
<tr>
<td class="px-4 py-2"><code>./cmdforge.yaml</code></td>
<td class="px-4 py-2">Project dependency manifest</td>
</tr>
</tbody>
</table>
""",
"headings": [
("tool-commands", "Tool Commands"),
("registry-commands", "Registry Commands"),
("collection-commands", "Collection Commands"),
("provider-commands", "Provider Commands"),
("project-commands", "Project Commands"),
("config-commands", "Config Commands"),
("useful-flags", "Useful Global Flags"),
("file-locations", "Important File Locations"),
],
},
}
@ -3250,16 +4167,22 @@ def get_toc():
SimpleNamespace(slug="visual-builder", title="Visual Builder"),
SimpleNamespace(slug="yaml-config", title="YAML Config"),
]),
SimpleNamespace(slug="registry-usage", title="Using the Registry", children=[]),
SimpleNamespace(slug="registry-usage", title="Using the Registry", children=[
SimpleNamespace(slug="collections", title="Tool Collections"),
]),
SimpleNamespace(slug="arguments", title="Custom Arguments", children=[]),
SimpleNamespace(slug="multi-step", title="Multi-Step Workflows", children=[
SimpleNamespace(slug="code-steps", title="Code Steps"),
SimpleNamespace(slug="tool-steps", title="Tools Within Tools"),
]),
SimpleNamespace(slug="testing-steps", title="Testing Sandbox", children=[]),
SimpleNamespace(slug="providers", title="Providers", children=[]),
SimpleNamespace(slug="providers", title="Providers", children=[
SimpleNamespace(slug="provider-setup", title="Provider Setup"),
]),
SimpleNamespace(slug="project-deps", title="Project Dependencies", children=[]),
SimpleNamespace(slug="publishing", title="Publishing", children=[]),
SimpleNamespace(slug="advanced-workflows", title="Advanced Workflows", children=[
SimpleNamespace(slug="parallel-orchestration", title="Parallel Orchestration"),
]),
SimpleNamespace(slug="cli-reference", title="CLI Reference", children=[]),
]