FrontierStack User Manual Manual home
Desktop Manual Mobile Manual 日本語 frontierstack.app ↗
17

Chapter 17

Settings, Licensing & Updates

One Settings pane holds every preference; an Ed25519 licence unlocks your tier offline; Sparkle keeps the app current; and a single switch turns telemetry off.

Almost everything you can configure about FrontierStack itself — as opposed to the services it manages — lives in one place: the Settings pane. This chapter is the reference for that pane and for the three systems that surround it: how the app is licensed, how it updates itself, and what it does and does not send back about how you use it. Several of these controls also shape the AI Administrator, so it cross-references Chapter 13; for anything that goes wrong, see Chapter 18.

17.1The Settings pane

Open it from the sidebar, or from the app menu with ⌘, — the standard macOS Settings window is just a signpost with a Full Settings button that opens the same pane, because FrontierStack keeps every preference together rather than splitting them between two windows. The pane is a single scrolling form of grouped sections: General, License & Subscription, Updates, Privacy & Diagnostics, Locations, Text Editor, Images, Menus, Capabilities, and the cloud/backup destinations.

The General section holds the preferences you set once and forget. Pick a Default Browser (Safari, Chrome, Firefox, Edge, Brave or Arc, if installed) and every "Open in Browser" action across the app uses it. Show in Menu Bar adds a global menu-bar item for starting and stopping your service group. Appearance forces Light or Dark regardless of the system setting, and Theme (accent) tints the whole UI — pair Amber or Terminal Green with Dark for a classic terminal look. Launch at login and a keyboard-navigation focus ring round it out.

Two General toggles deserve attention because the AI can also set them (below). Run commands in the in-app console is on by default: installs and shell commands stream live in a FrontierStack window and panes auto-refresh when a command finishes. Turn it off to send those commands to Terminal.app instead. Interactive sessions — SSH, REPLs — always open in a real terminal. The companion External Terminal picker (under Text Editor) chooses which terminal app the "Open in Terminal" actions use: Terminal and iTerm run the command inline, while other apps open an executable .command.

screenshot to be added
Figure 17.1. The Settings pane, scrolled to General, License & Subscription and Updates.Capture: capture: Settings pane with General expanded showing Default Browser, Show in Menu Bar, Launch at login and the in-app console toggle, plus the License and Updates sections below

17.2App-setting keys the AI can change

A handful of these preferences are exposed to the AI Administrator through the get_app_settings and set_app_setting tools, so you can simply ask: "switch my default browser to Firefox", or "stop showing the Presets menu". The assistant reads and writes only the keys in the table below — nothing else about Settings is reachable from a prompt.

KeyTypeWhat it controls
defaultBrowserBundleIDbundle idThe browser used by every "Open in Browser" action. Empty = system default.
showInMenuBarboolWhether the global menu-bar item appears.
preferInAppConsoleboolRun commands in the in-app console (on) or send them to Terminal.app (off).
menu.showPresetsboolShow the Presets menu in the menu bar.
menu.showLocationsboolShow the Locations menu in the menu bar.

The last two also live under the Menus section of the pane, alongside the App Settings… (⌘,) button. Hide a menu you never use; show it again the moment you do.

17.3Accounts and advanced settings

Two panes sit just outside Settings but are worth naming here. The Accounts pane (sidebar ▸ Accounts) is not about billing — it connects FrontierStack to a directory service (Active Directory, Microsoft Entra ID, Okta, OpenLDAP, FreeIPA, 389 Directory Server, Jamf or a local/remote Open Directory), tests the binding, and imports user accounts. It also includes an Open Directory editor for managing OD users and groups on a Mac that runs one. Directory work is covered with the rest of identity in Chapter 10.

"Advanced settings" in FrontierStack means the per-site Advanced Settings sheet for a website — the full Apache <Directory> and <VirtualHost> editor (Options flags, AllowOverride, Require rules, ServerAdmin, custom ErrorDocument). You reach it from a site in the Sites pane; anything the form doesn't model is editable through Edit as Text…. It is documented with the web stack in Chapter 7.

17.4Custom Instructions for the AI

The single most powerful "setting" for the AI is not in the Settings pane at all: it is the Custom instructions bar at the bottom of the AI Administrator pane. The text you write there (stored as frontierstack.md) is appended to every AI request — the assistant chat, one-shot Ask AI, skills, and the MCP server — so it is the right place to state persistent preferences once: your preferred language and tone, things the assistant should always or never do, and facts about your setup it should assume.

Click Custom instructions to expand the editor, toggle Add my instructions to every AI prompt, and type. Examples that work well: "Always reply in Japanese", "Prefer Homebrew over Docker", "Never restart MySQL during business hours (09:00–18:00)", "My production fleet host is web1.example.com". Save with the Save button, or open the file in your external editor. Because this file flows through the whole harness chain, it complements — but does not replace — the trust model in Chapter 13: instructions steer the AI's behaviour, while the read-only default and per-action approvals govern what it is allowed to do.

NoteJust above the custom-instructions bar sits the Script secrets (.env) vault. The AI only ever sees a secret's NAME (e.g. DB_PASSWORD); the value is injected as an environment variable at run time and never sent to a cloud model. Reference secrets in scripts as $NAME. See Chapter 13.

17.5Command-Line PATH and Homebrew

Two reference panes from Chapter 2 belong to the same family of app-level controls. The Command-Line PATH pane (sidebar ▸ Command-Line PATH) shows the directories a login shell searches for commands and lets you add your own to a managed block in ~/.zprofile (or the profile you choose); entries you add are prepended to PATH and take effect in a new terminal. The app already deep-resolves tools through the shell, so this is mainly to make commands such as mlx_lm.server resolve instantly. The Homebrew pane installs and updates Homebrew itself and the formulae behind many services. Both are covered in full when you first set up the app; this chapter simply notes that they live alongside Settings as the place to manage the command environment.

17.6Licensing

FrontierStack is a free download with paid tiers, sold and billed through Square — card data is vaulted by Square, never seen by FrontierStack. After purchase you receive a licence code in the form FSK-XXXX-XXXX-XXXX. Open Settings ▸ License & SubscriptionActivate License…, paste the code, and this Mac is bound to your plan. Promo codes are applied at checkout on the website.

TierPriceServersNotes
Free modeNot a checkout plan2The built-in fallback without a paid entitlement; limited features.
Standard¥15,000/year or ¥45,000 one-time10Add-on server packs widen the limit. The one-time purchase receives Lifetime status.
Standard — Bleeding edge¥7,500/year10Campaign subscription with no price rise after year one while it remains active.
Full Fleet¥45,000/yearUnlimitedEverything, plus the Wild Frontier update channel. No one-time or Lifetime option.

The section shows your tier, a status pill (Active, Lifetime, Past due, Canceled), the renewal date, your licence code and this Mac's server cap. Manage / Renew… and Buy / Upgrade… open the website; the menu offers Check status now, Deactivate this Mac and Sign out. One licence equals one Mac, but you can self-transfer it to a new Mac a limited number of times per year — the old Mac quietly drops to Free on its next check-in. The same self-serve status and seat list are available on the My Licence web page at frontierstack.app/license. The identical controls also live in a dedicated Licences pane in the Overview group of the sidebar, for when you want a full-window view rather than the Settings section.

SecurityYour licence is an Ed25519-signed token the app verifies offline — no phone-home is needed to keep working. The token carries your tier, server limit and expiry, and is bound to this machine by machine_id = SHA-256(IOPlatformUUID + bundle id), so copying the app to another Mac does not copy the licence. The app trusts the token until it expires plus a grace period, then refreshes; if a paid plan lapses it degrades to Free mode. Lifetime applies only to a one-time Standard purchase and never lapses; Full Fleet has no Lifetime option. This is a deterrent, not heavy DRM — reads keep working; only the limits and premium features are gated.

17.7Updates

FrontierStack updates itself with Sparkle, driven by the in-app UpdateManager. The Updates section of Settings is the whole control surface. Automatically check for updates and Download updates in the background are on by default: a new build downloads silently and then offers an Update button that installs it and relaunches the app. Press Check Now any time; the current version is shown beside it.

The Check for updates menu sets how often the background check runs. Automatic (the default) checks daily — more often on Wild Frontier — while Once a day, Every 3 days, Once a week and Every 2 weeks pin a fixed interval, so if daily prompts feel noisy you can drop back to, say, a weekly check. It has no effect while automatic checking is off, and Check Now always works regardless of the interval.

There are two channels. Stable is the default and ships only when there is enough to justify an update. Wild Frontier delivers frequent, roughly every-other-day bug-fix builds — turn it on if you have requested a change and want the fix fast. To switch, choose it from the Update channel picker. Wild Frontier early builds require a Full Fleet plan; every other plan always receives Stable updates, and the pane tells you so if your tier can't opt in.

TipIf you have just asked for a fix in support and are on Full Fleet, set the channel to Wild Frontier and press Check Now — the fix often lands within a day or two rather than waiting for the next Stable release.

17.8Telemetry & privacy

FrontierStack collects a deliberately small amount of anonymous usage data, and you can switch all of it off. The Privacy & Diagnostics section has two toggles, both on by default. Share anonymous usage analytics sends a small daily ping to frontierstack.app; Send crash reports adds a technical backtrace, and only after you approve the prompt that appears when the app has crashed.

The analytics ping contains a random install ID (no account, no login), the app and macOS version, your hardware model and locale region, your update channel, and whether you used any AI feature. Your country is derived server-side from your IP by Cloudflare. No documents, file contents, configuration, keys, passwords or personal data are ever sent. Crash reports add only a kind, message and stack trace, written locally first so you can decline before anything leaves the Mac.

NoteTo opt out completely, turn off both toggles in Settings ▸ Privacy & Diagnostics. The change takes effect immediately and the random install ID is never tied to your identity. The administrator-only diagnostics dashboard described elsewhere is local to the publisher and aggregates only these anonymous signals.

Two more sections round out the pane: Capabilities exports CAPABILITIES.md and capabilities.json — a complete, live description of every service and AI tool — for handing to an external AI engine; and the Cloud Services, Backups (Local Git), Amazon S3 and Cloud Sync (rclone) sections configure where settings backups and site files are stored. With Settings, licensing, updates and privacy understood, turn to Chapter 18 for keyboard shortcuts, the URL scheme and troubleshooting.

FrontierStack User Manual · Version 1.0.0 · Chapter 17