Settings
Every setting in Pulsaria — language, theme, reminders, data folder, backups, crash reporting and updates — with what it does and its default.
All of Pulsaria’s settings live on one screen: App Settings. It is a single scrolling page of cards in a fixed order. Almost every control saves the moment you change it — the data folder is the one exception, it has a Save button.
Opening App Settings
- In the sidebar (or the bottom bar on a narrow window), App Settings is the last entry.
- On macOS you can also use the menu bar: Pulsaria → Settings…, or press
Cmd+,from anywhere in the app.
Quick reference
The cards in the order they appear on screen.
| Card | What it controls | Default |
|---|---|---|
| Language | Interface language | System |
| Theme | Light or dark appearance | System |
| Welcome Tour | Replays the welcome wizard | — |
| License | Trial status, activation, deactivation | 30-day trial |
| Connections | Connector credentials and parameters | No connections |
| Data Directory | Where your KPI data is stored | The app’s own data folder |
| Launch at Login | Start Pulsaria when you log in | Off |
| Reminders | One daily notification | Off · 18:00 · only if today is empty |
| Crash Reporting | Anonymous crash reports | Off |
| Product tour | Replays the guided interface tour | — |
| Feedback | Pre-filled support email | — |
| Export data | JSON and CSV export, JSON import | — |
| Daily auto-export | Scheduled local backup | Off · 18:00 · JSON + CSV |
| Updates | Check for and install a new version | — |
| About | Installed version and release notes | — |
Data Directory and Updates appear on desktop only. Launch at Login appears on macOS only.
There is no search inside settings, no “reset all settings” button, and settings are not part of the data export.
Language
Three options: System, Deutsch, English. The default is System, which follows your operating system’s language.
The change applies instantly, without a restart, and also switches how dates and numbers are formatted. Only German and English exist — you cannot add a language or load your own translation file. Native macOS dialogs (the folder picker, the licence confirmation) follow the system language, not this setting.
Theme
Three options: System, Light, Dark. The default is System, which follows the macOS appearance and switches live when macOS does — no restart needed.
There is nothing else to style: no accent colour, no font size, no density and no high-contrast mode. Chart colours follow the resolved theme.
Welcome Tour
Restart tour reopens the first-run welcome wizard. Despite the hint text (“Show the introduction again the next time you open the dashboard”), the wizard opens immediately.
This is also the only way back to the KPI starter packs once you have at least one project or KPI — the template picker otherwise only appears on a completely empty dashboard.
License
The License card shows your current state and the actions that fit it:
- Trial — a cyan box “Trial — N days left” with a progress bar, a License key field with Activate, and Buy Pulsaria.
- Licensed — a green box with the activation date, the masked key and the last verification date, plus Re-check and Deactivate this device.
- Please reconnect — the same as licensed but amber, when the licence has not been verified online for over 30 days. The app stays fully writable.
- Trial expired / License revoked — a red box, the key field and Buy Pulsaria come back, and the app switches to read-only.
The full behaviour — what read-only blocks, how activation works, moving a licence to another Mac — is on Trial & licence.
Connections
Every connector connection you have set up, with its status. The card description states where the secrets are: “Authentication and parameters for external data sources. Credentials live in your macOS Keychain.”
- Add a connection opens the Connector Library and then the setup wizard.
- Each row has three icon buttons: Test (circular arrow), Edit (pencil) and Delete (bin).
- Test fetches the connector’s first metric and writes the result back to the connection, then shows the value, HTTP status, effective URL, a body snippet and the duration.
- Deleting a connection that KPIs depend on asks first: delete the connection and its KPIs, or delete only the connection and leave those KPIs broken.
A row turns amber with a warning triangle when its last test failed, or when its last successful test is more than 60 days old.
The green check mark on a row means “no known problem” — not “verified”. A connection that has never been tested also shows it. Press Test if you want to know.
Details on the individual connectors are on Connectors.
Data Directory
Where Pulsaria stores your KPI data. Leave Current Path empty (placeholder Default (AppData)) and it stays in the app’s own folder:
~/Library/Application Support/com.onepixelahead.pulsaria/pulsaria/
To change it, click the folder icon, pick a folder in the native dialog, then press Save. The button shows Saved with a check mark for two seconds and the screen reloads its data.
Use the folder picker. Typing or pasting a path into the field does not give Pulsaria permission to write there — only the native dialog grants that, and only the picked folder survives a restart. A hand-typed path usually leads to failed writes and an app that looks empty.
Use Default clears the field and returns to the folder above. Use iCloud only prefills the field with a path into a private iCloud container, and typing or prefilling a path grants no access. For iCloud, use the folder picker on a folder inside ~/Library/Mobile Documents/com~apple~CloudDocs/ instead.
Changing the folder does not copy, move or merge anything — Pulsaria simply starts reading and writing in the new place. Your app settings, connector connections and licence stay behind in the app’s own folder either way. See Where your data lives.
Launch at Login
A single switch, macOS only: “Start Pulsaria when you log in”. Off by default. It registers Pulsaria as a login item so the app is running — and therefore fetching scheduled KPIs — without you opening it manually.
This launches the normal app window. There is no background agent, no menu-bar-only mode and no “start hidden” option; quitting the app stops all scheduling. See Schedules & refresh.
Reminders
Daily reminder is off by default. Switch it on and three controls appear:
| Control | What it does | Default |
|---|---|---|
| Time | The local time the notification fires | 18:00 |
| Only if today is still empty | Skips the reminder when any manual KPI already has an entry for today | On |
| Send test notification | Fires one notification right now | — |
Switching it on asks macOS for notification permission. If macOS denies it, the line “Notifications were denied by the system.” appears under the card for a few seconds.
The reminder fires only if the app is running at exactly that minute — there is no catch-up for a missed one. There is exactly one reminder time for the whole app: no weekday selection, no snooze, no per-KPI or per-project reminders.
Crash Reporting
One switch, off by default: “Send anonymous crash reports”. It takes effect immediately in both directions.
Nothing is loaded until you consent — the crash SDK is only imported after you turn the switch on. When it is on, only crashes and unhandled errors are reported: the exception and its stack trace, with file paths replaced by <path>, and with request, user, machine name and browsing breadcrumbs stripped. KPI names and values are never sent.
There is no separate usage or analytics tracking anywhere in the app, and no in-app view of what was sent. See Privacy: what leaves your Mac.
Product tour
Restart tour replays the short step-by-step tour of the interface. This is a different card from Welcome Tour above, even though both buttons carry the same label.
Feedback
Send feedback opens your default mail app with a message to admin@one-pixel-ahead.com, subject “Pulsaria feedback”. Three diagnostic lines are appended and nothing else:
Version: <app version>
Platform: <your platform string>
Locale: <interface language>
Nothing is sent automatically — you can edit or delete anything before pressing send. If no mail client opens, the toast “Couldn’t open your email app” appears. This is the only support contact in the app.
Export data
Three buttons, each opening a native file dialog:
- Export JSON — a complete backup: projects, KPIs, every entry, alerts, fetch logs and connector connections. Default file name
pulsaria-export-YYYY-MM-DD.json. - Export CSV — a flat table of every entry. Default file name
pulsaria-entries-YYYY-MM-DD.csv. - Import JSON — reads a JSON export back in, with a per-item keep-or-replace choice for anything that already exists.
Connector credentials are never exported; they stay in the macOS Keychain. Import needs an active trial or licence and is disabled otherwise. Export is not gated — you can always get your data out, even from a read-only app. CSV is export-only.
Full detail on both directions: Backup, export & moving Macs.
Daily auto-export
An unattended, dated backup. Off by default. Switch Automatic daily export on and four things appear:
| Control | What it does | Default |
|---|---|---|
| Time | Local time the export runs | 18:00 |
| Format | JSON + CSV, JSON (full backup) or CSV (spreadsheet / LLM) | JSON + CSV |
| Location | Target folder — Choose… to pick one, Reset to go back to the default | <app data>/pulsaria/daily-export |
| Export now | Runs the whole routine immediately, ignoring the switch and the time | — |
It runs once per calendar day, and catches up the same day if the app was closed at that minute. Auto-KPIs are refreshed first so the snapshot is current. The status line to the left of the button reads “No export yet”, “Last export” plus a relative time, or “Last export failed — check the location”.
The card’s own hint states the constraint: the scheduled export can only write inside the app’s data folder, and other locations may work only while the app is open. Same-day files are overwritten, and old ones are never pruned. A failed scheduled run produces no notification — the status line is the only signal.
Updates
The card runs a silent check the moment it appears, and 5 seconds after every app start Pulsaria checks in the background. If a version is available, that background check shows the toast “Update available” with a View action that brings you here.
- Check now runs a check manually and reports the outcome. It reads Check again once an update is pending.
- When an update exists, the card shows “Version X is available”, the version you are currently on, and the release notes in a scrollable box.
- Download & install downloads with a progress bar, installs, and restarts the app.
Nothing is ever downloaded or installed without your click. There is no update channel to pick — no beta or stable choice — no “skip this version”, no auto-install and no rollback.
“You’re on the latest version” is also the card’s fallback state before the first check has returned and after a check that failed. Treat “Last checked at …” as the proof that a check succeeded.
About
Version shows the installed version number. Release Notes below it renders the app’s full changelog in a scrollable box.
That is all this card does: no copy button, no link to an online changelog, no build number or commit hash, no credits screen.
Not in App Settings
KPIs and projects are not managed here. They are created and edited where you see them:
- KPIs — + KPI on the dashboard, or Edit on a KPI’s detail page. See Anatomy of a KPI.
- Projects — the Projects screen and the project detail page. See Projects.
When the trial has expired
App Settings keeps working in read-only mode. Language, theme, data directory, launch at login, reminders, crash reporting, updates, feedback, both exports and Export now all still work, and so does activating a licence. Import JSON and adding, editing or deleting a connection are disabled with the tooltip “Requires a license or active trial”. Testing a connection still works.
If something behaves differently than described here, Troubleshooting covers the usual causes.