Настольная утилита для быстрого разбора большого количества файлов, открытых в Notepad++: временных заметок, постоянных файлов и файлов, разложенных по пользовательским хранилищам-категориям.
Приложение читает список открытых файлов из session.xml Notepad++, показывает их в таблице или карточках, дает быстрый предпросмотр, помогает сохранять временные файлы в постоянные, переносить файлы между категориями и использовать AI для кратких описаний, тегов и подсказок по недостающим категориям.
dotnet- сборка Release наwindows-latest.CodeQL- статический анализ C# и публикация code scanning alerts.Dependency Review- проверка новых зависимостей в pull request на известные уязвимости.OpenSSF Scorecard- оценка безопасности репозитория и загрузка SARIF в code scanning.Dependabot- еженедельные pull request для NuGet и GitHub Actions.
- Чтение открытых файлов Notepad++ из
%APPDATA%\Notepad++\session.xml. - Определение временных файлов из backup-хранилища Notepad++.
- Табличный и карточный режимы списка.
- Просмотр полного пути, времени создания, времени изменения и размера файла.
- Горизонтальная прокрутка таблицы для длинных путей.
- Правый предпросмотр полного файла при клике по элементу.
- Всплывающий предпросмотр при наведении.
- Перемещение элементов мышью и кнопками вверх/вниз, включая пачку выбранных файлов.
- Массовые операции по выбранным файлам: удаление, перенос в категорию, блокировка, избранное, AI-разметка.
- Сохранение нового порядка обратно в
session.xml. - Сохранение временного файла как постоянного.
- Конвертация постоянного открытого файла обратно во временный.
- Удаление с подтверждением в системную корзину Windows или в выбранную пользовательскую папку.
- Журнал операций и отмена последнего изменения
session.xml, переименования, переноса и удаления в пользовательскую корзину. - Создание хранилищ-категорий как реальных директорий.
- Перемещение файлов в категории и обратно в общий список с физическим перемещением файла.
- Переименование файлов из таблицы, карточек, категории и панели просмотра.
- Пользовательские цвета категорий и автоматический подбор цвета по описанию.
- AI-описание, AI-теги, AI-классификация файлов по категориям.
- Подсказки AI о том, каких категорий не хватает для текущего набора файлов.
- Кэш AI-анализа, чтобы не тратить запросы повторно после перемещения или переименования файла.
- Подтверждение AI-разметки с оценкой количества новых запросов и объема.
- Настройка автоматического AI-описания, чтобы отключить AI-запросы при наведении/открытии и использовать только кэш или ручную кнопку.
- Фильтры для неразобранных файлов, дубликатов и избранного.
- Локальные флаги
Блоки★, привязанные к хэшу содержимого файла. - Проверка последнего GitHub-релиза из приложения.
- Хранение AI-ключа в Windows Credential Manager, а не в файле настроек.
- Windows 10/11.
- Notepad++ с включенным восстановлением сессии.
- .NET 10 SDK для сборки из исходников.
- Опционально: OpenAI-совместимый адрес AI API для описаний, тегов и автокатегоризации.
dotnet restore
dotnet build .\TempNoteManager.csproj -c ReleaseЗапуск из исходников:
dotnet run --project .\TempNoteManager.csproj -c ReleaseПубликация portable-сборки, если .NET Runtime уже установлен у пользователя:
dotnet publish .\TempNoteManager.csproj -c Release -r win-x64 --self-contained falseПубликация self-contained single-file сборки:
dotnet publish .\TempNoteManager.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueАртефакты публикации будут в bin\Release\net10.0-windows\win-x64\publish.
AI в приложении опционален. Если он выключен или не настроен, менеджер продолжает работать как обычный просмотрщик и сортировщик файлов.
Нажмите Настройки, включите AI и задайте:
- Адрес API, например
https://api.openai.com/v1/chat/completions. - Модель.
- AI-ключ.
Ключ сохраняется в Windows Credential Manager как Generic Credential с именем:
TempNoteManager.AI.ApiKey
В settings.json ключ не сохраняется. Там остаются только настройки вроде адреса API, модели и флага включения AI.
Также можно передать настройки через переменные окружения:
$env:OPENAI_API_KEY = "..."
$env:TEMP_NOTE_AI_ENDPOINT = "https://api.openai.com/v1/chat/completions"
$env:TEMP_NOTE_AI_MODEL = "..."Для локального OpenAI-совместимого сервера адрес API может выглядеть так:
http://localhost:11434/v1/chat/completions
AI-анализ кэшируется в:
%APPDATA%\TempNoteManager\ai-cache.json
Кэш привязан к SHA-256 содержимого файла. Поэтому переименование и перемещение файла не заставляет заново покупать AI-анализ.
Категории версионируются по имени и описанию. Если добавить новую категорию или изменить описание существующей, приложение переанализирует только недостающую часть классификации.
%APPDATA%\TempNoteManager\settings.json
%APPDATA%\TempNoteManager\ai-cache.json
%APPDATA%\TempNoteManager\file-state.json
%APPDATA%\TempNoteManager\operation-journal.json
%APPDATA%\TempNoteManager\session-backups\
Windows Credential Manager: TempNoteManager.AI.ApiKey
Notepad++ session file:
%APPDATA%\Notepad++\session.xml
Перед записью изменений в session.xml приложение создает резервную копию рядом с файлом с расширением .bak.
- Для операций, которые меняют
session.xml, лучше закрыть Notepad++ заранее. - Если Notepad++ открыт, он может перезаписать сессию своими текущими данными при закрытии.
- Перемещение в категорию физически перемещает файл в директорию категории.
- Удаление в пользовательскую корзину физически переносит файл в выбранную папку.
- AI может ошибаться в тегах и категориях, поэтому автоматические подсказки стоит воспринимать как черновую сортировку.
TempNoteManager.csproj
App.xaml
MainWindow.xaml
Models/
Services/
CategoryDialog.xaml
RenameFileDialog.xaml
SuggestedCategoriesDialog.xaml
Основные сервисы:
NotepadPlusPlusSessionService— чтение и обновлениеsession.xml.AiSummaryService— OpenAI-совместимые запросы к AI.AiAnalysisCacheStore— кэш описаний, тегов и классификации.FileStateStore— локальные флаги блокировки/избранного по хэшу содержимого.OperationJournalStore— журнал операций, снимкиsession.xmlи отмена операций.UpdateCheckService— проверка последнего GitHub-релиза.WindowsCredentialStore— хранение AI-ключа в Windows Credential Manager.CategoryColorService— подбор и нормализация цветов категорий.FileTextReader— безопасное чтение текста для предпросмотра и AI.
Перед pull request проверьте сборку:
dotnet build .\TempNoteManager.csproj -c ReleaseЕсли менялась логика чтения или записи session.xml, дополнительно проверьте сценарий на копии профиля Notepad++ или на тестовой сессии.
Проект распространяется по лицензии MIT. См. LICENSE.