# Install

One universal DMG, signed and notarized. What macOS checks on first launch, which permissions Mandeck asks for, and how to put the CLI on your PATH.

## Get the app

Mandeck ships as one universal build — Apple Silicon and Intel in the same
download.

[**Download for macOS &darr;**](/dmg)

| What | This build |
|---|---|
| Version | v0.1.6 |
| Architecture | Universal (Apple Silicon & Intel) |
| Requires | macOS 14+ |
| Size | 19 MB |
| Signing | Developer ID, notarized by Apple |
| Updates | Sparkle, ~1 MB deltas |

Open the DMG and put `Mandeck.app` in `/Applications`.

## What macOS checks on first launch

The app is signed with a Developer ID and notarized by Apple; macOS verifies
that the first time you open it, and you can verify it yourself:

```bash
spctl -a -vv /Applications/Mandeck.app
# → source=Notarized Developer ID
```

There is no Homebrew cask and no published checksums — the signature is the
check.

## Permissions

Nothing asks at launch and nothing nags. The rows sit in **Settings &rsaquo;
General &rsaquo; Permissions** and tell the truth until someone presses Grant.
Agents run inside Mandeck, so they get Mandeck's permissions — not the
terminal's.

| Permission | Grant it |
|---|---|
| Screen Recording | so agents can see the app you asked them to work on |
| Accessibility | so agents can drive a UI to test it |
| Full Disk Access | so agents can read app data and logs |

Every row starts off. Grant one when an agent actually needs it, not before —
`GET /v1/health` reports the current state of all three, so a bot can check
before it tries.

## Put the CLI on your PATH

The CLI drives a running deck from any shell or script — spawn, wait, answer,
report. It talks to the deck on `127.0.0.1:7717`, so the app has to be open.

```bash
curl -fsS https://mandeck.dev/install | sh
```

A deck you can already reach serves its own copy, which is the version that
matches it:

```bash
curl -so /opt/homebrew/bin/mandeck http://127.0.0.1:7717/cli/mandeck \
  && chmod +x /opt/homebrew/bin/mandeck
```

The same deck serves the stdio MCP server at `/cli/mandeck-mcp.mjs`. See
[CLI](/docs/cli) and [MCP server](/docs/mcp-server).

## Updates, and what happens next launch

Mandeck updates itself through Sparkle; **Settings &rsaquo; Updates** carries
the version, a **Check now** button, and *Install automatically*, which
installs a downloaded build silently on quit. Clicking Update always fetches
the newest.

**Settings &rsaquo; General &rsaquo; Startup** has *Resume agents on launch*, on
by default: it reopens each pane back into its conversation, not just its dead
history.

Your agent CLIs update on their own and live in **Settings &rsaquo; Agents** —
kept apart so an app update never gets confused for a Claude Code update.
