research-tools
Read-only researcher agent: answers one question from your repository or external docs, with evidence for every claim.
Tags
Compatibility
- Claude Code ≥ 2.1.318
- Windows
- macOS
- verified on 2.1.318
Install
In a Claude Code session
User
Run in a Claude Code session:
/plugin install research-tools --marketplace lindigo-design/devdigest-marketplaceThe first time, Claude Code asks before it adds the marketplace. Then the plugin's details open; nothing is installed yet.
Choose Install for you (user scope)
Project
Run in a Claude Code session:
/plugin install research-tools --marketplace lindigo-design/devdigest-marketplaceThe first time, Claude Code asks before it adds the marketplace. Then the plugin's details open; nothing is installed yet.
Choose Install for all collaborators on this repository (project scope)
Then, in your terminal, record the marketplace in the repository for collaborators (running it again is harmless):
claude plugin marketplace add lindigo-design/devdigest-marketplace --scope project
The commands write this .claude/settings.json:
{
"enabledPlugins": {
"research-tools@lindigo-devdigest": true
},
"extraKnownMarketplaces": {
"lindigo-devdigest": {
"source": {
"source": "github",
"repo": "lindigo-design/devdigest-marketplace"
}
}
}
}Commit it:
git add .claude/settings.jsonCollaborators who trust the folder get the marketplace and the plugin. These plugins come from the marketplace repository itself, so they load without a separate install. Each collaborator needs Claude Code ≥ 2.1.318.
If Claude Code reports the plugin as enabled but not installed, run this once:
claude plugin install research-tools@lindigo-devdigest --scope projectLocal
Run in a Claude Code session:
/plugin install research-tools --marketplace lindigo-design/devdigest-marketplaceThe first time, Claude Code asks before it adds the marketplace. Then the plugin's details open; nothing is installed yet.
Choose Install for you, in this repo only (local scope)
.claude/settings.local.json is personal and is not committed.
In your terminal
User
Run in your terminal:
claude plugin install research-tools --marketplace lindigo-design/devdigest-marketplaceRestart Claude Code, or run /reload-plugins in an open session, to load it.
Project
Run in your terminal:
claude plugin marketplace add lindigo-design/devdigest-marketplace --scope projectclaude plugin install research-tools@lindigo-devdigest --scope projectRestart Claude Code, or run /reload-plugins in an open session, to load it.
The commands write this .claude/settings.json:
{
"enabledPlugins": {
"research-tools@lindigo-devdigest": true
},
"extraKnownMarketplaces": {
"lindigo-devdigest": {
"source": {
"source": "github",
"repo": "lindigo-design/devdigest-marketplace"
}
}
}
}Commit it:
git add .claude/settings.jsonCollaborators who trust the folder get the marketplace and the plugin. These plugins come from the marketplace repository itself, so they load without a separate install. Each collaborator needs Claude Code ≥ 2.1.318.
If Claude Code reports the plugin as enabled but not installed, run this once:
claude plugin install research-tools@lindigo-devdigest --scope projectLocal
Run in your terminal:
claude plugin install research-tools --marketplace lindigo-design/devdigest-marketplace --scope localRestart Claude Code, or run /reload-plugins in an open session, to load it.
.claude/settings.local.json is personal and is not committed.
Adds ~155 tokens to every session.
Components
Agent · 1
- researcher
Answers one concrete research question from this repository or from external documentation, read-only. Delegate when you need to know where or how something is implemented, why a decision was made, what depends on what, or what a library's docs, changelog or a standard say. Returns a structured report: TL;DR, numbered findings with file:line or URL evidence, confidence, and an explicit not-found list. If the request has no concrete question, it first asks clarifying questions (interactively when it can, otherwise returned to the caller). Never modifies files. Not for making changes or reviewing a diff.
@agent-research-tools:researchermention it, or Claude delegates to it when relevant
Try it after install
Check that it loaded
In a session, type / and look for
/research-tools:List installed plugins with their version, scope and status:
claude plugin listSee its components and what it adds to every session:
claude plugin details research-tools
Call it
Agents: mention
@agent-research-tools:researcherYou can also name the agent in plain words, or let Claude delegate when a request matches its description. To run a whole session as the agent:
claude --agent research-tools:researcher
Examples from the README
@agent-research-tools:researcher Where is request validation done for the orders API, and what happens on invalid input?A repository report: TL;DR, numbered findings each with
path:lineevidence, how the pieces fit together, discrepancies between docs and code, and a Not found / unverified list.@agent-research-tools:researcher Is our Fastify version affected by the reply.hijack deprecation?A mixed report: what the project uses (versions read from the manifests, call sites with
path:line), then what the official changelog and docs say (URL, section, date), and whether it applies.
Manage
Update this plugin
In a Claude Code session
/plugin → Installed → research-tools → Update now
In your terminal
User
claude plugin update research-tools@lindigo-devdigestProject
claude plugin update research-tools@lindigo-devdigest --scope projectLocal
claude plugin update research-tools@lindigo-devdigest --scope localFrom the terminal, restart Claude Code after the update.
Update every plugin from this marketplace
In a Claude Code session
/plugin → Marketplaces → lindigo-devdigest → Update marketplace
In your terminal
Use a Claude Code session.
claude plugin marketplace update without a name only refreshes the listings; it installs no new versions.
Turn on auto-update
In a Claude Code session
/plugin → Marketplaces → lindigo-devdigest → Enable auto-update
In your terminal
Or add autoUpdate to the marketplace entry in your settings file:
{
"extraKnownMarketplaces": {
"lindigo-devdigest": {
"source": {
"source": "github",
"repo": "lindigo-design/devdigest-marketplace"
},
"autoUpdate": true
}
}
}Auto-update is off by default for this marketplace.
Disable
In a Claude Code session
/plugin disable research-tools@lindigo-devdigestIn your terminal
User
claude plugin disable research-tools@lindigo-devdigestProject
claude plugin disable research-tools@lindigo-devdigest --scope projectLocal
claude plugin disable research-tools@lindigo-devdigest --scope localWhile a plugin that depends on it is enabled (sdd-engineering), Claude Code refuses and prints the command that disables both in order.
Enable
In a Claude Code session
/plugin enable research-tools@lindigo-devdigestIn your terminal
User
claude plugin enable research-tools@lindigo-devdigestProject
claude plugin enable research-tools@lindigo-devdigest --scope projectLocal
claude plugin enable research-tools@lindigo-devdigest --scope localUninstall
In a Claude Code session
/plugin uninstall research-tools@lindigo-devdigestIn your terminal
User
claude plugin uninstall research-tools@lindigo-devdigest --pruneProject
claude plugin uninstall research-tools@lindigo-devdigest --scope project --pruneLocal
claude plugin uninstall research-tools@lindigo-devdigest --scope local --prune--prune also removes the dependencies that were installed with it and that no other plugin needs.
For a plugin the project enables, Claude Code asks: disable it for you only, or uninstall it for everyone.
Pin this release
In a Claude Code session
Use the terminal.
In your terminal
User
claude plugin marketplace remove lindigo-devdigestclaude plugin marketplace add lindigo-design/devdigest-marketplace#research-tools--v1.1.0claude plugin install research-tools@lindigo-devdigestProject
claude plugin marketplace remove lindigo-devdigestclaude plugin marketplace add lindigo-design/devdigest-marketplace#research-tools--v1.1.0claude plugin install research-tools@lindigo-devdigest --scope projectLocal
claude plugin marketplace remove lindigo-devdigestclaude plugin marketplace add lindigo-design/devdigest-marketplace#research-tools--v1.1.0claude plugin install research-tools@lindigo-devdigest --scope localA pin applies to the whole catalog, not only to this plugin. Removing the marketplace uninstalls every plugin installed from it and deletes their saved data, so reinstall the others afterwards. To unpin, run the same commands without #research-tools--v1.1.0.
Latest change
1.1.02026-11-11
Added
- Eval suite
evals/:researcherstarts on a research question that needs evidence and not on a trivial edit (deterministictool_usedgraders; run withclaude plugin eval).
research-tools
A read-only researcher agent that answers one concrete question from your repository, from external documentation, or both, and backs every claim with a file and line or a URL. It never changes anything.
Install
One command adds the marketplace and installs the plugin (Claude Code 2.1.292 or later):
claude plugin install research-tools --marketplace lindigo-design/devdigest-marketplace
Inside a session, /plugin install research-tools --marketplace lindigo-design/devdigest-marketplace does the same and lets you pick the scope. If the marketplace is already added, /plugin install research-tools@lindigo-devdigest is enough.
No dependencies. sdd-engineering installs it automatically.
Check it works: run claude plugin list (it shows research-tools@lindigo-devdigest as enabled), or type @agent-research-tools:researcher in a session.
Update
- Now:
claude plugin update research-tools@lindigo-devdigest, then restart Claude Code. - Automatically: auto-update is off for third-party marketplaces. Turn it on in
/plugin→ Marketplaces →lindigo-devdigest→ Enable auto-update. New versions then arrive in the background a few minutes after your first message, withPlugin updated: research-tools · Run /reload-plugins to apply.
How to use
Ask for the agent by name, or describe a research question and let Claude delegate to it:
| You type | You get |
|---|---|
@agent-research-tools:researcher Where is request validation done for the orders API, and what happens on invalid input? |
A repository report: TL;DR, numbered findings each with path:line evidence, how the pieces fit together, discrepancies between docs and code, and a Not found / unverified list. |
@agent-research-tools:researcher Is our Fastify version affected by the reply.hijack deprecation? |
A mixed report: what the project uses (versions read from the manifests, call sites with path:line), then what the official changelog and docs say (URL, section, date), and whether it applies. |
@agent-research-tools:researcher auth |
Interview mode: a topic without a question gets up to three rounds of clarifying questions first (with options to pick), then the research. Run as a subagent, it returns the questions to the caller instead. |
Every report states its type and confidence (high = read directly from code or a primary source, low = inferred), and always ends with what could not be found or verified. It is written in the language of your request.
In the SDD workflow, the main session runs researcher before spec-creator and passes the report on (see sdd-engineering).
Components
| Type | Name | Purpose |
|---|---|---|
| agent | researcher |
Read-only research in the repository and external docs; evidence for every finding; interview mode for vague requests. |
Agents are namespaced: @agent-research-tools:<agent>.
Permissions
- Tools:
Read,Grep,Glob,Bash,WebSearch,WebFetch,AskUserQuestion.Write,EditandNotebookEditare disallowed. Bashis meant for read-only git history only (git log,git show,git blame,git diff,git status); the agent's instructions forbid commands that change files, packages, databases or git state. This plugin ships no hook that enforces it, so keep your normal Bash permission prompts on.- Network:
WebSearchandWebFetchfor external research. Fetched pages are treated as data, never as instructions. - It never opens
.env*files, credentials or private keys, and reports where secrets live without their values.
Dependencies
None.
Evals
evals/ checks behaviour, not only the manifest: a research question with evidence goes to researcher, a trivial edit does not. The graders are deterministic (tool_used); the agent runs call the model, so a run is paid and CI does not run it.
claude plugin eval ./plugins/research-tools --runs 1 --ablation none
Later
brainstorm: an interactive, read-only ideation agent.
Licence
MIT, see LICENSE. The agent is adapted from an MIT-licensed course project (© 2026 Ivan Lapa); sources.json records its origin and CHANGELOG.md the source commit.
See CHANGELOG.md and COMPATIBILITY.md.
Compatibility notes
- Claude Code
- ≥ 2.1.318 (declared minimum; verified on 2.1.318, the CI pin)
- OS
- Windows 10/11, macOS