# MaxiMind Code — install, update, roll back, uninstall

Supported: **macOS 13 (Ventura) or newer on Apple Silicon** (M1 or newer). **Windows 11 is not
available yet**; its install address answers 404 until a clean-machine test
passes. Nothing else needs installing first: no Node, npm, Python, uv, Cline,
Claude Code, Codex, Antigravity, Homebrew or administrator password.

## Install

```sh
curl -fsSL https://maximind.dev/install/code/macos | sh
```

Then open a **new terminal window** and run:

```sh
maximind login
cd ~/Projects/my-project
maximind
```

What the installer does, and only this:

1. Downloads the signed release list and verifies its signature with the public
   key inside the script.
2. Downloads one versioned release (about 50 MB), checks its SHA-256 against the
   signed list **and** verifies the release signature. Any mismatch stops with
   "Nothing was installed."
3. Unpacks into `~/.maximind/code/releases/<version>`, runs the release's
   self-test, then atomically points `~/.maximind/code/current` at it.
4. Writes the launcher `~/.maximind/bin/maximind` and, if `maximind` is not already
   on your PATH, adds one marked line to your shell's startup file: `~/.zshrc`
   for zsh (or `$ZDOTDIR/.zshrc`); for bash the first that exists of
   `~/.bash_profile`, `~/.bash_login`, `~/.profile` (so an existing `~/.profile`
   keeps working); a `conf.d/maximind-code.fish` file for fish. For any other
   shell, or if that file cannot be written, it prints the line to add yourself.

It installs only inside your home folder, refuses to run as root, and does not
touch Claude, Codex, Antigravity, Cline, VS Code, Git or your shell's other
settings. Running it again upgrades or repairs the installation and keeps your
conversation history.

### Install without piping a script into a shell

Download the installer and read it before you run it. The commands below have
no trailing comments on purpose: zsh does not treat `#` as a comment when you
paste into it.

```sh
cd ~/Downloads
curl -fsSLO https://maximind.dev/install/code/macos
less macos
```

Optionally verify the release yourself first. Each `openssl` line must print
`Verified OK` and the `shasum` line must print `OK`:

```sh
base=https://maximind.dev/install/code/releases
curl -fsSLO $base/release-signing-key.pem
curl -fsSLO $base/manifest.json -O $base/manifest.json.sig
openssl dgst -sha256 -verify release-signing-key.pem -signature manifest.json.sig manifest.json
file=$(plutil -extract platforms.macos-arm64.file raw -o - manifest.json)
curl -fsSLO $base/$file -O $base/$file.sig -O $base/$file.sha256
shasum -a 256 -c $file.sha256
openssl dgst -sha256 -verify release-signing-key.pem -signature $file.sig $file
```

Then install. The installer repeats every check itself:

```sh
sh macos
```

The same public key is committed in the repository as
`scripts/maximind_agent/release_key.pem` and is embedded in the installer;
compare them if you want an independent source. `SBOM.json` inside every
release lists each bundled component, version, source URL and hash.

## Check the installation

```sh
maximind doctor
```

It checks the computer, the installed release, that the bundled runtime starts,
PATH, that your history folder is private, the server connection and protocol,
your sign-in, and that the signed release list verifies. Credential-shaped
values are redacted from its output.

## Setting up a new computer (step by step)

1. The MaxiMind owner opens `https://maximind.dev/admin/code` and presses
   **Enable** for that person (the owner account itself is always enabled).
2. On the new Mac (Apple Silicon, macOS 13 or newer), in Terminal:
   `curl -fsSL https://maximind.dev/install/code/macos | sh`
3. Open a **new** Terminal window (Command+N).
4. `maximind login` — approve the code in the browser with the MaxiMind Google
   account. macOS may ask once to let Terminal use the Keychain: **Always Allow**.
5. `cd` into a project and run `maximind`.

## Update and roll back

When a newer release exists, the first screen of `maximind` says so (checked at
most once a day; silent when offline), and `maximind doctor` repeats it. The
release notes with what changed and what to do are at
`https://maximind.dev/docs/code-releases.md`.

Is there a newer signed release?

```sh
maximind update --check
```

Install it:

```sh
maximind update
```

Return to the previous release (run it again to go forward):

```sh
maximind rollback
```

Only one install or update runs at a time.

An update is verified exactly like a first install, unpacked beside the working
release and self-tested **before** anything changes. A failed download, bad
signature, wrong hash, older version or failed self-test leaves the working
release untouched. The three newest releases are kept, so a window that was
already open keeps running from its own folder while you update.

## Uninstall

```sh
maximind uninstall
```

It asks before removing the program, signs this computer out (revoking it on
MaxiMind), removes `~/.maximind/code`, the launcher and the PATH block, and
asks **separately** before deleting conversation history in `~/.maximind/agent`.
It never touches your projects or anything else.

## Troubleshooting

| Symptom | Fix |
| --- | --- |
| `maximind: command not found` | Open a new terminal window, or `export PATH="$HOME/.maximind/bin:$PATH"`. |
| "Not signed in" | `maximind login`. |
| "MaxiMind Code is not enabled for this account" | Ask the MaxiMind owner to enable it (Admin → Code access), then `maximind login`. |
| "this computer is signed out or revoked" | It was revoked or expired: `maximind login`. |
| "no longer supported; run maximind update" | The server needs a newer protocol: `maximind update`. |
| "already has the maximum active requests" | Two model requests per account run at once. The client waits up to three minutes for a slot; this message means it stayed busy that long. |
| "no subscription could answer" | The shared subscriptions are out of quota or signed out on the server; try `/model`, or wait. `/status` shows fallback events. |
| "project boundary refused …" | The file is outside the project, is a secret, or the command touches credentials. Open `maximind` in the right folder; secrets stay yours to handle. |
| Keychain prompt or "Could not save the credential" | Unlock the login keychain, then `maximind login`. |
| `npm`, `pip`, `git` or `curl` behave differently inside the agent | Commands the agent runs go through MaxiMind Code's local network filter (see "Network inside the agent" in the terminal guide). Run the command in an ordinary terminal to compare. |
| "needs macOS 13 (Ventura) or newer" | The bundled terminal runtime requires macOS 13. |
| Anything else | `maximind doctor`. |
