Installation and Folder Structure¶
After building (or in the distribution package), the following files and folders are included.
Folder Structure¶
Section summary The app is portable: all data stays next to the EXE. Everything the app creates or uses (settings, themes, logs, search indexes, etc.) is kept together in the
datafolder next to the EXE, while the EXE's own folder holds only the runtime essentials — the DLLs,runtimes/,conpty/,tools/, and so on. When updating from an older version, files from the old layout (directly next to the EXE) are moved into thedatafolder automatically, once, on the first launch after updating — settings, themes, and indexes carry over as they are.bin/contains execution data and must not be deleted (CLAUDE.md). When cache clearing is required, delete onlyobj/.
The following folders live inside the data folder:
- apps/: Contains external integration programs and related tools. The EULA (End User License Agreement) Markdown file is also placed here.
- backups/: Automatic backups of the settings file (
settings.json) are stored here. Generated about 5 minutes after a settings change (and also on tray minimize / app exit), and auto-deleted after 30 days (except locked backups). - index/: Contains search indexes (Lucene) and the history database (SQLite,
zenith.db). Backing up this folder along withsettings.jsonallows migrating all settings and data. - logs/: Application operation logs and detailed error information (exception type, message, stack trace, HResult). On startup, diagnostic info (app version, OS, .NET runtime, architecture, PID) is automatically recorded. Main prefixes:
[STARTUP]/[STARTUP-TIMING]/[CTOR-TIMING]/[APPLY-TIMING]/[LOADED-TIMING]/[Update]/[PaneLayout]/[AI-SYNC]/[PLACEMENT]. Useful for reporting issues. - lang/: Display language JSON files (10 languages:
ja,en,de,es,fr,ko-KR,pt,ru,zh-CN,zh-TW). Languages other than Japanese are AI machine-translated. Custom language files can be added to this folder as.jsonfiles for automatic detection. - themes/: Theme JSON files (50 themes). User customizations are saved as diff-only files in
themes/_custom/*.json(the originals are never modified). - stickman/: Mascot behavior JSON. Base 15 + rewards 150 under
rewards/+archive/(retired patterns). User-added.jsonfiles are loaded automatically. - In addition,
docs/(manual and changelog),macros/(saved macros),manual_index/(manual search index), andAssets/(terminal display resources) are also inside thedatafolder.
The following sit directly next to the EXE:
- runtimes/: OS- and platform-specific system libraries (DLLs).
- conpty/ / tools/: Helper programs used by the terminal feature.
- scripts/: Distribution package creation scripts (
pack.ps1) and code signing scripts (sign.ps1). For developers and distribution managers. - bin/ (during development): Build output. Contains runtime data and must not be deleted. Clear only
obj/when cache-clearing.
Key Files¶
- ZenithFiler.exe: The application executable.
- settings.json (in the
datafolder): Stores user settings including favorites, tab states, window placement, key bindings, and search presets. - .zenith_license (in the
datafolder): License key file (generated when a license is applied). - ZenithFiler.pdb: Debug information file. Not required for execution.
- Dependency libraries (.dll): Components required for application operation.
e_sqlite3.dll: Database engine used for managing history and search indexes.WebView2Loader.dll: Browser component used for displaying the manual and changelog.wpfgfx_cor3.dll/PresentationNative_cor3.dll, etc.: Libraries related to the WPF rendering engine.
EULA (End User License Agreement)¶
On first launch, EULA acceptance is requested within the welcome window's EULA page. Turning on the checkbox enables the "Next" button to proceed to the ready page.
For existing users who have not yet agreed, a separate EULA dialog is displayed as before. The agreed version is recorded in settings.json and is not shown on subsequent launches.