2.7 KiB

Dotplan CLI

A shell script to interact with dotplan providers.


Install these using your distribution's package manager, or compile from source if your distribution does not provide recent versions.

Basic Usage

  • dotplan will print the dotplan for as plain text
  • dotplan PUBLIC_MINISIGN_KEY will verify the signed dotplan for using the provided public minisign key before printing it

Advanced Usage

dotplan-cli can be used to register an account and publish dotplans on Dotplan Online or other providers running compatible implementations.

Configure your email and password in ~/.dotplan.conf.json. Make sure this file is read-protected after you create it (chmod 0600 ~/.dotplan.conf.json):

  "auth": {
    "email": "",
    "password": "my-password-123"
  • dotplan register will prompt for an email address and password and attempt to register it for you, optionally saving it to your ~/.dotplan.conf.json file
  • dotplan publish will sign (if minisign is available) and publish your ~/.plan file to your dotplan provider
  • dotplan edit will open your ~/.plan file in an editor, then sign (if minisign is available) and publish it to your dotplan provider after you save and exit

Optional Configuration

If you set auth.provider in your ~/.dotplan.conf.json file, the register, publish, and edit commands will use that instead of discovering via SRV records. If you set relayProvider, all dotplans will be fetched from there instead of discovering via SRV records.

  "auth": {
    "email": "",
    "password": "my-password-123",
    "provider": ""
  "relayProvider": ""

Several other aspects can be configured via environment variables:

  • DOTPLAN_CONFIG_PATH: the config file to read and write ($HOME/.dotplan.conf.json)
  • DOTPLAN_MINISIGN_PRIVATE_KEY the location of your private key ($HOME/.minisign/minisign.key)
  • DOTPLAN_PLAN_PATH the location of your plan for the publish and edit commands ($HOME/.plan)
  • DOTPLAN_CURL_PATH to specify the location of curl
  • DOTPLAN_JQ_PATH to specify the location of jq
  • DOTPLAN_DRILL_PATH to specify the location of drill or dig
  • DOTPLAN_MINISIGN_PATH to specify the location of minisign