Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.darkbloom.dev/llms.txt

Use this file to discover all available pages before exploring further.

The darkbloom binary is the provider agent CLI. Every operation — starting and stopping the provider, checking status, managing models, viewing earnings, and updating the agent — goes through this command. All subcommands support the -v / --verbose flag for more detailed log output.
darkbloom [--verbose] <subcommand> [options]

serve

Start the provider in the foreground. The provider connects to the coordinator, begins serving inference requests, and logs to stdout. Press Ctrl+C to stop.
darkbloom serve [options]
FlagDefaultDescription
--model <id>largest downloaded modelModel to serve. Can be specified multiple times to serve more than one model simultaneously.
--all-modelsoffServe all downloaded models that fit in memory.
--port <n>8000Port for the local API server.
--backend-port <n>8100 (from config)Port for the inference backend process.
--coordinator <url>wss://api.darkbloom.dev/ws/providerCoordinator WebSocket URL.
--localoffRun in local-only mode with no coordinator connection.
--idle-timeout <mins>60 (from config)Minutes of inactivity before the backend shuts down to free GPU memory. Set to 0 to keep the backend running indefinitely.
--no-auto-updateoffDisable the automatic update check at startup.
# Serve with the default model
darkbloom serve

# Serve a specific model
darkbloom serve --model qwen3.5-27b-claude-opus-8bit

# Serve multiple models
darkbloom serve --model qwen3.5-27b-claude-opus-8bit --model mlx-community/gemma-4-26b-a4b-it-8bit

# Keep the backend running even when idle
darkbloom serve --idle-timeout 0

start

Start the provider as a background daemon. The process is registered with launchd, persists across reboots, and auto-restarts if it crashes. Equivalent to darkbloom serve but daemonised.
darkbloom start [options]
FlagDefaultDescription
--model <id>value from configModel to serve.
--coordinator <url>wss://api.darkbloom.dev/ws/providerCoordinator WebSocket URL.
--idle-timeout <mins>60 (from config)Minutes of inactivity before the backend shuts down to free GPU memory.
# Start with config defaults
darkbloom start

# Start with a specific model
darkbloom start --model mlx-community/Qwen3.5-122B-A10B-8bit

stop

Stop the background daemon gracefully. Sends a termination signal to the running provider process and waits for it to exit cleanly.
darkbloom stop

status

Print hardware information, connection status, and the current serving configuration.
darkbloom status
The output includes your Apple Silicon chip model, memory size, GPU core count, and memory bandwidth, along with whether the provider is connected to the coordinator and which model is active.

doctor

Run a full diagnostic check and report any problems. Use this when the provider fails to start or connect, or after installing the agent for the first time.
darkbloom doctor [--coordinator <url>]
Doctor checks the following in order:
  1. Hardware detection (chip model, memory, GPU cores)
  2. System Integrity Protection (SIP) — must be enabled
  3. Secure Enclave (eigeninference-enclave binary availability)
  4. MDM enrollment status
  5. Inference runtime (vllm-mlx / mlx-lm import and version)
  6. Downloaded models
  7. Coordinator connectivity
Each check is marked pass or fail. For any failures, doctor prints the specific remediation steps.
Run darkbloom doctor before you run darkbloom serve for the first time. It will catch configuration problems before they show up as cryptic errors during startup.

models list

List the models you have downloaded locally, along with their estimated memory usage.
darkbloom models list [--coordinator <url>]
Pass --coordinator to also fetch the full catalog from the network and show which additional models your hardware could run. To download a model interactively:
darkbloom models download
To download a specific model without the interactive picker:
darkbloom models download --model <id>

earnings

Show your current balance, total earnings, and recent payout history.
darkbloom earnings [--coordinator <url>]
The output shows:
  • Balance — amount available for withdrawal
  • Total earned — cumulative lifetime earnings
  • Jobs served — total number of inference requests completed
  • Recent payouts — last five individual request payouts with model and amount
For full earnings details and withdrawal options, use the web console or see the earnings guide.

update

Check for a newer version of the provider agent and install it if one is available.
darkbloom update [--coordinator <url>] [--force]
FlagDescription
--forceRe-download and install even if you are already on the latest version.
The provider also checks for updates automatically at startup and prints a notification if a newer version is available. Auto-updates in the background can be managed with darkbloom autoupdate.

login

Link this machine to your Darkbloom account using a device code flow. Running darkbloom login opens your browser to the account linking page and displays a short code in the terminal. After you approve the link in the browser, the provider saves an auth token and uses it for all subsequent connections.
darkbloom login [--coordinator <url>]
If the machine is already linked, the command prints the current status and exits without re-linking. Run darkbloom logout first if you need to switch accounts.

logout

Unlink this machine from your Darkbloom account. The locally stored auth token is deleted. The provider will continue to run and serve requests, but earnings will not be credited to your account until you run darkbloom login again.
darkbloom logout

logs

View provider logs.
darkbloom logs [--lines <n>] [--watch]
FlagDefaultDescription
--lines <n>50Number of recent log lines to show.
-w / --watchoffFollow logs in real time (equivalent to tail -f).

autoupdate

Enable or disable automatic background updates.
darkbloom autoupdate <enable|disable|status>
When enabled (the default), the provider checks for updates every 30 minutes while running and installs them automatically. When disabled, you manage updates manually with darkbloom update.
# Check current setting
darkbloom autoupdate status

# Disable automatic updates
darkbloom autoupdate disable

# Re-enable automatic updates
darkbloom autoupdate enable

Global flags

FlagDescription
-v / --verboseEnable debug-level logging for the current command.
--versionPrint the installed version and exit.
--helpPrint usage for any command or subcommand.