Developers

Testing

Fresh Start Testing

open -a "Hyprnote Staging" --args --onboarding $(date +%s)

This will:

  • Remove settings.json and store.json
  • Reset all permissions

The timestamp is used to detect fresh launches vs relaunches (e.g., during permission setup). If the timestamp is older than 2.5 seconds, it's treated as a restart and --onboarding will be ignored.

Data Paths

There are two base directories:

  1. settings_base - Fixed per build/environment
  2. content_base - Can be overridden via env or settings.json

settings_base

EnvironmentBundle IDFolder Name
devcom.hyprnote.devcom.hyprnote.dev
stagingcom.hyprnote.stagingcom.hyprnote.staging
stablecom.hyprnote.stablehyprnote
nightlycom.hyprnote.nightlyhyprnote

Stable and nightly share the same folder (hyprnote) in production builds.

content_base

Priority:

  1. CONTENT_BASE env var (highest)
  2. base_path in settings.json
  3. Fall back to settings_base

Example:

CONTENT_BASE="$HOME/Library/Application Support/hyprnote" pnpm -F desktop tauri:dev

Platform Paths

PlatformBase Path
macOS~/Library/Application Support/{folder}/
Linux~/.local/share/{folder}/

Files by Base Path

At settings_base (cannot be redirected)

File/DirDescription
settings.jsonApp configuration
store.jsonTauri plugin store
db.sqliteLegacy SQLite DB (release only)
models/stt/STT models
models/llm/LLM models
extensions/User extensions

At content_base (can be redirected)

File/DirDescription
sessions/Session data
sessions/{uuid}/_meta.jsonSession metadata
sessions/{uuid}/transcript.jsonTranscript
sessions/{uuid}/_memo.mdUser notes
sessions/{uuid}/_summary.mdAI summary
humans/Human profiles (.md)
organizations/Organization profiles (.md)
events.jsonCalendar events
calendars.jsonCalendar configs
templates.jsonNote templates
chat_shortcuts.jsonChat shortcuts

Summary

WhatBaseEnv Override
settings.jsonsettings_baseNo
store.jsonsettings_baseNo
db.sqlitesettings_baseNo
models/settings_baseNo
extensions/settings_baseNo
sessions/content_baseYes
humans/content_baseYes
organizations/content_baseYes
JSON files (events, etc.)content_baseYes