nf

Commands

Top-level help is context-sensitive.

Always Available Commands

nf

Commands:
  provider    manage provider integrations
  target      manage deployable targets
  site        manage remote sites and envs
  domain      manage remote env domains
  password    derive passwords

  init        initialize project metadata
  config      manage global config
  completion  print shell completion scripts
  version     show nf version
  help        show help

Project Commands

Inside an nf project repo with nf.json next to .git:

nf

Commands:
  provider    manage provider integrations
  target      manage deployable targets
  site        manage remote sites and envs
  domain      manage remote env domains
  password    derive passwords

  remote      manage repo remotes
  env         manage the local development env
  theme       package clean artifacts and run theme tasks
  alias       manage root-level WordPress content aliases

  init        initialize project metadata
  config      manage global config
  completion  print shell completion scripts
  version     show nf version
  help        show help

Providers, Targets, Sites, Domains, and Remotes

Commands:

nf provider list
nf provider show <provider>
nf provider check <provider>
nf refresh
nf target add linode <name> [--region region] [--type type] [--image image] [--db-user user] [--user user] [--keys all] [--execute --yes] [--wait]
nf target remove <target> [--dry-run] [--execute --yes]
nf target refresh
nf target list
nf target show <target>
nf target password [target] [--root|--db]
nf site add <target> <site> [--with-staging] [--password-version version] [--kinsta-slug slug] [--region region] [--php version] [--execute --yes]
nf site refresh
nf site list [--refresh] [--envs]
nf site show <site-id-or-alias-or-env-id>
nf site staging status <site-id-or-alias>
nf site staging add <site-id-or-alias> [--dry-run] [--execute --yes]
nf site staging remove <site-id-or-alias> [--dry-run] [--execute --yes]
nf site shell <site.target:env>
nf site wp <site.target:env> -- <cmd>
nf site export <site.target:env> [--output path] [--dry-run]
nf site snapshot <site.target:env> [--output path] [--dry-run]
nf site snapshot list
nf site snapshot remove <name> [--yes]
nf site snapshot prune [--keep N] [--dry-run] [--yes]
nf site password [site-id-or-alias-or-env-id] [--wp|--db|--basicauth]
nf site basicauth status <site.target:env>
nf site basicauth enable <site.target:env> [--dry-run] [--execute --yes]
nf site basicauth disable <site.target:env> [--dry-run] [--execute --yes]
nf site basicauth password [site-id-or-alias]
nf domain list [site|site.target:env|remote]
nf domain add <site.target:env|remote> <domain> [domain...] [--primary] [--proxy cloudflare] [--setup avoid-downtime|quick] [--dry-run] [--execute --yes]
nf domain check <site.target:env|remote> [domain...] [--proxy cloudflare]
nf domain primary <site.target:env|remote> <domain> [--proxy cloudflare] [--setup avoid-downtime|quick] [--search-replace] [--force] [--wait-timeout 30m] [--wait-interval 30s] [--dry-run] [--execute --yes]
nf domain remove <site.target:env|remote> <domain> [domain...] [--delete-cert] [--dry-run] [--execute --yes]
nf site remove [site-id-or-alias] [--dry-run] [--execute --yes]
nf remote add [name] [site.target:env]
nf remote show <name>
nf remote remove <name>
nf remote list
nf alias list
nf alias status [remote]
nf alias sync [remote]
nf alias add <alias> <target>
nf alias remove <alias>

Standard Linode target example:

nf target add linode app1 \
  --region ca-central \
  --type g6-standard-1 \
  --image linode/ubuntu24.04 \
  --db-user admin \
  --user nonfiction \
  --keys all

Current Behavior