Configuration
Configuration file reference
Hyprlayer stores its configuration in a JSON file.
Location
Section titled “Location”| Platform | Path |
|---|---|
| Linux | ~/.config/hyprlayer/config.json |
| macOS | ~/Library/Application Support/hyprlayer/config.json |
| Windows | %APPDATA%\hyprlayer\config.json |
Override with --config-file <PATH> on any command.
View Configuration
Section titled “View Configuration”hyprlayer thoughts confighyprlayer thoughts config --jsonhyprlayer thoughts config --editSchema
Section titled “Schema”{ "version": 4, "lastVersionCheck": 1709913600, "agentsInstalledSha": "d705a48094606e267f817226f553a5c5a9764072", "agentsInstalledVersion": "1.6.2", "disableUpdateCheck": false, "autoUpdate": false, "thoughts": { "user": "alice", "backend": { "kind": "git", "thoughtsRepo": "~/thoughts", "reposDir": "repos", "globalDir": "global" }, "repoMappings": { "/home/alice/Projects/my-project": "my-project", "/home/alice/Projects/work-app": { "repo": "work-app", "profile": "work" } }, "profiles": { "work": { "backend": { "kind": "notion", "parentPageId": "abc123...", "databaseId": "def456..." } } } }, "telemetry": { "mode": "anonymous", "installationId": "...", "apiKeySource": "default", "lastFlush": 0 }}Fields
Section titled “Fields”Top Level
Section titled “Top Level”| Field | Type | Description |
|---|---|---|
version |
number | Schema version, currently 4 |
lastVersionCheck |
number | Unix timestamp of the last hyprlayer release check |
disableUpdateCheck |
boolean | Set to true to skip the daily release check |
autoUpdate |
boolean | Apply updates silently during the daily check. PowerShell-script installs only; every other method keeps the notification |
agentsInstalledSha |
string | Commit SHA of the agent bundle on disk |
agentsInstalledVersion |
string | Release version of the agent bundle on disk |
agentsPinnedVersion |
string | Set by hyprlayer ai reinstall --version; holds the bundle at that release across binary upgrades |
lastAgentCheck |
number | Backoff anchor after a failed bundle refresh; cleared on success |
thoughts
Section titled “thoughts”| Field | Type | Description |
|---|---|---|
user |
string | Your username (cannot be “global”) |
backend |
object | The default storage backend, discriminated by kind (see below) |
repoMappings |
object | Maps local repo paths to thoughts directory names |
profiles |
object | Named profiles, each { "backend": { ... } } |
Each repoMappings entry is a string (directory name) or an object with repo and optional profile.
backend
Section titled “backend”One object with a kind of git, obsidian, notion, or anytype. The other fields depend on the kind. Optional fields are omitted when unset.
| Field | Used by | Description |
|---|---|---|
thoughtsRepo |
git |
Path to the thoughts repository |
reposDir |
git, obsidian |
Subdirectory for project-specific thoughts |
globalDir |
git, obsidian |
Subdirectory for cross-project thoughts |
vaultPath |
obsidian |
Absolute path to the Obsidian vault root |
vaultSubpath |
obsidian |
Subfolder within the vault (default: hyprlayer) |
parentPageId |
notion |
Notion parent page ID where the thoughts database lives |
databaseId |
notion |
Set after the first /create_plan creates the database |
spaceId |
anytype |
Anytype space ID |
typeId |
anytype |
Set after the first /create_plan creates the object type |
apiTokenEnv |
anytype |
Env var holding the Anytype API key (default: ANYTYPE_API_KEY) |
See Storage Backends for the full per-backend behavior.
telemetry
Section titled “telemetry”| Field | Type | Description |
|---|---|---|
mode |
string | anonymous, identified, or off |
installationId |
string | Per-installation UUID, kept across off/on cycles |
apiKeySource |
string | Where the PostHog key came from: default, manual, or github |
orgId |
string | Organization tag, when set |
lastFlush |
number | Unix timestamp of the last spool flush |
Manage these with hyprlayer telemetry rather than by hand.