Skip to content

agent-tools

Agent tools must be an array of tool names, cannot be used with disallowed-tools

From plugin
claudelint
1413 skills13 agents1 command1 hook

Claude Code

> /plugin marketplace add pdugan20/claudelint
> /plugin install claudelint@claudelint

Agent definition

agent-tools.md
description: "Agent tools must be an array of tool names, cannot be used with disallowed-tools"

agent-tools

<RuleHeader description="Agent tools must be an array of tool names, cannot be used with disallowed-tools" severity="error" :fixable="false" :configurable="false" category="Agents" />

Rule Details

This rule enforces two constraints on the `tools` field in agent markdown frontmatter. First, `tools` must be a valid array of strings representing tool names the agent is allowed to use. Second, `tools` and `disallowedTools` are mutually exclusive -- specifying both is an error. Array validation is delegated to AgentFrontmatterSchema.shape.tools, while cross-field validation uses AgentFrontmatterWithRefinements. This prevents conflicting tool access configurations.

Incorrect

Tools as a single string instead of array

---
name: code-agent
description: Writes and edits code
tools: Bash
---

Both tools and disallowedTools specified

---
name: code-agent
description: Writes and edits code
tools:
  - Bash
  - Edit
disallowedTools:
  - Write
---

Correct

Tools as a valid array of tool names

---
name: code-agent
description: Writes and edits code
tools:
  - Bash
  - Edit
  - Read
---

Using disallowedTools alone (without tools)

---
name: safe-agent
description: Agent with restricted access
disallowedTools:
  - Bash
---

How To Fix

Ensure `tools` is a YAML array of strings. If you need to restrict certain tools, use either `tools` (allowlist) or `disallowedTools` (blocklist), but not both.

Options

This rule does not have any configuration options.

Related Rules

  • [`agent-disallowed-tools`](/rules/agents/agent-disallowed-tools)

Resources

  • [Rule Implementation](https://github.com/pdugan20/claudelint/blob/main/src/rules/agents/agent-tools.ts)
  • [Rule Tests](https://github.com/pdugan20/claudelint/blob/main/tests/rules/agents/agent-tools.test.ts)

Version

Available since: v0.2.0

Read more
@pdugan20
Ships withclaudelint

A linter for Claude Code projects. Validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more.

Stars on GitHub

Momentum

stars in total
14
Star history of pdugan20/claudelint on GitHub, a chart by star-history.com

Other agents on claudelint.

claude-md-optimizer
Auto-invoked

claude-md-optimizer

Agent

Use this agent when the user wants to autonomously validate and optimize their CLAUDE.md files. This agent runs claudelint…

@pdugan20@pdugan20Install Agent

More agents from other plugins.

a11y-architect
Auto-invoked

a11y-architect

Agent

Accessibility Architect specializing in WCAG 2.2 compliance for Web and Native platforms. Use PROACTIVELY when designing UI…

ecc11d293k
@affaan-m@affaan-mInstall Agent
analyze-pass-impact

analyze-pass-impact

Agent

Analyzes how a specific topic affects a group of compiler passes. Used by the /plan-update skill to parallelize research across…

react1d252k
@facebook@facebookInstall Agent
orchestrator

orchestrator

Agent

- If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as…

codextoday135k
@openai@openaiInstall Agent
cavecrew-builder

cavecrew-builder

Agent

Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…

caveman2d119k
@juliusbrussee@juliusbrusseeInstall Agent

Questions about agent-tools.

Which coding agents can use agent-tools?
agent-tools installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.