Desktop guide

Privateer on your
own computer

The full workspace in a window — chat, media, projects, and a coding agent you can point at any folder. The agent runs inside the app, on your machine, over a loopback connection. No relay, and it works offline.

macOS Apple silicon & Intel Windows x64 Shares your CLI sign-in

Install

PlatformDownloadFile
macOS, Apple siliconprivateer.pro/download/macPrivateer-<version>-arm64.dmg
macOS, Intelprivateer.pro/download/mac-intelPrivateer-<version>-x64.dmg
Windowsprivateer.pro/download/windowsPrivateer-Setup-<version>.exe

There is no Linux build. On Linux, use the CLI — it's the same agent.

⚠️

The builds are not code-signed or notarized. On macOS, Gatekeeper will refuse the first open and say the app can't be checked for malicious software. That warning is accurate: it means the build carries no Apple signature, not that we have one you should ignore. To open it anyway, right-click the app in Applications and choose Open, then confirm — macOS remembers the choice. On Windows, SmartScreen shows More info → Run anyway for the same reason.

Only download from privateer.pro. A build from anywhere else is unsigned and unverified, which is a different thing entirely.


First run

The first launch walks through a short introduction, then asks you to sign in or continue as a guest. Signing in unlocks your plan, your synced chats, and the confidential enclave models.

🔗

One sign-in for the whole machine. The desktop app reads the same ~/.privateer home the CLI does. If you've already run /login in a terminal, the app is signed in too — and your model choice and connectors carry across. It works in the other direction as well.

Two menus deal with identity, and they are genuinely separate:

  • Account is your Privateer account — plan, subscription, usage, settings.
  • Agent is the credential the coding agent runs on. Usually the same account, but you can sign the agent in or out on its own from Agent → Sign In to the Agent…

If you also want the privateer command in your terminal, the app can install it: File → Install 'privateer' Command in PATH. It writes a small shim into ~/.privateer/bin — no download, no admin prompt.

Updates

⬇️

The app does not update itself. There is no auto-updater and nothing is downloaded in the background. What you get is a notice: when a newer version is published, a banner appears offering the download link, and Help → Check for Updates… asks on demand. Installing is a thing you do deliberately, by downloading the new build and running it.

The banner is dismissible per version, so declining one release doesn't mean being asked about it again tomorrow.


Uninstalling

Settings → Uninstall Privateer is the way to remove it, and it is worth using rather than dragging the app to the Trash. Installing Privateer is not one act, so removing it isn't either: by the time you have used the app there is also a privateer command in ~/.privateer/bin, a line added to your shell profile so it can be found, an app-data directory, and — if you turned it on — a login service that starts the Local Harbor every time you sign in to your computer.

That last one is the reason this matters. The login service records the exact location of the app, so an app that has been deleted leaves a service that tries to start it at every login, forever, and nothing left on the machine knows to clean it up. The in-app uninstall stops and removes it first, before anything else.

It shows you the real paths on your machine and then removes: the login service, the privateer shim this app installed, the PATH entry (only if nothing else is using it — a standalone CLI install shares that directory), the app data, and the app itself. On macOS the app goes to the Trash, so you can put it back. On Windows it hands over to the standard uninstaller.

🔑

Your sign-in is a separate, opt-in choice. ~/.privateer holds the device login, and the privateer command in your terminal shares it — so removing the desktop app leaves you signed in there unless you tick the checkbox. Privateer has no password recovery: once that sign-in is deleted, anything still encrypted with it cannot be recovered.

Uninstalling the ordinary Windows way works too — Add/Remove Programs runs the same sweep, and asks the same question about your data. On macOS, if you have already trashed the app, installing it again will find and remove any login service left behind.

Removing only the terminal CLI, and keeping the app? That has its own script: curl -fsSL https://privateer.pro/uninstall.sh | sh.


Windows & the tray

Privateer is a multi-window app, and each window can have its own agent pointed at its own folder. The title bar is drawn by the app: on macOS it blends into the traffic lights, on Windows it carries its own minimise, maximise and close buttons. The chip at the trailing edge shows which folder this window's agent is working in.

Closing is not quitting

You doWhat happens
Close a window while others are openThat window really closes. If its agent is mid-turn, you're asked first.
Close the last windowThe window hides and the agent keeps running. On macOS the Dock icon goes; the menu-bar icon is now the whole app.
Click the tray icon, or relaunchYou get the app back. A second launch never starts a second copy.
QuitYou're warned only if something is actually mid-turn — and it names what will stop, including the app-managed Local Harbor.

The first time a window hides rather than closes, the app says so, because otherwise it looks like a bug.

The tray menu

Its icon carries a live summary — how many agents are running and how many are working. Inside:

  • Open Privateer, New Chat, Spawn Privateer at…
  • A roster of running agents, each showing its folder and what it's doing.
  • Local Harbor status — running, starting, or stopped — with Start Local Harbor / Stop Local Harbor and Open Harbor.
  • Check for Updates… and Quit Privateer.


Agents & spawning

The Agents destination (4) is this computer's control panel, in three cards.

Your agents

Live agents — one per window — each showing its folder, its model, which connectors it's holding, and whether it's busy. Below them, folders you've spawned at before: tap one to start it again on the settings you last used, or forget it.

Local Harbor

Start or stop this computer's always-on agent. Full detail below.

Command line

Install, replace or remove the privateer shim in ~/.privateer/bin. If a standalone CLI install already owns that path, the app says so rather than overwriting it quietly. It also tells you if the directory isn't on your PATH yet.

Spawning at a folder

File → Spawn Privateer at… (O), from any screen:

  1. Pick the folder in the native dialog.
  2. Set the defaults for this agent — model, which connectors it gets, and whether to drop a PRIVATEER.md in so it knows the project.
  3. A new window opens on that agent's session.

The choice of connectors here matters: it's this agent's whole tool surface, and it's the cheapest moment to make it small.


Working with an agent

An agent's window streams what it's doing as it does it — the reasoning, the tools it reaches for, the output of each.

  • Approvals. Anything gated stops and asks, with Allow or Deny and the full detail of what's about to happen. The same permission rules as the CLI's moat: two filters sit above every relaxation, so destructive shell commands and protected files stay blocked regardless.
  • Model and mode are chips in the toolbar; the command palette switches either.
  • Unattended mode is behind a destructive confirmation, deliberately. It turns approval prompts off for that session.
  • Files go both ways — attach one into the conversation, or receive one the agent produced.
  • Interrupt stops the current turn without ending the session; terminate ends it.

Connectors

Connectors are MCP servers that give the agent tools. There are two levels, and the split is the useful part.

MCP Servers — the catalogue

Agent → MCP Servers… is the machine's whole list. Each server shows a status dot, how many tools it exposes, and a toggle. You can:

  • Add a local (stdio) or remote (http) server, or pick from the quick-add catalogue.
  • Import from Claude Desktop, Cursor or Continue — if you've configured servers there, they come across.
  • Test a server with a live handshake before trusting it.
  • Authorize, re-authorize or sign out of an OAuth server.

Every server carries a privacy badge saying plainly whether it runs locally or sends data to a named host. Read it before enabling: a remote connector means whatever the agent hands that tool leaves your machine.

⚠️

Connector secrets — tokens, environment values, headers — are stored in plaintext on this machine, because the adapter has to hand the real token to the server. Protect that file the way you protect any credentials file. The masked fields in the editor are screen-share hygiene, not a storage claim.

Connectors for This Window

Agent → Connectors for This Window… picks which of the catalogue this particular agent may use. One machine-wide list; a deliberately smaller subset per agent. An agent refactoring a CSS file has no business holding your production database.


The Local Harbor

The Local Harbor is the resident agent on this computer — the thing that runs scheduled routines and chat bridges whether or not a window is open. Its screen (5) gives you:

  • Status, with a straight sentence about what is and isn't currently reachable.
  • Start / Stop, and Start with Privateer so it comes up with the app.
  • Keep running after you quit — hands supervision to launchd (macOS) or a systemd user unit (Linux), so it survives the app closing and returns at login. No root required.
  • A log viewer, and the shared screens for its routines, channels, connectors and spawned tasks.

"Local Harbor" and "Harbor" are different things. The Local Harbor is this — a process on your own computer, under your account, with your files. Harbor on its own is Privateer's hosted agent service, running on our infrastructure inside a hardware enclave we can't read into. Different machine, different promise.

On Windows there is no login service, so the Local Harbor runs while the desktop app supervises it rather than starting at login on its own.

Inbox

Work that finishes while you're elsewhere lands in the Inbox (9): routine runs, submitted tasks, workflow results, answers from spawned agents. It's filterable by what produced each result, and the nav carries an unread badge. Results arrive through the account's encrypted outbox, so anything caught on one device shows up on the others.


Desktop vs the CLI

Same agent, same permission rules, same ~/.privateer home. A few things differ on purpose:

In the CLIOn desktop
/models picker with privacy shieldsThe in-app model picker, with the same shields
/connectThe MCP Servers editor and the per-window picker
The status-line privacy shieldThe privacy badge in the toolbar
/speak and /talkVoice mode, which needs microphone permission
Routines and chat channels run in the terminal's Local HarborHosted by the Local Harbor, not by a window — a window session is not the place for work meant to outlive it

The CLI extensions that draw into a real terminal aren't loaded here, because there is no terminal to draw into. Their jobs are done by the equivalents above rather than being missing.

Privacy on desktop

The agent runs inside the app, on your machine. The window talks to it over a loopback connection on your own computer — there is no relay and no network hop between them, and it works with the network off. Your sessions, history and project files stay on your disk under ~/.privateer/.

What does leave: the prompt for each turn, sent to whichever model provider you picked, which is what inference is. Your content is encrypted on your device or in our cloud, with inference on hardware-attested enclaves where the model supports it — and the shield beside each model tells you which kind of guarantee you're getting and how strong the evidence is. Anything a connector sends leaves too, on the terms of that connector.

Full policies: Privacy · Terms.


Troubleshooting

macOS won't open it: “can't be checked for malicious software”

Expected — the build isn't notarized. Right-click the app in Applications, choose Open, and confirm. macOS remembers. Double-clicking will keep failing until you've done it once this way.

Windows SmartScreen blocks the installer

Same cause. More info → Run anyway. Check you downloaded it from privateer.pro first.

I closed the window but the app is still running

Working as designed — closing the last window hides it so agents keep running. Click the tray or menu-bar icon to bring it back, or use Quit Privateer from that menu to actually exit.

Voice mode can't hear me

Grant the microphone permission when prompted. On macOS, if you dismissed it, re-enable Privateer under System Settings → Privacy & Security → Microphone and restart the app.

privateer still isn't found in my terminal

Installing the shim puts it in ~/.privateer/bin, which has to be on your PATH. Add it to your shell profile and open a new terminal. The Agents screen's command-line card shows the current state and warns if a standalone CLI already owns that path.

A routine didn't run

Check the Local Harbor is actually running on its screen (5). If you want routines to fire without the app open, turn on Keep running after you quit — on Windows, the app has to be supervising it.

An agent looks stuck

Interrupt the turn from the session view. If the window itself is unresponsive, close it — other agents keep running — and reopen from the tray's agent roster.

Something else

Help → Open Logs Folder and Help → Report a Bug…, or privateer.pro/support.