LOYA Note is a local desktop app for notes, commands, targets, search, backups, and a terminal-style assistant named LOYA.
Version 4 adds grouped notes, safer updates, rollback and recovery tools, recycle bin support, import preview, diagnostics, and stronger search flows.
- Python
>=3.10 - Packages are installed automatically from
Requirements.json - Windows: Qt 6 requires Windows 10 version 1809 or later
- Windows: Microsoft Visual C++ Redistributable x64 should be installed for PyQt6 runtime support
- Windows:
python RunNote.py- Linux:
python3 RunNote.py- The launcher in
RunNote.pycreates the local virtual environment, installs packages, validates the runtime, and starts the app.
- Terminal-style assistant with command history, tab completion, saved searches, and recent searches
- Can open pages, search notes and commands, manage targets, and run updater commands
- Update commands:
updateupdate checkupdate nowupdate versionupdate logsupdate rollback
- Rich text notes with embedded command blocks
- Stable note opening through
note_id - Optional note groups
- Navigate tree with folded groups and right-click create actions
- Group Manager for rename, move, ungroup, and delete-empty-group actions
- Standalone commands and note-linked commands
- Related-note linking, previews, and grouped search results
- Reusable placeholders such as
{IP}and{URL} - Shared across LOYA, Search, and Mini Window
- Group-aware note and command search
- Saved searches and recent searches
- Result previews with note, command, group, tags, and related metadata
- Security, Backup, Import & Export, Tags, Update, Recycle Bin, and Diagnostics pages
- Installed version is read from
CurrentVersion.info - Updater state is stored in
Cores/Update/state.json - Only the official repository is accepted as an update source:
https://github.com/emaldos/LOYA-Note
- Update checks validate repo owner, repo name, semantic version, and package source before install
- Updates can start from:
Settings > Update- LOYA terminal update commands
- Before apply, LOYA creates:
- a data backup in
Backups/ - a code snapshot in
Cores/Update/OldVersions/
- a data backup in
- Only the last 2 code snapshots are kept for rollback
- If startup or update apply fails, recovery mode can open from the launcher, fatal startup path, or LOYA
update rollback
- Deleted notes, standalone commands, and targets are soft-deleted first
- Recycle-bin retention is 30 days before purge
- Imports for notes, commands, targets, and target values run a dry-run preview before write
- Duplicate rows can be skipped or replaced before apply
- Settings > Diagnostics shows version, database status, update state, recycle-bin status, backups, launch state, and log shortcuts
The in-app updater reads the latest GitHub release, not just the latest pushed commit. To publish a new version:
- Bump the version everywhere it is declared:
- Commit and push the code to the official repository
- Create a semantic version tag in the form
vX.Y.Z - Create a GitHub Release from that tag
- Upload a release
.zipasset that contains the app code root Recommended release asset contents:
Assets/Cores/LOYA_Note.pyRunNote.pyRequirements.jsonREADME.mdLICENSEDo not include local runtime folders in the release asset:Data/Logs/Backups/.venv_windows/.venv_linux/Cores/Update/OldVersions/Cores/Update/state.json
helporhelp <command>clearhistoryclear historyresetopen notes|commands|targets|settingsuse target "Name"add target "Name"select target "Name" { KEY="VALUE" }add KEY="VALUE"add element KEY PRIORITYsearch in <notes|commands|targets|targets value> for <filters>moreshow <id>save search <name>run search <name>updateupdate checkupdate nowupdate versionupdate logsupdate rollback
- Database:
Data/Note_LOYA_V1.db - Notes metadata:
Data/notes_meta.json - Settings:
Data/settings.json - Targets:
Data/Targets.json - Target keys:
Data/target_values.json - LOYA history:
Data/LOYA_Chat_history.json - LOYA saved searches:
Data/LOYA_Chat_saved_searches.json - LOYA recent searches:
Data/LOYA_Chat_recent_searches.json - Backups:
Backups/ - Logs:
Logs/ - Update runtime:
Cores/Update/ - Code snapshots:
Cores/Update/OldVersions/
- Visible app version, launcher version, updater version, and README version should stay aligned
- This build is
4.0.1