npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@flownix/cli

v0.1.1

Published

Установка и настройка Flownix: скиллы, MCP-сервер и хук репортера токенов

Readme

@flownix/cli

Установка и настройка Flownix для агентов: скиллы, MCP-сервер и хук репортера токенов — одной командой.

npx @flownix/cli

Визард из трёх шагов:

  1. Скиллы — находит установленных агентов (Claude Code, Cursor, Codex, OpenCode, Windsurf, Gemini CLI, Copilot, Droid, Cline, Kilo, Roo, Qwen), спрашивает, куда ставить, и раскладывает <каталог>/<slug>/SKILL.md. Токен для этого шага не нужен.
  2. MCP-сервер — спрашивает токен доступа, проверяет его на сервере и только потом пишет конфиг. Пустой ответ — законный выбор «пока только скиллы».
  3. Хук репортера токенов — необязательная телеметрия: обработчики Stop и SessionEnd в settings.json Claude Code.

Токен берётся в веб-приложении: Настройки → MCP → Создать токен доступа.

Отдельные команды

npx @flownix/cli skills                      # только скиллы, в найденных агентов
npx @flownix/cli skills --agent claude-code --scope both
npx @flownix/cli mcp --token aiflow_pat_...  # только MCP
npx @flownix/cli hook install --token aiflow_pat_...
npx @flownix/cli hook check                  # установлен ли репортер
npx @flownix/cli hook uninstall
npx @flownix/cli status                      # что уже стоит на машине

| Флаг | Смысл | |---|---| | --token <токен> | токен доступа; читается и из FLOWNIX_TOKEN | | --agent <id,…> | конкретные агенты вместо найденных | | --scope <s> | скиллы: global (по умолчанию), project, both; хук: user, project | | --dir <путь> | каталог настроек Claude Code; сильнее CLAUDE_CONFIG_DIR | | --offline | не спрашивать сервер, поставить копию из пакета | | --dry-run | показать, что будет сделано, ничего не записывая | | --yes, -y | без вопросов: найденные агенты, глобальная установка | | --no-animation | без заставки и анимаций; то же делают NO_COLOR, CI и FLOWNIX_NO_ANIMATION |

Как это выглядит

Вопросы — на @clack/prompts: стрелки и пробел в списке агентов, маска на вводе токена, спиннер на время сетевых вызовов. Кадры спиннера и заставка — знак Flownix из бренд-системы: янтарный квадрат течёт по линии в опору.

Вся анимация выключается сама там, где её некому смотреть: не TTY, CI, NO_COLOR, FLOWNIX_NO_ANIMATION, флаг --no-animation. В этом режиме команды печатают те же строки обычным текстом, поэтому пакет одинаково пригоден и для пайпа, и для CI.

Что пакет делает с вашими файлами

  • Скиллы пишутся только в каталоги, которые вы отметили. Удаляются из них ровно те каталоги, слаг которых сервер объявил отставленным (переименованные ai-flow-*) — иначе агент читал бы устаревшую инструкцию, ничем себя не выдав. Чужие скиллы не трогаются.
  • Конфиг MCP пишется только клиентам с подтверждённым форматом: Claude Code (через claude mcp add, если CLI на месте) и Cursor. Остальным печатается готовый фрагмент — догадка о чужом формате ломает рабочий конфиг молча.
  • settings.json правится разбором, а не текстом: наш обработчик дописывается к чужим спискам, statusLine не трогается вовсе, прежняя версия файла остаётся рядом как .bak.
  • Любой файл, который не разбирается как JSON, остаётся нетронутым, и пакет говорит об этом.

Источник скиллов

Сначала сервер (GET /api/skills, без токена), при недоступности — копия, вшитая в пакет, и об этом говорится прямо. Версия пакета ничего не говорит о версии инструкций: скиллы правятся вместе с продуктом, поэтому держать их в актуальном состоянии — дело скилла /sync-skills, а не переустановки пакета.

Разработка

npm run bundle   # обновить снимок скиллов из pkg/skills/data (запускается и на prepack)
npm test         # node --test

Публикация — одной командой на каждый вид изменения; каждая поднимает версию, создаёт коммит и тег cli-vX.Y.Z (префикс свой, чтобы не сталкиваться с тегами продукта) и публикует:

npm run release:patch   # 0.1.0 → 0.1.1
npm run release:minor   # 0.1.0 → 0.2.0
npm run release:major   # 0.1.0 → 1.0.0

Перед подъёмом версии прогоняются тесты (preversion), снимок скиллов пересобирается на prepack. Если у аккаунта npm включена двухфакторка, код передаётся публикующему шагу:

NPM_CONFIG_OTP=123456 npm run release:patch   # код уходит и в publish
npm run release:publish -- --otp=123456       # если версия уже поднята

Пакет живёт в монорепозитории Flownix (cli/) и публикуется вручную.