Install Alfred

Homebrew installs the versioned Alfred CLI and its app-like, human-first installer. The curl bootstrap remains available. Use arrow keys, checkbox-style toggles, text inputs, and mouse clicks where supported. Harness choices show installed/not-installed status and support selecting multiple targets before Alfred writes anything.

Preview first. The default path writes no files. Use flags only for automation after the choices are already known; live harness config still requires explicit human approval.

Updating an existing setup

Open alfred setup in your project. The opening screen shows CLI and project integration versions and offers Update. Review the Homebrew upgrade, then review the project file changes. Alfred reuses your saved coding-tool choices instead of repeating the setup questionnaire. Restart your harness after changed files are verified.

Local edits and ambiguous older installations are reported as conflicts. A failed version lookup still allows continuing setup and updating a recorded project from the installed runtime. Set ALFRED_SETUP_CHECK_UPDATES=0 to skip the remote check.

For an existing 1.0.1 installation, upgrade to 1.1.0 or later once with brew update and brew upgrade GOI17/alfred. Future releases can then be offered inside setup.

Requirements

Packaged UI and source compatibility. The published runtime uses its bundled Go setup UI. The source bootstrap retains an OpenTUI compatibility frontend and a dependency-free Node fallback, with the same preparation and approval boundaries.

Install with Homebrew

Alfred source and its dedicated tap are public. Install the fully qualified formula without GitHub credentials. Check the installed release with alfred version:

zsh — Homebrew
# Public runtime package
brew install GOI17/alfred
alfred version
alfred setup # guided, preview-first configuration

# lifecycle
brew update
brew upgrade GOI17/alfred
brew uninstall GOI17/alfred
Use the full formula name. Plain brew install alfred resolves to the unrelated Alfred macOS application cask. Homebrew installs Alfred's commands but does not write live harness configuration; that remains gated by alfred setup.

The bundled Go UI first reviews and prepares previews, then offers a separate review of the exact project files for Codex and OpenCode. Approve that second step to install the files; declining keeps previews only. A verified result requires a new harness session. Conflicts stop activation without replacing user configuration. Pi remains preview-only. Explicit flags and alfred setup --legacy-ui preserve automation.

Choose capabilities

In releases with the composition layer, setup offers independent Workspace, Memory, and Agent Harness checkboxes. Choose any nonempty combination, or use alfred setup --components=workspace,memory,harness. Approved Apply records component preferences; selecting several does not connect services, credentials, MCP, or session runtimes.

Workspace availability. Workspace requires the packaged web asset and real terminal gates on all four supported targets before release. It is not included in 1.1.0. See Workspace for commands and source migration.

Historical edition compatibility

After installing the runtime, start with the guided flow: alfred setup. The installer still accepts flags for automation and CI.

Legacy editionCapability mappingWhat you need
coding Agent Harness: agents, skills, policies, profiles, adapters, eval gates. Node 22+ and your coding harness.
memory Alfred Memory, server/client/MCP/OpenAPI, external AI adapters, console. SQLite for local coding agents or Postgres for human/web agents.
full Agent Harness + Memory. Historical full does not add Workspace during an upgrade. Node 22+, harness, and Memory storage configuration.

Agent Harness (legacy coding edition)

The fastest path. Perfect for coding harness operations without forcing Memory setup.

zsh — install
# Guided human-first install; starts preview-first
curl -fsSL https://raw.githubusercontent.com/GOI17/main/install.sh | sh

# Force the dependency-free compatibility backend for diagnostics
curl -fsSL https://raw.githubusercontent.com/GOI17/main/install.sh | ALFRED_INSTALL_TUI_BACKEND=node sh

# Automation fallback when choices are already known
curl -fsSL https://raw.githubusercontent.com/GOI17/main/install.sh | sh -s -- --edition=coding --name=acme --harness=opencode,codex-cli --apply

# The TUI previews runtime profiles before activation
Profile strategy: runtime profiles / decide later
Active profile : work / personal / custom
Harness        : opencode

# The installer prints the validation plan for the selected edition
Validation     local capability checks · preview files · approval gates

The coding edition includes packages/profile-manager so the same agent can have separate work, personal, or client profiles across machines without hand-editing harness config.

Model assignment after setup

Alfred setup does not prompt for model assignments or create, replace, or modify ~/.alfred/models.json. Model selection remains a user-owned runtime or standalone reconfiguration decision after setup.

setup boundary
# Setup leaves any existing assignment byte-for-byte unchanged
Model assignment : not part of alfred setup
Provider calls   : 0

Memory

Use Alfred Memory from the local browser console, desktop clients, or coding agents. Cloud ChatGPT Actions and AI Studio cannot reach this local-only service.

alfred memory init --profile=coding --backend=sqlite --name my-memory
ALFRED_MEMORY_REQUIRE_AUTH=true alfred memory serve

On 1.1.0, use the preserved aliases alfred init and alfred serve; namespaced commands require a later release that includes the composition layer.

Save the issued key and open the local console. Keep the server running. The managed hosted service is retired.

  1. If you already created a tenant in the Memory app, choose Use existing tenant. Alfred will not create another tenant; clients reuse ALFRED_MEMORY_BASE_URL and ALFRED_MEMORY_API_KEY.
  2. For a new Postgres-backed tenant, create your own database and copy its connection string, such as postgres://user:pass@host/db?sslmode=require.
  3. Run the guided installer and choose the Memory edition. Pick Postgres for shared/human/web memory, Local SQLite for one-machine coding use, or Decide later for a no-tenant preview.
zsh — install (web)
# Guided install: choose Memory or full in the TUI
curl -fsSL https://raw.githubusercontent.com/GOI17/main/install.sh | sh

Approve, then write

Alfred never writes harness config without your approval. When the installer finishes detection, it prints a preview like:

preview
# Alfred install preview
Harness detected : opencode
Adapter status   : executable-translation-spike
Files to write   : 7
  + .opencode/agents/orchestrator.md
  + .opencode/agents/developer.md
  + .opencode/agents/qa.md
  + .opencode/skills/architecture-docs/SKILL.md
  + .opencode/skills/typescript-project/SKILL.md
  + opencode.json
  + AGENTS.md (merge)

Apply changes? [y/N]

Review the list first. The root installer writes no files unless you approve preparation in the TUI or pass --apply in automation. This produces previews only. Guided setup then requires another explicit confirmation before installing the reviewed harness files into the invoking project. Do not treat preview generation as activation.

Verify the install

Check the installed runtime and review the setup result. A component preference or files on disk alone do not prove a harness loaded its integration; start a new harness session after activation.

verify
alfred version
alfred setup # review installed/project versions and updates

Uninstall

uninstall
curl -fsSL https://raw.githubusercontent.com/GOI17/main/uninstall.sh | sh

# Homebrew package
brew uninstall GOI17/alfred

The uninstaller removes the installed package tree, never touches your project files, and asks before deleting the SQLite database.

Next step: Configuration to review per-agent models, permission policy, and tenants.