---
title: Tools View (browse installed CLIs + linked skills)
---

# Tools View (browse installed CLIs + linked skills)

## What it is

The **Tools view** is a dedicated virtual project that lists every CLI Omniscio integrates with — currently 29 tools across ten categories (AI Agents, Runtimes, Git, Cloud, Containers, Media, Browser, Skill CLIs, System, Security). Every one is a public tool any user can get; a CLI that exists only on one person's machine is never part of this list, and instead appears (italic, under Installed) on that one machine once the list's **Scan now** button finds it on the PATH. Each tool row shows install status and, when installed, its detected version. Selecting a tool opens a detail pane with the description, install status chip, an **Install** button for auto-installable tools (or a **View Instructions** link for system-level ones like Node.js), and a **Used by skills** row with chips for the skills installed on this machine that depend on that tool. Clicking a skill chip jumps straight to the Skills view with that skill selected. Settings → Connected Tools (the update-focused panel) is **kept**, not replaced — it still owns auto-update behaviour, the pending-updates queue, and developer overrides. The Tools view is the discovery surface ("what's available and what needs a skill?"); Toolchain Settings is the control surface ("how do updates roll out?").

Playwright MCP and Superpowers are **not** shown in the Tools view because they aren't CLI binaries — they're Claude Code concepts (an MCP server registered in `~/.claude.json`, and a plugin from a marketplace). They have their own onboarding step and post-onboarding nudge banner. See [mandatory-claude-extensions.md](mandatory-claude-extensions.md).

## Where to find it

Click **Tools** (wrench icon) in the left sidebar — it appears as a virtual project next to Skills, Recipes, Gmail, etc. From Settings → Connected Tools you can also click the **See all tools →** link next to the "Connected Tools" description.

## How it behaves

### How to use it

1. **Open it.** Click **Tools** (wrench icon) in the left sidebar — it appears as a virtual project next to Skills, Recipes, Gmail, etc. From Settings → Connected Tools you can also click the **See all tools →** link next to the "Connected Tools" description.
2. **Browse by category.** The sub-sidebar groups tools under category headers (AI Agents, Runtimes, Git, …) in a stable order. Each row shows the tool name plus an **Installed** (emerald) or **Error** (red) badge when a check result is cached; uncached rows show no badge. Type in the search box to filter by name, id, or description (case-insensitive).
3. **Inspect a tool.** Click any row. The detail pane shows the tool name, category + type chips, description, and a status chip: **Installed vX.Y.Z** (click to copy the version to clipboard) or **Not installed**. Error status surfaces the probe error inline with an alert icon.
4. **Install a tool.** For auto-installable tools (`autoInstallable: true`), the detail pane shows an **Install** button that calls `TOOLCHAIN_INSTALL_TOOL`. While the install runs the button shows a spinner (`isInstalling` state from `toolchain-update-store`), and on success the status chip flips to the new version. Non-auto-installable tools (e.g. Node.js — OS-level) show a **View Instructions** link to their docs site instead.
5. **Jump to linked skills.** When a tool has `linkedSkillIds` authored, a **Used by skills** row appears with one chip per linked skill that is **installed on this machine** — a linked skill you do not have is not shown, and the row disappears when none are installed (prefixes like `user:` / `plugin:` are stripped for display). Click a chip to navigate to the Skills view with that skill pre-selected — handy when a skill's install guide tells you to grab `ffmpeg` first.

## For agents

### How it works

The Tools view is registered as a virtual project via `TOOLS_PROJECT_ID = '__tools__'` in [src/shared/types.ts](../../src/shared/types.ts); the Dashboard routes it into the sub-sidebar + main-view split at [src/renderer/src/features/dashboard/Dashboard.tsx](../../src/renderer/src/features/dashboard/Dashboard.tsx). The UI is two components — [src/renderer/src/features/tools/ToolsSubSidebar.tsx](../../src/renderer/src/features/tools/ToolsSubSidebar.tsx) for the category-grouped list with search, and [src/renderer/src/features/tools/ToolsView.tsx](../../src/renderer/src/features/tools/ToolsView.tsx) for the detail pane (header chips, install button, linked-skill chips, docs link). A minimal Zustand store at [src/renderer/src/stores/tools-store.ts](../../src/renderer/src/stores/tools-store.ts) owns `{ definitions, activeId, searchQuery, isLoaded }`; its `init()` is guarded by a module-level flag so re-mounts don't refetch. The list itself is **code-shipped** (not a remote catalog) — `TOOL_DEFINITIONS` lives in [src/main/services/toolchain/toolchain-registry.ts](../../src/main/services/toolchain/toolchain-registry.ts) (re-exported, alongside the `CHECK_FNS` / `INSTALL_FNS` tables, through the [toolchain-installer.ts](../../src/main/services/toolchain/toolchain-installer.ts) facade), and is served to the renderer through `TOOLCHAIN_GET_DEFINITIONS`. Probe results live in [src/renderer/src/stores/toolchain-update-store.ts](../../src/renderer/src/stores/toolchain-update-store.ts) as `checkResults: Record<ToolId, ToolCheckResult>`, populated by `TOOLCHAIN_CHECK_ALL` at app startup and updated incrementally after each install. `linkedSkillIds` is an authored field on each `ToolDefinition` — the mapping is hand-maintained in `TOOL_DEFINITIONS`, not discovered from skill frontmatter, because one tool may serve skills that never name it explicitly (e.g. `ffmpeg` → `user:video-ocr`). Clicking a skill chip calls `useSessionStore.getState().setActiveProject(SKILLS_PROJECT_ID)` + `useSkillsStore.getState().setActive(skillId)` — pure client-side navigation, no IPC. Settings → Connected Tools is untouched functionally; it still owns `pendingToolUpdates`, the deferred-update queue, and developer overrides — see [toolchain-update-v3.md](toolchain-update-v3.md) for how that half works.

## Related

- [toolchain-update-v3.md](toolchain-update-v3.md) — how tool updates (silent vs deferred) are handled from Settings → Connected Tools
- [mandatory-claude-extensions.md](mandatory-claude-extensions.md) — Playwright MCP + Superpowers plugin (Claude-Code-side extensions, installed in parallel with tools during onboarding)
- [use-skills.md](use-skills.md) — the Skills view that linked-skill chips navigate into
