Prerequisites

From the beebridge repo root (where beebridge.mjs lives):

npm run build:cli
node beebridge.mjs --help

If apps/cli/dist/index.js is missing, the root loader exits with a message to run npm run build:cli first.

Production vs development

By default, gateway start|restart and web start|restart run production scripts: npm run start:gateway (compiled dist/) and npm run start:web (next start). Run npm run build from the repo root first.

Pass --dev to use npm run dev:gateway (tsx) or npm run dev:web (next dev) instead — no production artifacts required for those.

Common commands

CommandPurpose
gateway start | restartProduction gateway (start:gateway). --devdev:gateway. --daemon → background; logs under .beebridge-daemon/gateway-<port>.log
web start | restartProduction web (start:web). --devdev:web. --daemon, --open (opens /dashboard)
web settings, manager setupOpen Settings in the browser; --dev optional
stopSIGTERM anything on 4321 (gateway) and 3000 (web); override with --gateway-port / --web-port
gateway tokenPrint the current gateway auth token (same as ~/.beebridge/gateway-token when auto-generated)
onboardFirst-time PM auth / model setup
(no args) or tuiKeyboard-driven terminal UI

How to invoke

FormExample
node beebridge.mjs …node beebridge.mjs gateway restart --daemon
npm run beebridge -- …npm run beebridge -- gateway start --port 4321 (passes args after --)
npm run … shortcutsSee npm scripts below (same as node beebridge.mjs …)
Global beebridgenpm link at repo root, then beebridge gateway restart --daemon

Default Behavior

Running node beebridge.mjs with no subcommand launches the keyboard-driven terminal TUI. Same as node beebridge.mjs tui.

Environment Variables

VariableDefaultPurpose
beebridge_HOMERepo rootWorking directory for spawned gateway/web processes
beebridge_GATEWAY_URLhttp://localhost:4321Gateway HTTP base URL for API calls
beebridge_GATEWAY_TOKEN(unset)Bearer token; falls back to GATEWAY_TOKEN, then ~/.beebridge/gateway-token if present
PORT4321 / 3000Listen port for gateway or web start commands

Daemon Mode (-d / --daemon)

gateway start, gateway restart, web start, and web restart all accept -d or --daemon. The CLI spawns the same npm script as foreground mode: production (start:gateway / start:web) unless you pass --dev (then dev:gateway / dev:web), detached from beebridge_HOME (repo root).

Examples

# Restart gateway on default port (4321), detached — logs under .beebridge-daemon/
node beebridge.mjs gateway restart --daemon

# Same with explicit port
node beebridge.mjs gateway restart --port 4321 --daemon

# Web UI in background on port 3000
node beebridge.mjs web start --daemon

# Restart web (kills process on port, then starts again)
node beebridge.mjs web restart --daemon

# Open browser when starting web in foreground (not used with --daemon)
node beebridge.mjs web start --open --port 3000

While detached:

  • Logs: .beebridge-daemon/gateway-<port>.log or .beebridge-daemon/web-<port>.log
  • PID file: .beebridge-daemon/gateway-<port>.pid or .beebridge-daemon/web-<port>.pid

gateway restart / web restart first stop whatever is listening on that port, then start again — useful after config changes.

npm scripts (repo root package.json)

These are thin wrappers around node beebridge.mjs …:

ScriptEquivalent
npm run gateway:startnode beebridge.mjs gateway start
npm run gateway:restartnode beebridge.mjs gateway restart
npm run gateway:start:daemonnode beebridge.mjs gateway start --daemon
npm run gateway:restart:daemonnode beebridge.mjs gateway restart --daemon
npm run web:startnode beebridge.mjs web start
npm run web:restartnode beebridge.mjs web restart
npm run web:start:daemonnode beebridge.mjs web start --daemon
npm run web:restart:daemonnode beebridge.mjs web restart --daemon

Command Reference

onboard

Interactive first-time setup (PM auth, model, runtime).

OptionDescription
--install-daemonInclude daemon install step
-y, --yesNon-interactive with defaults

job create

OptionDescription
-g, --goal <goal>Required. Job description

manager — Project Manager AI

SubcommandOptionsDescription
plan-g goal, -d deadline, -p priorityPlan with goal
ask-g goalCreate a job (alias)
settingsPrint PM settings JSON
setup--tab (connection|auth|model|workspace|status), --port, --no-open, --devStart web and open /settings?tab=… (next start unless --dev)

manager auth

SubcommandOptionsDescription
add--provider, --mode, --secret, --labelAdd auth profile
login--provider, --label, --no-openOAuth/device login flow
activate--profile <id>Activate a profile
remove--profile <id>Delete a profile

manager model

SubcommandOptionsDescription
providersList provider catalog (JSON)
set--provider, --model, --allow, --fallbackSet default model policy

bee — Worker Queue

SubcommandDescription
runRun approved bee queue
approvalsList pending approvals
approve -j <jobId>Approve a job

flower

SubcommandDescription
statusFlower / integration status

gateway

Runs npm run start:gateway (compiled gateway) from the repo root by default. Pass --dev for npm run dev:gateway (tsx). Default HTTP port 4321 (or PORT env / --port).

SubcommandOptionsDescription
start--port <n>, --dev, -d / --daemonForeground or background gateway
restartSameStop process on port, then start again (e.g. pick up env changes)
tokenPrint current gateway Bearer token (see also ~/.beebridge/gateway-token)

web

Runs npm run start:web (next start) by default. Pass --dev for npm run dev:web. Default web port 3000.

SubcommandOptionsDescription
start-o / --open (open /dashboard), --port, --dev, -d / --daemonNext.js UI
restartSameStop process on port, then start web again
settings--tab (connection|auth|model|workspace|status), --port, --no-open, --devSame as manager setup — opens Settings

tui

Launch the terminal GUI explicitly.

Legacy Aliases

CommandMaps to
project create -gjob create
task planmanager plan
task run-approvedbee run