dym

dym is a command-line client for the Dymmer hosting API.
Install
go install github.com/dymmer-code/dym@latest
Authentication
dym needs a Dymmer API token to talk to the API.
Sign in at https://dymmer.com/keys, select Generate or Regenerate, then copy the token immediately. Dymmer will not show it again; regenerating revokes the prior token.
Store the token securely in your OS keychain:
dym auth login
You'll be prompted to paste the token; it is saved to the system credential store and never written to disk in plaintext.
Other auth commands:
dym auth status # show which credential source will be used
dym auth logout # remove the saved token from the keychain
dym auth token-help # print instructions for obtaining a token
Environment override
Setting DYMMER_TOKEN takes priority over any token saved in the keychain:
export DYMMER_TOKEN=your-token-here
Command reference
dym auth
| Command |
Description |
dym auth login |
Prompt for a token and save it to the OS keychain |
dym auth logout |
Remove the saved token from the OS keychain |
dym auth status |
Show which credential source (keychain or DYMMER_TOKEN) will be used |
dym auth token-help |
Print instructions for obtaining a token |
dym domain <domain> records
| Command |
Description |
dym domain <domain> records list [--type <type>] [-o table|json] |
List DNS records, optionally filtered by type |
dym domain <domain> records create --type <type> [flags] [-o table|json] |
Create a DNS record |
dym domain <domain> records update <id> --type <type> [flags] [-o table|json] |
Update a DNS record (--type must always be resent) |
dym domain <domain> records delete <id> [--yes] [-o table|json] |
Delete a DNS record (prompts for confirmation unless --yes is given or stdin isn't a terminal, in which case --yes is required) |
Content flags accepted by create and update (only the ones you set are sent to the server):
--name, --ttl, --ip, --ipv6, --alias, --mail-provider, --priority, --ns, --value, --port, --weight, --target
dym domain <domain> mailboxes
| Command |
Description |
dym domain <domain> mailboxes list [-o table|json] |
List mailboxes |
dym domain <domain> forwardings
| Command |
Description |
dym domain <domain> forwardings list [-o table|json] |
List mail forwardings |
dym project <project> secrets
| Command |
Description |
dym project <project> secrets get [--env <env>] [--deployment <name>] [-o table|json|dotenv] |
Fetch secrets for a project |
--env defaults to dev. --deployment is optional. --output/-o accepts table (default, a two-column KEY/VALUE table), json (an array of secret entries), or dotenv (the raw .env-formatted body). Secrets are written to stdout only; errors are written to stderr only.
Output
Every command that prints API results defaults to a human-readable table on stdout. Pass --output json (-o json) to get JSON instead (byte-for-byte the same shape whether the result is a list or a single created/updated/deleted record); secrets get also accepts --output dotenv for the raw .env-formatted body. Empty lists print a No <resource> found. message instead of an empty table. Errors are written to stderr, and the process exits non-zero on failure.