Morey is a daemon. You install it, start it, and point your agent at its Unix socket. The agent framework stays untouched. No orchestration rewrites. No tool-call wrappers in your code โ€” the SDK handles that.

1. Install

macOS via Homebrew:

brew install equilateral-ai/tap/morey

Linux (static binary):

curl -fsSL https://seawater.io/install.sh | sh

From source (requires Rust toolchain):

git clone https://github.com/equilateral-ai/morey && cd morey && cargo install --path crates/morey-daemon
Note on the tap name. The spec's canonical install is brew install seawater/tap/morey. The GitHub username seawater is claimed by a dormant account; until that resolves, the tap lives under equilateral-ai. The binary is identical.

2. Scan your environment

Before you connect any agent, audit your own machine. This runs entirely locally, reads nothing outside of common credential paths, and writes nothing.

morey scan

Typical output:

๐Ÿ” Scanning environment...

  โš ๏ธ  ~/.aws/config: world-readable (644) โ€” should be 600
  โš ๏ธ  ~/.ssh/id_rsa: group-readable (640) โ€” should be 600
  โœ“  No API keys found in shell history
  โœ“  No credentials in environment variables

  2 issues found. Run `morey scan --fix` to remediate.

morey scan --fix applies safe corrections (permissions only, never content edits). It is a Pro feature โ€” Free users can see the issues but fix them by hand.

3. Start the daemon

morey start

This opens ~/.morey/morey.sock (a Unix domain socket) and begins accepting agent connections. The daemon logs to ~/.morey/events.db (SQLite, encrypted at rest).

To run Morey as a launchd service on macOS:

morey install --service

4. Connect your agent

Node.js projects:

npm install @seawater_io/morey
import { Morey } from '@seawater_io/morey';

const morey = await Morey.connect({
  agentId: 'my-agent',
  capabilities: ['fs.read', 'fs.write', 'shell.exec', 'net.https'],
  paths: ['/repo/**', '!/repo/.env'],
  trustClaim: 'UNKNOWN',
});

// All tool calls go through morey.* โ€” it forwards, Morey decides
const contents = await morey.fs.read('/repo/README.md');

Python projects:

pip install https://seawater.io/releases/seawater_io_morey-0.1.0-py3-none-any.whl
from seawater_morey import Morey

morey = Morey.connect(
    agent_id="my-agent",
    capabilities=["fs.read", "shell.exec"],
    paths=["/repo/**", "!/repo/.env"],
)

contents = morey.fs.read("/repo/README.md")

Shell scripts (no SDK needed):

morey exec --agent script-agent -- ./deploy.sh

5. Register a manifest

When the SDK calls Morey.connect(), it registers a manifest declaring what the agent needs. Morey evaluates this against policy and the agent's conduct history, then grants capabilities.

{
  "agent_id": "my-agent",
  "version": "1.2.0",
  "capabilities_requested": ["fs.read", "fs.write", "shell.exec"],
  "paths_requested": ["/repo/**", "!/repo/.env"],
  "trust_claim": "UNKNOWN",
  "metadata": {
    "framework": "openclaw",
    "model": "claude-sonnet-4-6"
  }
}

A new agent claims UNKNOWN trust. Morey starts it at minimum access. Over time, as the agent demonstrates correct behavior, its batting average rises and the conduct engine escalates its authority โ€” automatically, subject to regression detection.

6. See what's happening

morey board

Interactive terminal dashboard showing connected agents, current trust levels, recent decisions, cost by agent, and live event stream. Pro feature.

morey replay --agent my-agent --last 10

Time-travel through the last ten decisions for a specific agent. Each decision frame is cryptographically signed and replayable. Pro feature.

7. Upgrade when you need it

The Free binary does not contain Pro code. Upgrading to Pro swaps the binary โ€” your config, storage, and agent manifests are unchanged.

morey license activate <key>
brew upgrade morey  # or: morey self-update

Next steps

Stuck? Open an issue at github.com/equilateral-ai/morey or email James.Ford@seawater.io.