Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    Husky Notes · заметки и напоминания в Cursor

    c__Users_huskynet_AppData_Roaming_Cursor_User_workspaceStorage_empty-window_.png

    Команды Cursor /husky_save и /husky_show: короткий блокнот в чате. Заметки — markdown-файлы, синхронизация через S3-совместимое хранилище (Yandex Object Storage и аналоги). Напоминание — поле той же заметки: toast в Windows по расписанию и просроченные сверху в списке.

    Работает на вашей машине (~/.cursor/), не внутри отдельного git-репозитория приложения.

    Возможности

    • Сохранить текст промпта (/husky_save) или весь чат (/husky_save_all) как заметку
    • Список всех заметок с сортировкой по дате, просроченные напоминания — отдельным блоком (/husky_show)
    • Правка, дописка, поиск без id (/husky_edit)
    • Разовое напоминание на заметку или новая заметка сразу с датой (/husky_remind)
    • Закрыть (/husky_done) и удалить (/husky_delete)
    • Синхронизация между машинами через bucket S3 (один файл на заметку + index.json)
    • Windows-уведомление раз в 5 минут, даже если Cursor закрыт (Task Scheduler)

    Требования

    • Cursor с personal skills и commands (~/.cursor/skills, ~/.cursor/commands)
    • Python 3 (python или py -3), пакет boto3 (ставится скриптом при отсутствии)
    • Сеть до S3-совместимого API
    • Windows 10/11 для toast и schtasks (список и синхронизация — любой Python 3 с boto3)

    Установка и запуск

    1. Skill: C:\Users\huskynet\.cursor\skills\husky-notes\
    2. Команды меню /: C:\Users\huskynet\.cursor\commands\husky_save.md и соседние husky_save_all, husky_show, husky_edit, husky_remind, husky_done, husky_delete
    3. Создайте %USERPROFILE%\.cursor\husky-notes.local.json (файл не светите в чат):
    {
      "endpoint": "https://storage.yandexcloud.net",
      "region": "ru-central1",
      "bucket": "YOUR_BUCKET",
      "prefix": "husky-notes/",
      "access_key": "YOUR_KEY",
      "secret_key": "YOUR_SECRET"
    }

    endpoint / region / prefix можно опустить — подставятся значения из примера. Поле addressing_style: virtual (по умолчанию) или path (MinIO и часть панелей).

    1. Проверка доступа:
    python "%USERPROFILE%\.cursor\skills\husky-notes\scripts\notes.py" ping
    1. Уведомления Windows (один раз):
    python "%USERPROFILE%\.cursor\skills\husky-notes\scripts\notes.py" install-task

    Задача HuskyNotes в Планировщике — каждые 5 минут, только когда пользователь в сессии. Снять: notes.py uninstall-task.

    boto3 уже может быть в системе; иначе первый запуск сделает pip install boto3.

    Использование

    Сохранить заметку из чата

    Текст этого сообщения уходит в S3:

    /husky_save Купить кабель USB-C до пятницы

    или хештег #husky_save. Если команда одна, без текста — сохраняется предыдущее сообщение.

    Весь текущий чат одной заметкой:

    /husky_save_all

    Список

    /husky_show

    Сначала блок напоминаний (просроченные, затем сегодня), потом остальные заметки, новые сверху. В каждой строке короткий id вида 20260831-7k2m.

    Напоминание

    На существующую заметку:

    /husky_remind 20260831-7k2m завтра 10:00

    Новая заметка сразу с датой:

    /husky_remind через 2 часа позвонить в сервис

    Snooze: /husky_remind {id} +1h. Снять дату, не закрывая заметку: /husky_edit {id} и просьба убрать напоминание (--clear-remind).

    Повторы daily/weekly в этой версии нет — только разовая дата.

    Правка, закрытие, удаление

    /husky_edit 20260831-7k2m допиши про гарантию
    /husky_edit 20260831-7k2m
    полный новый текст вместо старого
    /husky_done 20260831-7k2m
    /husky_delete 20260831-7k2m

    Без id можно указать фрагмент заголовка («поправь заметку про кабель») — при нескольких совпадениях агент спросит.

    CLI без чата

    python "%USERPROFILE%\.cursor\skills\husky-notes\scripts\notes.py" show
    python "%USERPROFILE%\.cursor\skills\husky-notes\scripts\notes.py" save --title "Тест" --body-file note.md
    python "%USERPROFILE%\.cursor\skills\husky-notes\scripts\notes.py" tick --dry-run

    Итог — JSON в stdout. Локальный кэш: %USERPROFILE%\.cursor\husky-notes\notes\.

    Структура проекта

    ~/.cursor/skills/husky-notes/
    ├── SKILL.md                 # когда агент сохраняет, показывает, правит
    ├── README.md                # этот файл
    ├── doc/
    │   ├── ARCHITECTURE.md
    │   ├── CHANGELOG.md
    │   └── AI_RULES.md
    └── scripts/
        └── notes.py             # CRUD, sync, tick, schtasks

    Рядом, не в skill:

    • ~/.cursor/commands/husky_*.md — пункты меню /
    • ~/.cursor/husky-notes.local.json — endpoint, bucket, ключи
    • ~/.cursor/husky-notes/ — кэш заметок, index.json, tick.cmd, tick.log

    Технологии

    • Cursor Commands — вызов /husky_* из чата
    • Cursor Agent Skills — разбор промпта, перевод «завтра 10:00» в ISO, запуск CLI
    • Python 3 — YAML-frontmatter, индекс, Task Scheduler
    • boto3 — S3 API (SigV4), любой совместимый endpoint
    • Windows Toast / Balloon — показ due-напоминаний из notes.py tick

    Разрешения и ключи

    Скрипту нужны сеть и (для install-task) создание задачи Планировщика. В Cursor агент запускает его с полными правами shell, как другие husky-скиллы.

    Ключи S3 только в husky-notes.local.json. Не кладите их в skill, git и чат. Для Yandex Object Storage: сервисный аккаунт с правами на bucket, Access Key / Secret Key в консоли.

    Опционально addressing_style: "path", если virtual-hosted имена не резолвятся.

    История изменений

    Формат — Keep a Changelog.

    [Unreleased]

    [1.0.0] — 2026-08-31

    Added

    • Команды /husky_save, /husky_save_all, /husky_show, /husky_edit, /husky_remind, /husky_done, /husky_delete и те же хештеги
    • Скрипт scripts/notes.py: CRUD, поиск, ping, sync с S3 (boto3, SigV4, кастомный endpoint)
    • Локальный кэш и index.json с tombstones для удалений
    • Разовые напоминания: --remind (ISO, дата, +1h), tick, Windows toast, install-task каждые 5 минут

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: