CLI reference

Configuration

1 min read

The CLI works without configuration for the offline commands (add, list, search, validate). Configuration only matters when you want to:

  • Point at a self-hosted designdrop instance.
  • Override the default output path or format.
  • Authenticate non-interactively in CI.

Config file

Drop a .designdroprc.json at your project root or your home directory. Project-local takes precedence.

{
  "apiUrl": "https://designdrop.app",
  "defaultOut": "DESIGN.md",
  "defaultTheme": "auto",
  "color": "auto"
}

Settings:

  • apiUrl — base URL for API calls (default https://designdrop.app).
  • defaultOut — default output path for add and generate (default DESIGN.md).
  • defaultThemeauto, light, dark, both (default auto).
  • colorauto, always, never for ANSI output (default auto, respects NO_COLOR).

Environment variables

Useful in CI where a config file is awkward.

| Variable | Purpose | |----------|---------| | DESIGNDROP_TOKEN | API token for non-interactive auth. Bypasses the keychain. | | DESIGNDROP_API_URL | Override apiUrl from the config. | | NO_COLOR | Disable ANSI output. Standard convention. | | CI | When set to true, the CLI assumes non-interactive mode (no prompts, no spinners). |

Non-interactive auth

In CI, skip the browser-based designdrop login flow by exporting a token:

# .github/workflows/release.yml
env:
  DESIGNDROP_TOKEN: ${{ secrets.DESIGNDROP_TOKEN }}
steps:
  - run: designdrop generate https://example.com --out DESIGN.md
  - run: designdrop validate DESIGN.md

Generate a token at app.designdrop.app/dashboard/api-keys (Pro tier and above).

Self-hosted

Point at a self-hosted instance via apiUrl. The CLI's wire protocol is documented in the API reference so any compliant server (the open-source designdrop or your fork) works the same way.