Problem
The codebase uses "tool" to mean two completely different things:
| Usage |
Means |
AiTool, tool_id, get_tools() |
A coding agent/provider (Claude Code, Cursor, Windsurf…) |
| MCP "tools" |
The callable functions an MCP server exposes |
This creates confusion in code, UI copy, and user communication. A user reading "Open MCPs page" from inside a "tool" doesn't know if "tool" = the agent or the MCP function.
Proposed rename
AiTool / tool (the agent/provider) → Agent or Provider
Leaning toward Agent since the home page already calls them "Coding Agents".
| Before |
After |
AiTool (TypeScript type) |
Agent |
tool_id field |
agent_id |
get_tools() Tauri command |
get_agents() |
AiToolDetector trait (Rust) |
AgentDetector |
selectedTool in router state |
selectedAgent |
tool-detail view name |
agent-detail |
useTools hook |
useAgents |
| "Coding Agents" in UI (already correct) |
keep |
Scope
Large but mechanical rename. Touches:
- All Rust detector files (
src-tauri/src/detectors/)
- Rust models, commands in
lib.rs
- TypeScript types (
src/types.ts)
- Router state and actions (
src/viewRouter.ts)
- All React components that reference
tool/AiTool
- Tests
Approach
Do in one PR — partial renames are worse than none. Use sed/find-replace for the bulk, then verify TypeScript + Rust compile clean.
Not in scope
- MCP "tool" terminology (MCP spec owns that word, we don't control it)
- UI copy changes beyond what's already labelled incorrectly
Problem
The codebase uses "tool" to mean two completely different things:
AiTool,tool_id,get_tools()This creates confusion in code, UI copy, and user communication. A user reading "Open MCPs page" from inside a "tool" doesn't know if "tool" = the agent or the MCP function.
Proposed rename
AiTool/tool(the agent/provider) →AgentorProviderLeaning toward
Agentsince the home page already calls them "Coding Agents".AiTool(TypeScript type)Agenttool_idfieldagent_idget_tools()Tauri commandget_agents()AiToolDetectortrait (Rust)AgentDetectorselectedToolin router stateselectedAgenttool-detailview nameagent-detailuseToolshookuseAgentsScope
Large but mechanical rename. Touches:
src-tauri/src/detectors/)lib.rssrc/types.ts)src/viewRouter.ts)tool/AiToolApproach
Do in one PR — partial renames are worse than none. Use
sed/find-replacefor the bulk, then verify TypeScript + Rust compile clean.Not in scope