Appearance
Installation
Murph is installed as a local app plus one product-local murph CLI.
Requirements
curl- Node.js 22+ and npm
If Node.js 22+ or npm is missing, the installer downloads a Murph-managed Node/npm copy under ~/.murph/deps. It does not install Node globally or modify your system package manager. Setup helpers such as the Slack CLI are installed after Murph itself is built.
Install from the internet
bash
curl -fsSL https://murph-agent.com/install.sh | bashBy default, Murph installs into ~/.murph/app, places the product-local CLI at ~/.local/bin/murph, and keeps installer-managed helper binaries under ~/.murph/deps/bin.
The internet installer downloads the current stable release archive by default, not the main branch. The stable installer URL stays the same, while https://murph-agent.com/release.env points it at the current versioned GitHub tag archive.
Pin a specific release when you need repeatable installs:
bash
MURPH_RELEASE_VERSION=v0.1.0 bash install.shFor development or testing, override the source archive explicitly:
bash
MURPH_SOURCE_ARCHIVE=https://github.com/dannylee1020/murph/archive/refs/heads/main.tar.gz \
bash install.shAfter building, the installer removes development-only payload such as CI workflows, tests, and docs-site source from ~/.murph/app. It keeps the app source, UI source, policy profiles, runtime skills, bundled Murph Agent skill templates, themes, and setup assets so product CLI build, update, setup, and local extension work still function.
If you want to inspect the installer first:
bash
curl -fsSL https://murph-agent.com/install.sh -o install.sh
bash -n install.sh
bash install.shInstall from a checkout
If you already have the repository:
bash
./install.shRemote hosting
For VPS, managed container services, Docker Compose, reverse proxies, and stable tunnel options, see Hosting.
Start and stop
bash
murph start
murph status
murph stop
murph restartUse murph start --background when you want Murph to keep running after the terminal closes.
Murph uses http://localhost:5173 by default. If another process owns that port, startup fails clearly instead of choosing a different port, because OAuth callback URLs and tunnels depend on the exact origin. Use MURPH_PORT=<port> only after updating those callback URLs.
Update
bash
murph updateThe updater downloads the current stable release archive by default and preserves local state such as ~/.murph/config.yaml, ~/.murph/.credentials, and data/. It uses the same release pointer as the installer unless you set MURPH_RELEASE_VERSION for a pinned update or MURPH_SOURCE_ARCHIVE for a branch/custom archive.
After rebuilding, the updater applies the same install-payload pruning as the initial installer.
Uninstall
bash
murph uninstallThis stops Murph, removes the installed Murph CLI link from ~/.local/bin, and removes the Murph home directory at ~/.murph. It does not delete the app directory. If the app is inside ~/.murph/app, uninstall removes the other home-directory contents and leaves ~/.murph/app in place. Preview first with:
bash
murph uninstall --dry-runFor non-interactive cleanup:
bash
murph uninstall --yes --forceThe command does not remove system Node, Homebrew or apt packages, or unrelated helper tools.
Check your install
bash
murph doctorIf something fails, start with the troubleshooting notes below.
Troubleshooting
Start with:
bash
murph doctor
murph status
murph logsThe Murph command is not found
The installer writes the product-local murph command to ~/.local/bin. Add it to your shell path:
bash
export PATH="$HOME/.local/bin:$PATH"Then restart your shell or add the line to your shell profile.
Installer-managed helper binaries, including the local Node install and Slack CLI when needed, live in ~/.murph/deps/bin. The murph command adds that directory to its own runtime path.
Murph is not built
Build from the app directory:
bash
murph buildThe server is not responding
Restart the background process:
bash
murph restartThen check:
bash
murph status
murph logsSlack redirect URI mismatch
Make sure your Slack app includes this redirect URL:
text
http://localhost:5173/api/slack/oauth/callbackSocket Mode does not require a public Slack Events URL.
If you intentionally run Murph on another port with MURPH_PORT=<port>, update this redirect URL to use that same port. For remote hosts, use the stable public HTTPS origin from Hosting.