Trial & licence
How the 30-day trial works, what read-only mode blocks, and how to buy, activate, move and re-check your Pulsaria licence.
Pulsaria starts with a 30-day trial that has nothing switched off, and it is unlocked afterwards with a licence key. There is no account, no sign-up and no password anywhere in the app. This page covers the trial, what happens when it ends, and everything around the key.
The 30-day trial
The clock starts the first time you launch Pulsaria and runs for 30 days. The trial unlocks the complete app: every KPI, every connector, unlimited entries, schedules, export and import. Nothing is held back for a paid tier, and there is no reduced free tier. The only difference after day 30 is read-only mode.
To see where you stand, open App Settings — the last item in the sidebar — and look at the License card. During the trial it shows a cyan box reading Trial — 30 days left with a progress bar that fills as the trial runs down. The day count is rounded up, so the box reads Trial — 1 day left for the whole final day. No end date is shown, only the count.
Once ten or fewer days remain, a banner appears on the Dashboard as well (see below).
When the 30 days are up, nothing is deleted and the app does not quit. It switches to read-only mode and your data stays exactly where it is.
The trial cannot be extended, paused or restarted from inside the app.
Where the trial clock lives
The trial start is anchored in two places at once:
firstLaunchAtinside~/Library/Application Support/com.onepixelahead.pulsaria/pulsaria/config.json- a plain ISO timestamp in
~/.pulsaria-trial
The earlier of the two counts. If only one of them exists, Pulsaria fills in the other from it, and an existing ~/.pulsaria-trial is never overwritten. Deleting one of the two therefore changes nothing. If neither can be read, Pulsaria assumes a fresh trial rather than locking you out.
The Dashboard banner
A single banner on the Dashboard — below the headline and the status pills, above the alert banner — scales with your licence state.
| State | Banner | Buttons |
|---|---|---|
| Licensed | none | — |
| Trial, more than 10 days left | none | — |
| Trial, 4–10 days left | amber, N days left in your trial | Buy Pulsaria |
| Trial, 3 or fewer days left | red, Only N days left in your trial | Buy Pulsaria |
| Trial expired | red, Trial expired — Pulsaria is read-only | Buy Pulsaria, License settings |
| Not verified for over 30 days | amber, Please reconnect — license not verified recently | Re-check |
| Revoked | red, License revoked | License settings |
The banner refreshes itself whenever the licence state changes and whenever the window regains focus. Both License settings and Re-check are links to App Settings — the actual re-check runs there, not in the banner.
The Dashboard is the only screen with this banner. On every other screen, read-only mode shows up only as greyed-out buttons and their tooltips.
Read-only mode
Read-only mode starts when the trial has expired, or when a licence you activated was later revoked. It never touches data on disk. Everything you recorded stays visible and exportable — only actions that create or change data are blocked.
Blocked controls are greyed out with the tooltip Requires a license or active trial. If a blocked action is triggered anyway, a toast appears: Read-only mode — Pulsaria is in read-only mode. Activate a license to make changes.
What is blocked
- Adding, editing and deleting KPI values — on the entry screen, in the quick-entry dialog, on the KPI detail page and in its history table
- Creating, editing, duplicating and deleting KPIs
- Creating, editing and deleting projects, and moving a KPI to another project
- Creating, editing and deleting connector connections
- Refresh in the Dashboard header, which fetches all auto-KPIs
- Import JSON
- The background scheduler: automatic KPI fetches and the daily auto-export both stop
What still works
- Every screen: Dashboard, Projects, KPI detail, Reports, Fetch Log
- Export JSON, Export CSV, and Export now in the daily auto-export card
- Testing a connector connection, including storing the test result
- Dismissing alerts and changing the daily reminder
- Every preference in App Settings — language, theme, data directory, launch at login, crash reporting, updates
- Activating a licence
You can always get your numbers out, whatever the licence state. See Backup, export & moving Macs.
Two rough edges
Run now on a single auto-KPI — the play icon on a Dashboard card, the pill button in the KPI detail header — is not greyed out in read-only mode. Pressing it fails with the generic toast Auto-KPI failed and the raw reason Trial expired or License revoked, instead of the friendlier read-only message.
When the background scheduler pauses because the app is read-only, there is no in-app notice at all. Auto-KPIs simply stop updating and the daily auto-export stops writing files. If your numbers went stale after the trial ended, this is why. See Schedules & refresh.
Buying a licence
Buy Pulsaria opens the checkout page in your default browser. You find it in the License card directly under the licence-key field, and in the Dashboard banner. The card shows it while you are in the trial, after the trial expired, and when a licence was revoked — an active licence hides it.
Payment happens entirely on the checkout provider’s site (Polar). Pulsaria never sees card data and never asks for any. The app displays no price anywhere; the checkout page does.
If the browser cannot be opened, a toast Couldn’t open checkout appears with the underlying error underneath. The app has no fallback for this; check that a default browser is set in macOS and try again.
After the purchase, Polar sends the licence key by email. That email is also where to look the key up later — Pulsaria cannot retrieve it for you, and there is no in-app account or order history.
Entering your key
- Open App Settings → License.
- Paste the key into the License key field. It shows
XXXX-XXXX-XXXX-XXXXas a placeholder. - Press Activate. The button reads Activating… while the request runs.
Activation registers this Mac with Polar under a device label taken from your machine’s hostname. The label is neither shown nor editable in the app. Activation needs an internet connection — there is no offline or manual activation code.
On success you get the toast License activated and the card turns green. It then shows the headline Licensed, below it an Activated line with the date and the masked key — the first dash-separated segment stays readable, everything after it becomes bullets — and a smaller Last verified line with the date of the last successful check.
The key field and Buy Pulsaria disappear; Re-check and Deactivate this device take their place.
If activation fails
The toast title is always Activation failed: — the useful part is the line underneath it.
| Message | What it means |
|---|---|
| Couldn’t reach the license server. Check your internet connection and try again. | The request never got through. Check the connection, a VPN or a firewall, then try again. |
| License key not found. Check for typos or find the key in your Polar order confirmation email. | The server does not know this key. Usually a typo or a truncated copy-paste. |
| This license is already active on the maximum number of devices. Deactivate one device from your Polar customer portal first. | Every activation slot is taken. Free one — see below. |
| This license has been revoked. Contact support if this is unexpected. | The key was cancelled on the seller’s side. |
| Invalid license key format. | The key does not look like a licence key at all. |
A key that the server accepts but reports in any state other than “granted” is rejected too, and lands in the same toast.
Devices and activation slots
A key can be activated on a limited number of devices. Pulsaria never shows that limit or how many slots are in use — the only time it comes up is the activation-limit error above.
Moving to another Mac
On the Mac you are leaving:
- App Settings → License → Deactivate this device.
- Confirm the macOS dialog titled Deactivate license: “Deactivating frees up a slot so you can activate another device. You’ll need to re-enter your key to use Pulsaria with full features again on this machine. Continue?”
Pulsaria deletes the local licence file only after the server has confirmed the release. If the network call fails, the licence stays in place rather than burning a slot that is still counted on the server side. Then activate the same key on the new Mac.
Deactivating removes the licence, not your data — your KPI folder is untouched. But this Mac falls back to trial state, and if the 30 trial days have long since passed, it goes read-only immediately.
Deactivation needs internet. If the other Mac is sold, wiped or broken, free its slot in the Polar customer portal instead; the app has no link to the portal and cannot release a slot it can no longer reach.
Moving the data is a separate step — see Backup, export & moving Macs.
Offline use and re-checks
Once activated, Pulsaria works offline indefinitely. It does not phone home on every launch.
- Seven seconds after start, and only if the last successful verification is more than 30 days old, a silent background re-check runs. It never shows a toast.
- App Settings → License → Re-check forces one at any time. The button reads Checking…, then you get either License verified or Re-check failed with the server’s message.
If no check has succeeded for more than 30 days, the state turns amber: card and Dashboard banner read Please reconnect — license not verified recently, with the explanation “Pulsaria hasn’t been able to verify your license for over 30 days. Connect to the internet and re-check to silence this banner.” This is a nudge and nothing more — the app stays fully writable. Going online and pressing Re-check clears it. Nothing harsher happens if you ignore it for months.
Only a definite negative answer switches the app to read-only: the key reported as revoked or disabled, or the key or activation no longer existing on the server. A network error or an ambiguous server response is recorded in the licence file and leaves your local status alone — a server hiccup will not lock you out.
If a licence is revoked
A refund, a chargeback or a support action can revoke a key. The License card then turns red:
License revoked — This license has been revoked (refund or support action). Contact support if this is unexpected.
The app goes read-only, and it stays that way across restarts and offline: the revoked status is stored locally, so no further network call is needed to enforce it. The key field and Buy Pulsaria come back, so a replacement key can be activated straight away. Re-check and Deactivate this device are not shown in this state, and activating a different key is the only way out of it.
The card has no support link, despite what its text suggests. Support runs through App Settings → Feedback → Send feedback, which opens a pre-filled email to admin@one-pixel-ahead.com.
Where licence and trial data live
| What | Where |
|---|---|
| Licence | ~/Library/Application Support/com.onepixelahead.pulsaria/pulsaria/license.json |
| Trial anchor | ~/.pulsaria-trial |
App settings, incl. firstLaunchAt | ~/Library/Application Support/com.onepixelahead.pulsaria/pulsaria/config.json |
license.json holds the full key in plain text — it is needed for every re-check — plus the activation id, the device label, the activation and last-verification timestamps, the last validation error, and the status active or revoked. The file is not encrypted. Of everything Pulsaria handles, only connector credentials go into the macOS Keychain.
If license.json is corrupt or missing its key, activation id or activation date, Pulsaria treats it as “no licence” and falls back to trial state instead of erroring out.
Deleting
license.jsonremoves the licence from this Mac but does not free the activation slot on the server. Use Deactivate this device for that.
None of these three files are part of a JSON export. Moving your data to another Mac does not move the licence with it. See Where your data lives and Privacy: what leaves your Mac.
When something is stuck
- Buttons greyed out, tooltip “Requires a license or active trial” — the trial is over or the licence was revoked. Check App Settings → License.
- Auto-KPIs stopped updating on their own — most likely read-only mode; the scheduler pauses without a notice.
- Amber “Please reconnect” and no internet nearby — ignore it, everything keeps working. Re-check when you are back online.
- Activation says the device limit is reached — deactivate an old Mac from the app if you still have it, otherwise from the Polar customer portal.
More in Troubleshooting.