docs / install

Install

krabs is open source and self-hostable. You can install it without ever touching npm — clone the repo, run the kickoff, or use the one-line installer below. Pick whichever you prefer; they all land at the same final state.

One-liner install (recommended)

curl -fsSL https://krabs.dev/install.sh | sh

Requires node ≥ 22 and git on your PATH.pnpm gets enabled via corepack if you don't have it.

Override the install directory with KRABS_DIR=/where/to/install (default $HOME/krabs) or the branch with KRABS_BRANCH=....

not on npm — on purpose
We deliberately ship krabs without an npm package. The CLI is a single 79 KB ESM file that lives in the cloned repo; the installer symlinks it onto your PATH. No npm registry account, no Homebrew tap, no global state outside ~/.config/krabs/config.json.

What the script does

  1. Checks node ≥ 22 and git
  2. Enables pnpm via corepack if missing
  3. git clone into $HOME/krabs (or $KRABS_DIR)
  4. pnpm install (production + dev deps)
  5. Copies .env.example to .env if missing
  6. pnpm kickoff — builds the CLI + MCP server, runs all migrations, mints an API key, saves it to ~/.config/krabs/config.json, and prints the MCP config snippet for Claude Desktop / Cursor
  7. Symlinks dist/cli/main.mjs to the first writable directory on your PATH (~/.local/bin /usr/local/bin) as krabs

Manual install (no script)

If you'd rather run every step yourself:

git clone https://github.com/augusto-devingcc/krabs.git
cd krabs
cp .env.example .env
pnpm install
pnpm kickoff           # builds CLI + MCP, mints key, prints MCP config
ln -s "$PWD/dist/cli/main.mjs" /usr/local/bin/krabs   # optional: put 'krabs' on PATH

Then start the API in another terminal:

pnpm dev:api

Without cloning — npx github:

One-shot invocations without any persistent install (slow on first run because npx clones + installs each time, but useful for CI or scripts):

npx -y github:augusto-devingcc/krabs schema describe
npx -y github:augusto-devingcc/krabs account business-profile get

The root package.json declares bin.krabs = ./dist/cli/main.mjs, so npx finds the binary after the clone. This path doesn't install anything globally — it re-clones to a temp dir each invocation.

Prebuilt binary (GitHub Releases)

Every tagged release attaches a prebuilt krabs.mjs to its GitHub Releases page. If you only want the CLI (no dashboard, no MCP server, no local DB), grab it directly:

curl -fsSL https://github.com/augusto-devingcc/krabs/releases/latest/download/krabs.mjs \
  -o /usr/local/bin/krabs
chmod +x /usr/local/bin/krabs
krabs --version

You'll still need a krabs API to talk to (either the hosted api.krabs.dev via krabs auth login, or a self-hosted instance — see the manual flow above).

What you get on disk

  • ~/krabs/ — the cloned repo (configurable via $KRABS_DIR)
  • ~/krabs/dist/cli/main.mjs — the krabs CLI, a single ESM file (~80 KB)
  • ~/krabs/dist/mcp/server.mjs — the MCP server (the MCP config snippet points at this path)
  • ~/.config/krabs/config.json — your API URL + bearer token
  • ~/krabs/data/local.db — local SQLite, your entire krabs state
  • /usr/local/bin/krabs (or ~/.local/bin/krabs) — symlink to dist/cli/main.mjs so the CLI is on PATH

Uninstall

rm -rf ~/krabs
rm -rf ~/.config/krabs
rm -f /usr/local/bin/krabs   # or wherever the installer put it

All state is local. If you also created API keys against the hosted api.krabs.dev, revoke them from the dashboard before removing.

Next steps

Edit this page on GitHub →last updated 2026-05-17 · v0.5.0