# MAC INSTALLATION — GLAMMBRAIN guided beta

Give this file **and** the extracted archive's `brain-engine/AGENT-PACK.md` to
a coding agent with terminal access to the Mac. Say:

> Install and verify GLAMMBRAIN on this Mac. This Mac guide overrides every
> Linux/systemd instruction in the archive. Report observed output only.

## Status — read this first

- This is a **guided beta**, not a one-click Mac installer.
- Use the same `glammbrain-20260827-full-v4.tar.gz` archive as Linux/WSL.
- SHA-256:
  `c7fde89a22ba289891041c25718891921312f107d0b1a9e7184f6147299c2723`.
- The core containers and Python programs can be arranged on macOS, but the
  included Bash installer assumes GNU/Linux tools and a systemd user manager.
  Do **not** run it unchanged and call the result complete.
- macOS background services must use `launchd`, or stay explicitly manual.
- This path has not yet passed a clean-Mac end-to-end test. Keep the beta label
  until a real Mac receipt proves every required layer.

## Starting requirements

- macOS 14 or newer. Apple silicon is recommended; Ollama also supports Intel
  Macs on CPU.
- Docker Desktop for Mac, installed and running:
  https://docs.docker.com/desktop/setup/install/mac-install/
- Ollama installed as a native Mac application, outside Docker:
  https://docs.ollama.com/macos
- Python 3.12 or newer, Node.js 18 or newer, `curl`, `tar`, and at least 20 GB
  free before model and container downloads.
- Owner approval before installing packages, changing permissions, creating
  LaunchAgents, or selecting any personal folder to feed.

## Work order

1. Record the Mac model, CPU architecture, macOS version, Python version, free
   disk, Docker Compose version, and Ollama version. Stop on a missing
   requirement; do not silently substitute a cloud service.
2. Download the v4 archive from the GLAMMBOX Trail. Verify the exact SHA-256
   above before extracting it.
3. Read `brain-engine/INSTALL.md`, `brain-engine/AGENT-PACK.md`, and this file.
   Treat this file as the macOS override.
4. Keep Ollama native on the Mac. Use Docker Desktop only for the Qdrant and
   optional Neo4j containers. Bind the brain services to loopback as documented
   in the archive.
5. Reproduce the archive's core setup manually: local `.env` and secrets,
   Docker Compose infrastructure, Python 3.12 virtual environment with pinned
   requirements, Ollama model pulls, empty collections, BM25 scaffold, and the
   throwaway feed/search smoke test. Do not select or feed owner content.
6. Start the BM25 and reranker commands manually first and prove their health.
   Only after that proof, ask whether the owner wants user LaunchAgents or
   manual starts. Never translate a systemd unit by blind text replacement.
7. Leave ingest, dream, deep-dream, and snapshot schedules manual unless the
   owner explicitly chooses `launchd`. If LaunchAgents are approved, use
   absolute paths, `RunAtLoad` only where appropriate, and calendar/interval
   keys that preserve the archive's intended cadence. Save the exact plist
   paths and `launchctl` observations in the receipt.
8. The cockpit itself may be tested manually from the extracted root with
   `node server/index.js`, then opened only at `http://localhost:8730`.

## Completion gate

Return **PASS** only when all required items below are observed:

- Qdrant health and the empty `knowledge`, `memory`, and `code` collections.
- Neo4j health, unless the owner explicitly chose `--without-graph` equivalent.
- Native Ollama contains every model named by the v4 manifest.
- The pinned Python environment is complete.
- BM25 and reranker health endpoints answer on loopback.
- The synthetic feed/search round trip passes and its temporary data is removed.
- Every upper-layer dry run in `brain-engine/AGENT-PACK.md` exits zero.
- Scheduling is recorded honestly as `launchd`, `manual`, or `PENDING` — never
  reported as enabled merely because a Linux timer file exists.
- No owner content was fed and no model weights were claimed to be bundled.

If any required command fails, return **FAIL** with the exact command and error.
A Linux installer ending in a systemd failure is not a completed Mac install.

## Mac receipt

```text
GLAMMBRAIN Mac guided beta: <PASS|FAIL>
Mac / CPU / macOS: <observed>
Docker Desktop / Compose: <observed>
Native Ollama / models: <observed>
Python environment: <observed>
Qdrant / Neo4j: <observed>
BM25 / reranker: <observed>
Synthetic smoke: <PASS|FAIL|SKIPPED>
Upper-layer dry runs: <each result>
Scheduling: <launchd|manual|PENDING> + exact paths/status
Cockpit localhost:8730: <observed|not requested>
Brain ships empty: <confirmed|not confirmed>
Owner content fed: NO
Blockers: <none or exact failures>
```

Official platform references:

- Docker Desktop on Mac:
  https://docs.docker.com/desktop/setup/install/mac-install/
- Ollama on macOS: https://docs.ollama.com/macos
- Apple background-service framework:
  https://developer.apple.com/documentation/servicemanagement/
