# Tool & Validation CLI Reference The `agents tool` and `agents validation` command groups manage tools and validations in the CleverAgents tool registry. ## Tool Commands ### `agents tool add` Register a tool from a YAML configuration file. ```bash agents tool add --config ./tools/line-counter.yaml agents tool add --config ./tools/line-counter.yaml --update agents tool add --config ./tools/line-counter.yaml --format json ``` **Options:** | Flag | Description | |---------------|--------------------------------------| | `--config` | Path to YAML configuration file | | `--update` | Update if tool already exists | | `--format` | Output format (json/yaml/plain/table/rich) | ### `agents tool remove` Remove a tool by namespaced name. ```bash agents tool remove local/line-counter agents tool remove --yes local/line-counter ``` **Options:** | Flag | Description | |--------|---------------------------| | `--yes`| Skip confirmation prompt | ### `agents tool list` List tools with optional filters. ```bash agents tool list agents tool list --namespace local agents tool list --source mcp agents tool list --type validation agents tool list "line-.*" agents tool list --format json ``` **Options:** | Flag | Description | |---------------|------------------------------------------| | `--namespace` | Filter by namespace | | `--source` | Filter by source type | | `--type` | Filter by type (tool or validation) | | `--format` | Output format (json/yaml/plain/table/rich) | ### `agents tool show` Show full details for a tool. ```bash agents tool show local/line-counter agents tool show --format json local/line-counter ``` **Options:** | Flag | Description | |------------|------------------------------------------| | `--format` | Output format (json/yaml/plain/table/rich) | ## Validation Commands ### `agents validation add` Register a validation from a YAML configuration file. ```bash agents validation add --config ./validations/coverage-check.yaml agents validation add --config ./validations/coverage-check.yaml --update ``` **Options:** | Flag | Description | |---------------|--------------------------------------| | `--config` | Path to YAML configuration file | | `--update` | Update if validation already exists | | `--format` | Output format (json/yaml/plain/table/rich) | ### `agents validation attach` Attach a validation to a resource. ```bash agents validation attach git-checkout/my-repo local/coverage-check agents validation attach --project myproj git-checkout/my-repo local/lint agents validation attach --mode informational resource/r1 local/val1 agents validation attach git-checkout/my-repo local/check threshold=80 ``` **Options:** | Flag | Description | |-------------|------------------------------------------------| | `--project` | Project scope | | `--plan` | Plan ID scope | | `--mode` | Validation mode (required or informational) | | `--format` | Output format (json/yaml/plain/table/rich) | ### `agents validation detach` Detach a validation from a resource. ```bash agents validation detach 01HXYZ1234567890ABCDEFGHIJ agents validation detach --yes 01HXYZ1234567890ABCDEFGHIJ ``` **Options:** | Flag | Description | |--------|---------------------------| | `--yes`| Skip confirmation prompt | | `--format` | Output format (json/yaml/plain/table/rich) | ## YAML Configuration Examples ### Tool Configuration ```yaml name: local/line-counter description: Count lines in a file source: custom code: | def run(inputs): with open(inputs["path"]) as f: return {"count": sum(1 for _ in f)} input_schema: type: object properties: path: type: string capability: read_only: true idempotent: true timeout: 60 ``` ### Validation Configuration ```yaml name: local/coverage-check description: Check code coverage meets threshold source: custom mode: required code: | def run(inputs): return {"passed": inputs["coverage"] >= inputs.get("threshold", 80)} ``` ### Wrapped Validation ```yaml name: local/lint-check description: Run linting as a validation source: wrapped wraps: local/run-lint transform: | def transform(result): return {"passed": result.get("exit_code") == 0} mode: informational ```