Skip to main content
The Mercur CLI (@mercurjs/cli@latest) manages your marketplace project — creating projects, installing blocks, generating types, and checking for updates.

Installation

bun add -g @mercurjs/cli@latest

Commands

create

Scaffold a new Mercur project from a template.
bunx @mercurjs/cli@latest create my-marketplace
The CLI will prompt you for database credentials and install dependencies automatically.
OptionDescription
-t, --template <template>Template to use (default: basic)
--no-depsSkip dependency installation
--skip-dbSkip database configuration
--db-connection-string <string>PostgreSQL connection string

init

Initialize an existing project by creating a blocks.json configuration file.
bunx @mercurjs/cli@latest init
This sets up path aliases so the CLI knows where to place blocks in your project:
{
  "aliases": {
    "api": "packages/api/src",
    "vendor": "apps/vendor/src",
    "admin": "apps/admin/src"
  }
}
OptionDescription
-d, --defaultsUse default paths without prompting
-s, --silentSuppress output

add

Install blocks from the registry into your project.
bunx @mercurjs/cli@latest add wishlist
bunx @mercurjs/cli@latest add product-review order-tracking
Blocks are copied directly into your project as source code. The CLI resolves dependencies, transforms imports to match your path aliases, and installs required packages.
OptionDescription
-o, --overwriteOverwrite existing files
-y, --yesSkip confirmation
-s, --silentSuppress output
Find available blocks in the registry.
bunx @mercurjs/cli@latest search --query wishlist
OptionDescription
-q, --query <query>Search by name or description
-r, --registry <registry>Registry to search (default: @mercurjs)

view

Display detailed information about a block.
bunx @mercurjs/cli@latest view wishlist

diff

Compare local blocks against registry versions to check for updates.
bunx @mercurjs/cli@latest diff wishlist
If there are changes you want, update with:
bunx @mercurjs/cli@latest add wishlist --overwrite

codegen

Generate TypeScript types from your API routes. Used by the API Client for type-safe requests.
bunx @mercurjs/cli@latest codegen
OptionDescription
-w, --watchWatch for changes and regenerate automatically

registry:build

Build a custom registry from a registry.json file.
bunx @mercurjs/cli@latest build
OptionDescription
-o, --output <path>Output directory (default: ./r)
-v, --verboseShow detailed output

info

Display project configuration and diagnostics.
bunx @mercurjs/cli@latest info

telemetry

Control anonymous usage data collection.
bunx @mercurjs/cli@latest telemetry --disable
bunx @mercurjs/cli@latest telemetry --enable

Custom registries

Add custom block registries to your blocks.json:
{
  "registries": {
    "@mercurjs": "https://registry.mercurjs.com/{name}",
    "@my-registry": "https://my-registry.com/blocks/{name}.json"
  }
}
Use {name} as a placeholder for block names. Reference custom registries with the -r flag:
bunx @mercurjs/cli@latest search --query review --registry @my-registry