[{"data":1,"prerenderedAt":263},["ShallowReactive",2],{"cats-ru":3,"apps-cat-all-ru":28},{"id":4,"extension":5,"items":6,"meta":25,"stem":26,"__hash__":27},"categories\u002Fru\u002Fcategories.yml","yml",[7,10,13,16,19,22],{"slug":8,"label":9},"dev-tools","Инструменты разработчика",{"slug":11,"label":12},"ai","ИИ",{"slug":14,"label":15},"games","Игры",{"slug":17,"label":18},"mobile","Мобильные",{"slug":20,"label":21},"cli","CLI",{"slug":23,"label":24},"utilities","Утилиты",{},"ru\u002Fcategories","r8O8ao0LdLLhzuiSt0zGgDX3hRd8PRZb-v6NpWG9E9g",[29,92,178],{"id":30,"body":31,"category":14,"extension":5,"featured":73,"header":74,"meta":88,"slug":89,"stem":90,"__hash__":91},"apps\u002Fru\u002Fapps\u002Ffifteen-game.yml",[32,55,64],{"name":33,"type":34,"args":35},"Возможности","features",{"items":36},[37,40,43,46,49,52],{"title":38,"description":39},"Поля от 3×3 до 6×6","Выбирайте сложность. Все комбинации гарантированно решаемы.",{"title":41,"description":42},"Мульти-сдвиг плиток","Нажмите на любую плитку в том же ряду или столбце, что и пустая ячейка — все промежуточные плитки сдвинутся.",{"title":44,"description":45},"Отслеживание результатов","Счётчик ходов и таймер. Лучший результат сохраняется за сессию.",{"title":47,"description":48},"Клавиатура и мышь","WASD, стрелки или мышь. Окно масштабируется с автоподстройкой поля.",{"title":50,"description":51},"Звуковые эффекты","Звуки от Kenney.nl. Регулируемая громкость.",{"title":53,"description":54},"Кроссплатформенность","Linux, macOS (x86_64 + ARM), Windows. Один бинарник, без зависимостей.",{"name":56,"type":57,"args":58},"Управление","code",{"commands":59},[60,61,62,63],"Сдвиг плитки     WASD \u002F Стрелки \u002F Клик мыши","Навигация по меню     WASD \u002F Стрелки","Выбор     Enter \u002F Пробел \u002F Клик мыши","Назад \u002F Меню     Escape",{"name":65,"type":66,"args":67},"История версий","changelog",{"entries":68},[69],{"date":70,"version":71,"text":72},"2026-05-02","v0.1.0","Первый релиз — поля от 3×3 до 6×6, мульти-сдвиг, учёт результатов, звуковые эффекты",true,{"name":75,"tagline":76,"description":77,"platforms":78,"installCommand":82,"links":83,"requirements":86,"screenshot":87},"Fifteen Puzzle","Классическая головоломка «Пятнашки» с тёплой графикой. Написана на Rust и macroquad.","Поля от 3×3 до 6×6, гарантированно решаемые комбинации, мульти-сдвиг плиток, счётчик ходов, таймер, лучший результат.",[79,80,81],"Linux","macOS","Windows","curl -fsSL appcrate.dev\u002Ffifteen-game | sh",{"github":84,"download":85},"https:\u002F\u002Fgithub.com\u002Folamedia\u002Ffifteen-game","https:\u002F\u002Fgithub.com\u002Folamedia\u002Ffifteen-game\u002Freleases","Бинарный файл Rust. ~1.3 МБ. Лицензия MIT.","\u002Fscreenshots\u002Ffifteen-game.png",{},"fifteen-game","ru\u002Fapps\u002Ffifteen-game","6Ig0EuBC43LQTppy_HW05Z_pM_yVB6WmLwB2yKLK_fc",{"id":93,"body":94,"category":8,"extension":5,"featured":73,"header":164,"meta":175,"slug":154,"stem":176,"__hash__":177},"apps\u002Fru\u002Fapps\u002Fprocess-manager.yml",[95,116,131,143,148,158],{"name":33,"type":34,"args":96},{"items":97},[98,101,104,107,110,113],{"title":99,"description":100},"Конфигурация в стиле docker-compose","Описывайте сервисы в pm.yaml — команда, переменные окружения, depends_on, рабочая директория, политика перезапуска.",{"title":102,"description":103},"Интерактивный TUI","Навигация по сервисам, запуск\u002Fостановка\u002Fперезапуск по отдельности или всех сразу. Управление с клавиатуры.",{"title":105,"description":106},"Режим демона","pm up запускает фоновый демон. Сервисы продолжают работать после выхода из TUI.",{"title":108,"description":109},"Логи по сервисам","pm logs \u003Cсервис> показывает вывод. Добавьте -f для потоковой трансляции.",{"title":111,"description":112},"Политики перезапуска","no, on-failure или always. Экспоненциальная задержка: от 1с до 32с.",{"title":114,"description":115},"Горячая перезагрузка","pm reload подхватывает изменения конфига без перезапуска работающих сервисов.",{"name":117,"type":57,"args":118},"Использование",{"commands":119},[120,121,122,123,124,125,126,127,128,129,130],"pm                  # запустить TUI (по умолчанию)","pm up               # запустить все сервисы","pm up api db        # запустить выбранные","pm stop             # остановить все","pm stop api         # остановить выбранный","pm restart          # перезапустить все","pm status           # таблица статусов","pm logs api         # логи сервиса","pm logs api -f      # следить за логами","pm reload           # перезагрузить конфиг","pm shutdown         # остановить демон",{"name":132,"type":57,"args":133},"Клавиши TUI",{"commands":134},[135,136,137,138,139,140,141,142],"↑\u002F↓ или k\u002Fj   Навигация по сервисам","s \u002F Enter      Запустить выбранный","x              Остановить выбранный","r              Перезапустить выбранный","a              Запустить все","z              Остановить все","R (shift)      Перезагрузить конфиг","q              Выход из TUI (сервисы продолжают работать)",{"name":144,"type":145,"args":146},"Пример конфигурации","markdown",{"content":147},"Создайте `pm.yaml` в корне проекта:\n\n```yaml\nservices:\n  web:\n    command: python3 -m http.server 8080\n    environment:\n      PYTHONUNBUFFERED: \"1\"\n    depends_on:\n      - logger\n    restart: on-failure\n\n  logger:\n    command: bash -c \"while true; do echo heartbeat; sleep 5; done\"\n```\n\nВсе поля кроме `command` опциональны. `working_dir` по умолчанию — директория конфига.\n",{"name":149,"type":150,"args":151},"Теги","tags",{"tags":152},[153,154,155,156,157,20],"rust","process-manager","docker-compose","tui","daemon",{"name":65,"type":66,"args":159},{"entries":160},[161],{"date":162,"version":71,"text":163},"2026-04-19","Первый релиз — демон, TUI, YAML-конфиг, политики перезапуска, логи по сервисам",{"name":165,"tagline":166,"description":167,"platforms":168,"installCommand":169,"links":170,"requirements":173,"screenshot":174},"pm","Менеджер процессов в стиле docker-compose с TUI-панелью. Запускает любые команды.","YAML-конфиг, порядок зависимостей, политики перезапуска, интерактивный TUI, демон, логи по сервисам.",[79],"curl -fsSL appcrate.dev\u002Fpm | sh",{"github":171,"download":172},"https:\u002F\u002Fgithub.com\u002Folamedia\u002Fprocess-manager","https:\u002F\u002Fgithub.com\u002Folamedia\u002Fprocess-manager\u002Freleases","Бинарный файл Rust. Linux x86_64. Лицензия MIT.","\u002Fscreenshots\u002Fprocess-manager.png",{},"ru\u002Fapps\u002Fprocess-manager","GGz362ARS7ezGHwrtQ44KiuYzj1oZ-p_9Pu8iRuEHhk",{"id":179,"body":180,"category":20,"extension":5,"featured":73,"header":249,"meta":259,"slug":260,"stem":261,"__hash__":262},"apps\u002Fru\u002Fapps\u002Fskills.yml",[181,202,213,230,234],{"name":33,"type":34,"args":182},{"items":183},[184,187,190,193,196,199],{"title":185,"description":186},"Любой git-источник","GitHub, GitLab, Bitbucket, self-hosted, SSH, локальные пути. Не привязан к одному провайдеру.",{"title":188,"description":189},"Авто-определение агентов","Находит установленные агенты (Cursor, Claude Code, Codex, Windsurf, Cline и др.) и устанавливает навыки в нужные места.",{"title":191,"description":192},"Интерактивные запросы","Множественный выбор навыков и агентов. Запоминает предпочтения между запусками. Неинтерактивный режим для CI.",{"title":194,"description":195},"Симлинк или копия","Одна каноническая копия с симлинками для каждого агента или независимые копии. Глобальная или проектная область.",{"title":197,"description":198},"Lock-файл","Глобальные и локальные lock-файлы отслеживают источники, хеши, временные метки. Обновление и восстановление из lock.",{"title":200,"description":201},"Обнаружение навыков","Рекурсивный поиск SKILL.md файлов в любой структуре репозитория. YAML frontmatter для метаданных.",{"name":117,"type":57,"args":203},{"commands":204},[205,206,207,208,209,210,211,212],"$ skills add owner\u002Frepo","$ skills add https:\u002F\u002Fgitlab.com\u002Fgroup\u002Frepo","$ skills add .\u002Flocal-skills --global","$ skills add owner\u002Frepo --agent cursor --skill coding-mode -y","$ skills list --json","$ skills update","$ skills remove old-skill","$ skills init my-new-skill",{"name":214,"type":150,"args":215},"Поддерживаемые агенты",{"tags":216},[217,218,219,220,221,222,223,224,225,226,227,228,229],"Claude Code","Cursor","Codex","OpenCode","Cline","Windsurf","Roo Code","Goose","Augment","Continue","GitHub Copilot","Gemini CLI","Hermes",{"name":231,"type":145,"args":232},"Почему мы это создали",{"content":233},"У каждого AI-агента свой каталог навыков\u002Fправил. Если вы используете несколько агентов или переключаетесь между ними, приходится копировать SKILL.md файлы вручную. Если вы ведёте общий репозиторий навыков, стандартного способа установки из него нет.\n\nSkills — единый бинарник, который понимает конвенции каталогов всех основных агентов. Укажите на любой git-репозиторий (или локальную папку), выберите нужное, и он сделает остальное — клонирование, обнаружение, санитизация, симлинки, отслеживание в lock-файле и обновления.\n\nНаписан на Rust. Без Node, без Python, без runtime. Скачал, запустил, готово.\n",{"name":235,"type":66,"args":236},"Журнал изменений",{"entries":237},[238,242,246],{"date":239,"version":240,"text":241},"2026-04-28","v0.3.0","Двухэтапный процесс установки, сохранение предпочтений в сессии, все навыки отключены по умолчанию",{"date":243,"version":244,"text":245},"2026-04-15","v0.2.0","Команда update, lock-файл v3, определение изменений по хешу",{"date":247,"version":71,"text":248},"2026-03-30","Первый релиз — add, list, remove, init, поддержка 12 агентов",{"name":250,"tagline":251,"description":252,"platforms":253,"installCommand":254,"links":255,"requirements":258},"Skills","Установка навыков AI-агентов из любого git-источника. Одна команда — работает с каждым агентом.","Один бинарник, который понимает конвенции каталогов всех основных агентов. Укажите на любой git-репозиторий, выберите нужное, и он сделает остальное.",[79,80,81],"curl -fsSL appcrate.dev\u002Fskills | sh",{"github":256,"download":257},"https:\u002F\u002Fgithub.com\u002Fappcrate\u002Fskills","https:\u002F\u002Fappcrate.dev\u002Fskills\u002Freleases","Бинарник на Rust, без runtime-зависимостей. ~4 МБ. Требуется установленный git.",{},"skills","ru\u002Fapps\u002Fskills","Y7rxBFRorPlZCWMNANPBiGDGCU4fBrPhnz3itRcFIxE",1777756433983]