R
rezzminator/tool-visibility-controller
Claude Code plugin for per-agent tool visibility — hide and refuse subagents, skills, MCP and built-in tools…
在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
- ★ 数取值
- 2 ★ · rezzminator/tool-visibility-controller · 取自 GitHub 搜索 API · (2026-11-13 20:00:50 核对)
- 来源明细
- 从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
- 收录与活跃
- 收录于 2026-11-02 · 最近见到 2026-11-14 · 共见到 13 次 · 被 1 个来源列出
- 评分构成
- 综合分 103 · 2 ★ · 1 个来源 · repo
常见问题(答案都来自我们的记录)
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库
rezzminator/tool-visibility-controller;我们收录于 2026-11-02;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。# tool-visibility-controller
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Claude Code plugin for per-agent tool visibility — hide and refuse subagents, skills, MCP and built-in tools per loop
Contents: Why · Quick start · Usage · How it works · Logs · Limits · FAQ · Help · Contributing · Built with Professor · License · Changelog
One frontmatter field decides, per loop, what the main chat and each sub-agent type sees in its listings and may call:
markdown
name: researcher
description: Searches the web and summarises sources.
visibility:
visible-to:
include: [research-lead] # only research-lead may see and spawn this agent
mcp:
include: [harvester/] # this agent's loop sees only these MCP tools
tools:
exclude: [Bash] # and every built-in tool but Bash
The main chat's agent listing, before and after:
diff
Available agent types for the Agent tool:
general-purpose: General-purpose agent for researching complex questions. (Tools: )
research-lead: Plans a research question and delegates it. (Tools: Agent, Read)
-- researcher: Searches the web and summarises sources. (Tools: Read, WebFetch)
If the main chat dispatches researcher by name anyway, the spawn is refused with:
text
Agent type researcher is not available to the main chat: visibility.visible-to in ~/.claude/agents/researcher.md admits only research-lead. Delegate the task to research-lead, or choose another agent type.
## 🤔 Why
Every loop gets the tools its job needs, not all of them. Claude Code lists every agent, skill, MCP tool and deferred tool to every loop. A helper agent, a dangerous MCP server or a heavy skill now shows up only where you allow it.
Hidden and refused, not just hidden. Each listing is filtered per loop, and a call by name from a loop that may not use the item is refused with a message naming the rule and what to do instead.
Parent → child chains keep working. permissions.deny blocks a tool in every loop, the orchestrator included. Here the rule is per caller: research-lead spawns researcher, the main chat cannot.
Things you do not own are covered too. Built-in agents (Explore), plugin agents and skills, MCP servers and built-in tools take their rules from a scope file, tool-visibility-controller.json.
Every other loop's context gets lighter, and the prompt cache holds. A hidden entry leaves the listing; every other byte stays identical.
It never blocks your work by accident. Any error is logged and the listing, the call and the spawn go on as they were; a loop or hook failure that leaves an action unchecked says which action went unchecked.
## 🚀 Quick start
Function hooks are experimental; turn them on before Claude Code starts:
bash
export CLAUDECODEENABLEFUNCTIONHOOKS=1
Install from its own marketplace:
bash
claude plugin marketplace add rezzminator/tool-visibility-controller
claude plugin install tool-visibility-controller@professor
One step, or from inside a session
Where claude plugin install --help lists --marketplace, one command adds the marketplace and installs:
bash
claude plugin install tool-visibility-controller --marketplace rezzminator/tool-visibility-controller
Inside a session:
text
/plugin marketplace add rezzminator/tool-visibility-controller
/plugin install tool-visibility-controller@professor
Contents: Why · Quick start · Usage · How it works · Logs · Limits · FAQ · Help · Contributing · Built with Professor · License · Changelog
One frontmatter field decides, per loop, what the main chat and each sub-agent type sees in its listings and may call:
markdown
name: researcher
description: Searches the web and summarises sources.
visibility:
visible-to:
include: [research-lead] # only research-lead may see and spawn this agent
mcp:
include: [harvester/] # this agent's loop sees only these MCP tools
tools:
exclude: [Bash] # and every built-in tool but Bash
The main chat's agent listing, before and after:
diff
Available agent types for the Agent tool:
general-purpose: General-purpose agent for researching complex questions. (Tools: )
research-lead: Plans a research question and delegates it. (Tools: Agent, Read)
-- researcher: Searches the web and summarises sources. (Tools: Read, WebFetch)
If the main chat dispatches researcher by name anyway, the spawn is refused with:
text
Agent type researcher is not available to the main chat: visibility.visible-to in ~/.claude/agents/researcher.md admits only research-lead. Delegate the task to research-lead, or choose another agent type.
## 🤔 Why
Every loop gets the tools its job needs, not all of them. Claude Code lists every agent, skill, MCP tool and deferred tool to every loop. A helper agent, a dangerous MCP server or a heavy skill now shows up only where you allow it.
Hidden and refused, not just hidden. Each listing is filtered per loop, and a call by name from a loop that may not use the item is refused with a message naming the rule and what to do instead.
Parent → child chains keep working. permissions.deny blocks a tool in every loop, the orchestrator included. Here the rule is per caller: research-lead spawns researcher, the main chat cannot.
Things you do not own are covered too. Built-in agents (Explore), plugin agents and skills, MCP servers and built-in tools take their rules from a scope file, tool-visibility-controller.json.
Every other loop's context gets lighter, and the prompt cache holds. A hidden entry leaves the listing; every other byte stays identical.
It never blocks your work by accident. Any error is logged and the listing, the call and the spawn go on as they were; a loop or hook failure that leaves an action unchecked says which action went unchecked.
## 🚀 Quick start
Function hooks are experimental; turn them on before Claude Code starts:
bash
export CLAUDECODEENABLEFUNCTIONHOOKS=1
Install from its own marketplace:
bash
claude plugin marketplace add rezzminator/tool-visibility-controller
claude plugin install tool-visibility-controller@professor
One step, or from inside a session
Where claude plugin install --help lists --marketplace, one command adds the marketplace and installs:
bash
claude plugin install tool-visibility-controller --marketplace rezzminator/tool-visibility-controller
Inside a session:
text
/plugin marketplace add rezzminator/tool-visibility-controller
/plugin install tool-visibility-controller@professor
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/rezzminator-tool-visibility-controller/)
- 来源
- github · https://github.com/rezzminator/tool-visibility-controller
- 按领域浏览
- 开源项目
- Traction
- 2 ★
- 收录于
- 今天
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。