Coding Agents That Actually Use Your Tools
Telling an agent that CmdForge exists is not enough. It needs a catalog it can read, a cheap path for one-off work, and a rule for when a reusable tool is worth creating. CmdForge now provides all three.
The Adoption Loop
- Discover: inspect local tools in compact JSON.
- Search: query the registry when nothing local fits.
- Improvise: use
run-oncefor work that will not repeat. - Promote: turn repeated work into a project-owned tool.
cmdforge list --json --filter "release notes" --limit 10
cmdforge registry search "release notes" --json --limit 5
git diff | cmdforge run-once "Summarize this change:
{input}"
echo "Create release notes from a Git diff" | forge-tool --name release-notes --project
Install the Connection and the Policy
# Codex uses user-scoped MCP registration
cmdforge mcp configure codex --dry-run
cmdforge mcp configure codex
# Claude Code can use local, project, or user scope
cmdforge mcp configure claude-code --scope project --dry-run
cmdforge mcp configure claude-code --scope project
CmdForge invokes the host's own MCP command. It also inserts or refreshes only the text between
its managed markers in AGENTS.md or CLAUDE.md. Your surrounding instructions
remain yours.
Expose Capabilities, Not Your Entire Home Directory
The agent can only call tools selected by the MCP server policy:
server:
expose: [review-code, commit-msg, project-*]
deny: [project-publish, project-deploy]
Start with two or three low-risk tools. Add a tool after you understand its code steps, MCP calls, provider, and data flow.
Put Project Tools in the Project
cd ~/Projects/acme
cmdforge create classify-incident --project
# AI-assisted creation
cmdforge registry install official/forge-tool
echo "Classify a bounded incident packet and return cited JSON" | forge-tool --name classify-incident --project
This creates ./.cmdforge/classify-incident/. Review and commit it with the application.
Do not edit CmdForge's source repository to add a consumer project's tool.
When a Direct API Is Still Right
CmdForge is ideal for local automation, composition, experimentation, and workflows users should be able to inspect or replace. A direct SDK belongs in product code when the external service is an intentional runtime dependency with application-owned retries, billing, and service-level behavior.
Give Sensitive Work an Explicit Contract
cmdforge run classify-incident --provider local-ollama --no-fallback --require-local --require-capability structured-json --data-classification private --require-model-identity --result-envelope json
The provenance envelope is produced by CmdForge, not by the model. The caller can verify which provider and model actually ran before accepting the result.