Skip to content

Commit 7332f43

Browse files
authored
docs: clarify macOS od command collision (#5219)
1 parent ae27ad2 commit 7332f43

3 files changed

Lines changed: 21 additions & 7 deletions

File tree

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,12 @@ After install: the app auto-detects every coding-agent CLI on your `PATH`, loads
301301

302302
You can use Open Design without ever opening the GUI — call it as a skill, plugin, or MCP server inside Claude Code, Codex, Cursor, Copilot, OpenClaw, Antigravity, Hermes, Kimi, and more.
303303

304+
If you installed the macOS desktop app via the DMG or Homebrew cask, your shell
305+
may still resolve `od` to Apple's built-in `/usr/bin/od` octal-dump utility. In
306+
that case, open **Settings → MCP server** in the desktop app and copy the
307+
client-specific snippet; it uses absolute paths and does not rely on the bare
308+
`od` command.
309+
304310
```bash
305311
# One-line install into the agent you're using:
306312
od mcp install <agent>
@@ -316,9 +322,10 @@ curl -fsSL https://open-design.ai/install.sh | sh -s <agent>
316322
hosted URL returns shell instead of the landing-page HTML fallback and fails
317323
fast if your shell resolves a non-Open-Design `od` binary.
318324

319-
> **WSL2 users:** If your coding-agent CLIs run inside WSL2, follow the
320-
> [`WSL2 setup guide`](docs/wsl-setup.md) first. Linux's `/usr/bin/od` can
321-
> shadow Open Design's `od` command.
325+
> **macOS / WSL2 users:** `/usr/bin/od` is a system octal-dump command and can
326+
> shadow Open Design's `od` command. Desktop-app users should prefer the
327+
> **Settings → MCP server** snippet; WSL2 users should follow the
328+
> [`WSL2 setup guide`](docs/wsl-setup.md) first.
322329
323330
Then, inside the agent:
324331

@@ -388,7 +395,7 @@ od skill list --scenario marketing
388395

389396
**Why MCP?** Exporting and re-attaching a zip every iteration breaks flow. MCP exposes the design source directly — the agent always sees the live file.
390397

391-
**For an agent starting from scratch,** the installer places `~/.config/<agent>/open-design.json` (or the platform equivalent) plus a copy-paste MCP snippet. Cursor gets a one-click deeplink; Claude Code gets a `claude mcp add-json` one-liner; every other agent gets JSON in the schema its config expects. Full per-agent flow → **Settings → MCP server** in the desktop app, or [`docs/agent-adapters.md`](docs/agent-adapters.md).
398+
**For an agent starting from scratch,** the installer places `~/.config/<agent>/open-design.json` (or the platform equivalent) plus a copy-paste MCP snippet. Cursor gets a one-click deeplink; Claude Code gets a `claude mcp add-json` one-liner; every other agent gets JSON in the schema its config expects. On macOS desktop installs, prefer that Settings snippet over typing bare `od mcp install <agent>` in Terminal, because `/usr/bin/od` may win on PATH. Full per-agent flow → **Settings → MCP server** in the desktop app, or [`docs/agent-adapters.md`](docs/agent-adapters.md).
392399

393400
**Security model.** Read-only by default, the daemon binds to `127.0.0.1`, and SSRF is blocked at the proxy edge. LAN exposure requires an explicit `OD_BIND_HOST` plus `OD_ALLOWED_ORIGINS`. Connector credentials and live-artifact preview routes stay loopback-only regardless.
394401

apps/landing-page/public/install.sh

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,14 @@ if [ "${od_probe}" != "open-design-cli:mcp-install:v1" ]; then
6060
cat >&2 <<EOF
6161
Open Design install.sh: '${od_path}' does not look like the Open Design CLI.
6262
63-
On Linux and WSL2, /usr/bin/od is usually the coreutils octal-dump command and
64-
can shadow Open Design's CLI. Put the Open Design CLI earlier on PATH, then
65-
re-run this command.
63+
On macOS, Linux, and WSL2, /usr/bin/od is the system octal-dump command and can
64+
shadow Open Design's CLI. Put the Open Design CLI earlier on PATH, then re-run
65+
this command.
66+
67+
If you installed the macOS desktop app via the DMG or Homebrew cask, the app
68+
bundle does not add an 'od' shim to your shell PATH. Launch Open Design and use
69+
Settings -> MCP server to copy the client-specific install snippet instead;
70+
that snippet uses absolute paths and avoids the system 'od' collision.
6671
EOF
6772
exit 1
6873
fi

apps/landing-page/tests/install-sh-static.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ exit 0
8585

8686
assert.equal(result.status, 1);
8787
assert.match(result.stderr, /does not look like the Open Design CLI/);
88+
assert.match(result.stderr, /macOS, Linux, and WSL2/);
89+
assert.match(result.stderr, /Settings -> MCP server/);
8890
assert.throws(() => readFileSync(argvOut, 'utf8'), /ENOENT/);
8991
} finally {
9092
rmSync(tmp, { recursive: true, force: true });

0 commit comments

Comments
 (0)