Skip to main content
Glama
Isuprman

toolscope

by Isuprman

ToolScope

Сканируйте каждый инструмент на вашем Mac и делайте его доступным для поиска людям и ИИ-агентам.

ToolScope каталогизирует GUI-приложения и CLI-инструменты, установленные на вашей машине, — через Homebrew, npm, pipx, uv, /Applications и $PATH — в локальную базу данных SQLite, которую можно искать по возможностям, проверять для наведения порядка или опрашивать из ИИ-агента через MCP. Режим только для чтения: он никогда ничего не удаляет.

Зачем

  • Вы забываете, что установили. Годы brew install, npm install -g и pipx install оставляют сотни записей; brew list — это стена текста без признаков использования.

  • Вы помните задачу, а не имя инструмента. Вы хотите «перекодировать видео», но не можете вспомнить, что это ffmpeg. ToolScope ищет по описаниям и сгенерированным ИИ заметкам о возможностях, а не только по именам.

  • ИИ-агенты не видят вашу машину. Когда агент берёт в работу задачу, у него нет структурированного ответа на вопрос «что умеет этот Mac?». ToolScope отвечает на него одним вызовом инструмента MCP.

Related MCP server: WEATHGARDS

Возможности

  • Одноразовое сканирование всех шести источников в SQLite по адресу ~/.toolscope/toolscope.db; повторные сканирования делают UPSERT на месте и сохраняют first_seen

  • Поиск по возможностям: по именам, описаниям, написанным вручную, и описаниям, сгенерированным ИИ

  • Отслеживание использования через идемпотентный zsh-preexec-хук (usage.count, usage.last_used), чтобы вы знали, что реально мертво

  • Локальная веб-панель (React + TypeScript, без UI-фреймворка): шесть представлений — карточки обзора, список инструментов с поиском, представление неиспользуемых, статистика использования (Top 20 + тренд за 30 дней), руководство по первому запуску и настройки LLM — плюс командная палитра ⌘K и выдвижная панель с деталями

  • stdio MCP-сервер с тремя инструментами для интеграции с агентами

  • Экспорт Brewfile для миграции на другую машину

  • Самопроверка окружения doctor

  • Опциональные однострочные описания возможностей на китайском, генерируемые через любой OpenAI-совместимый endpoint; провайдер/модель/ключ настраиваются во вкладке Settings панели или через toolscope config (хранится локально с правами 0600, переменные окружения не нужны)

  • Опциональная тонкая оболочка Electron вокруг панели

Быстрый старт

Требуется macOS и Python 3.12+.

pipx install toolscope
toolscope scan                  # ~13s; prints per-source counts; missing sources count 0
toolscope list                  # everything recorded so far
toolscope search video --json   # capability search; parseable JSON envelope
toolscope serve                 # dashboard at http://127.0.0.1:8421

Справочник по CLI

Команды вывода списков по умолчанию печатают человекочитаемый текст, а с флагом --json — JSON-обёртку {"items": [...], "total": N}.

Команда

Что делает

toolscope scan

Сканирует все шесть источников, делает UPSERT в БД, печатает количество по каждому источнику

toolscope list [--json]

Перечисляет все записанные инструменты (фильтры --kind / --sort / --unused-days)

toolscope search QUERY [--json]

Ищет по имени / описанию / ai_description

toolscope info NAME [--json]

Детали по одному инструменту; завершается с ненулевым кодом, если не найдено

toolscope serve [--host H] [--port P]

Отдаёт API + панель, по умолчанию порт 8421

toolscope stats [--json]

Сводка {total, by_kind, never_used}

toolscope mcp

Запускает stdio MCP-сервер

toolscope hook

Печатает сниппет для zsh-preexec

toolscope hook-install

Устанавливает сниппет в ~/.zshrc; идемпотентно, безопасно повторять

toolscope export [--out FILE] [--json]

Формирует Brewfile (разделы casks и formulae)

toolscope doctor [--json]

Проверка окружения: менеджеры источников, сборка фронтенда, здоровье БД

toolscope config

Показывает настройки LLM (ключ скрыт); подкоманды config set provider/base-url/model/api-key/clear-api-key и config test

toolscope describe

Опциональный проход LLM, заполняющий пустые ai_description; берёт настройки из config (или переменных окружения); завершается кодом 2 с подсказкой о настройке, если нет API-ключа

Отслеживание использования:

toolscope hook-install   # run once; new shells log each command to ~/.toolscope/usage.log

Миграция на другую машину:

toolscope scan
toolscope export --out Brewfile
brew bundle --file=Brewfile

Для ИИ-агентов

Три поверхности интеграции поверх одного JSON-контракта.

CLI. Команды списков принимают --json и печатают {"items": [...], "total": N}; команды для одного объекта печатают объект напрямую. Объект инструмента несёт поля id, name, kind, version, path, origin, description, ai_description и usage: {count, last_used} или null.

toolscope search video --json
toolscope info ffmpeg --json
toolscope stats --json

HTTP API. toolscope serve отдаёт те же данные как JSON на 127.0.0.1:8421; все list-эндпоинты возвращают обёртку выше: /api/tools, /api/tools/{id}, /api/search?q=, /api/stats, /api/usage/log, /api/usage/stats, /api/export (скачивание Brewfile), /api/doctor, /api/hook/snippet и POST /api/scan. Настройки LLM доступны агентам тоже: GET/PUT /api/settings, GET /api/settings/providers, POST /api/settings/test. API-ключи всегда возвращаются только в замаскированном виде, никогда полностью.

MCP. Сначала установите дополнение: pipx install "toolscope[mcp]". Затем зарегистрируйте сервер у своего клиента — в стиле конфигурации mcpServers в Claude Desktop:

{
  "mcpServers": {
    "toolscope": {
      "command": "toolscope",
      "args": ["mcp"]
    }
  }
}

Доступны три инструмента:

  • search_tools(query, kind?) — поиск по возможностям («умеет ли эта машина делать X»); возвращает обёртку выше

  • get_tool(name) — объект одного инструмента или литерал null, если не найдено (обычный результат, не ошибка)

  • machine_stats() — {total, by_kind, never_used}

Скриншоты

Заглушка до первого полного снимка с реальной машины — запланированные снимки перечислены в docs/screenshots.md.

Как это работает

scan собирает данные из шести источников и делает UPSERT по ключу (name, kind, origin) в SQLite в каталоге ~/.toolscope/. Записи, которые потом пропадают из системы, сохраняются, а не удаляются.

Источник

kind-значения

Сбор через

Отсутствие менеджера

/Applications, ~/Applications

app

разбор Info.plist

в macOS неприменимо

Homebrew

formula, cask

brew list --formula/--cask --versions

пропуск, кол-во 0

Каталоги $PATH

binary

исполняемые файлы по каталогам PATH

пустой результат

Глобальные пакеты npm

npm

npm ls -g --json --depth=0

пропуск, кол-во 0

Окружения pipx

pipx

pipx list --json

пропуск, кол-во 0

Инструменты uv

uv

uv tool list

пропуск, кол-во 0

Источник, чей исполняемый файл менеджера отсутствует, никогда не валит сканирование; он сообщается как пропущенный, с кол-вом 0.

Разработка

git clone <repo-url> && cd toolscope
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest -q                              # backend suite must be green
cd frontend && npm install && npm run build      # dashboard build; tsc must be clean
cd .. && toolscope serve                         # serves frontend/dist at :8421

Необязательная настольная оболочка: см. desktop/ (npm install && npm start).

Лицензия

MIT


Китайская версия

ToolScope складывает накопившиеся за годы на Mac десятки GUI-приложений и сотни CLI-инструментов в локальную базу SQLite (~/.toolscope/toolscope.db) и отвечает на три вопроса: что я установил / что оно умеет / пользовался ли я им. Продукт строго для чтения, ничего не деинсталлирует.

pipx install toolscope            # 需 MCP 时:pipx install "toolscope[mcp]"
toolscope scan                    # 全量扫描六来源,输出各来源计数;缺失来源计 0 跳过
toolscope search 视频 --json      # 能力搜索:跨名称与描述匹配,支持中文关键词
toolscope serve                   # 浏览器打开 http://127.0.0.1:8421 看板
toolscope config                  # 可选:配置 LLM 供应商/模型/Key(看板「设置」页签同源,Key 打码 0600 存储)
toolscope hook-install            # 可选:安装 zsh 钩子记录使用度(幂等)
toolscope export --out Brewfile   # 迁移新机时配合 brew bundle 还原环境

Панель содержит шесть представлений (обзор / список / неиспользуемые / статистика / первый запуск / настройки), командную палитру ⌘K и панель с деталиями. Подключение ИИ-агентов — как в разделе «Для ИИ-агентов» выше: все список-команды CLI поддерживают --json; HTTP API отдаёт те же данные (/api/tools, /api/search?q=, /api/usage/stats, /api/settings и т. д.); либо toolscope mcp регистрируется как stdio MCP-сервер (три инструмента: search_tools, get_tool, machine_stats). Лиценция MIT.

Related MCP Connectors

Related MCP Servers