Set up from the terminal
If you live in a terminal, you can set up email on your domain without touching the dashboard:
npx faivelo init yourcompany.com
There is nothing to install. The command signs you in, adds the domain, gets the DNS records in place (automatically where your DNS host allows it), waits until they are live, and creates your first mailbox — then hands you the credentials once.
What it does, step by step
- Sign in. A pairing code appears in the terminal and your browser opens
faivelo.com/cli/authorize. Sign in or create a free account, check the code matches, click Approve. The terminal notices on its own. Working over SSH? Add--no-openand open the printed link from any browser; the code is the same. - Checks the domain. Nameservers, who hosts the DNS, whether the domain already receives mail somewhere (it tells you before anything changes), and whether the domain is registered at all.
- Adds the domain to your account and generates the records.
- Gets the records in, choosing the easiest path your host supports:
- Connect in your browser — Cloudflare, Vercel, Netlify, DigitalOcean, WordPress.com, Google Cloud DNS: one consent screen, no keys.
- Approve at your host — hosts that support Domain Connect add the records for you.
- Paste an API key — GoDaddy, Namecheap, Route 53, Hostinger, Porkbun, name.com, Gandi, IONOS and more. The terminal tells you exactly where the key page is and what format it expects.
- By hand — full, copy-ready values shaped for your host's form (Squarespace, Shopify and Bluehost quirks included), while the terminal keeps checking every 10 seconds.
- Waits for DNS. Live progress like
4/9 required records found. Stop anytime with Ctrl+C;npx faivelo status yourcompany.compicks up where you left off. - Creates your first mailbox and prints the password, IMAP and SMTP settings once. Inside a project folder it offers to write
SMTP_*andIMAP_*into.env(and warns if.envisn't gitignored).
Commands
| Command | What it does |
|---|---|
npx faivelo init [domain] | The full setup above. Safe to re-run: it resumes wherever the domain is. |
npx faivelo status [domain] | All your domains, or one domain's DNS checked live. |
npx faivelo dns <domain> | The records to add, with full values. --table for a compact view, --zone for a BIND zone file you can import. |
npx faivelo login / logout / whoami | Manage the sign-in saved on this computer. |
Options
--no-open— never launch a browser, only print links (SSH sessions, containers, CI). It is also automatic whenCIorSSH_CONNECTIONis set.--table/--zone— withdns: a compact table, or a BIND zone file to import.--api <url>— talk to another Faivelo instance (or setFAIVELO_API_URL).-v,--version— print the CLI version.-h,--help— list commands and options.FAIVELO_TOKEN— skip the browser sign-in entirely by supplying a session token (scripts and CI).
Running npx faivelo with no command is the same as npx faivelo init. The CLI ships inside the faivelo npm package, which is also the Node.js SDK (npm install faivelo).
Where things are stored
The sign-in is saved to ~/.config/faivelo/credentials.json (%APPDATA%\faivelo on Windows), readable only by your user. npx faivelo logout removes it. Mailbox passwords are never stored by the CLI — they are shown once, and optionally written to your project's .env when you say yes.