Developers → CLI
One static binary for macOS, Linux and Windows, on Intel and ARM. Manage DNS, SSL, domains, app servers and ports from your terminal or your scripts, and connect your AI clients to NameOcean in one command.
$ brew install nameocean/tap/nameocean
$ curl -fsSL https://nameocean.net/install.sh | sh
The script checks the download against checksums.txt and installs to /usr/local/bin, or ~/.local/bin when that is not writable.
One file, nothing to install. These links always serve the latest release.
| Intel / AMD (x86-64) | ARM | |
|---|---|---|
| macOS | nameocean-darwin-amd64 | nameocean-darwin-arm64 (Apple silicon) |
| Linux | nameocean-linux-amd64 | nameocean-linux-arm64 |
| Windows | nameocean-windows-amd64.exe | nameocean-windows-arm64.exe |
$ chmod +x nameocean-darwin-arm64 $ xattr -d com.apple.quarantine nameocean-darwin-arm64 # macOS, downloaded in the browser $ sudo mv nameocean-darwin-arm64 /usr/local/bin/nameocean
On Windows, rename the file to nameocean.exe and put it in a folder on your PATH. The binaries are not signed yet, so macOS Gatekeeper and Windows SmartScreen may warn the first time. Check a download against checksums.txt; older versions and archives are on GitHub Releases.
$ nameocean login $ nameocean account
login opens the browser to approve the CLI (OAuth with PKCE). Tokens are kept in the OS keychain and refreshed automatically; nameocean logout revokes them. On a machine without a keychain, such as a Linux server, they are saved to ~/.config/nameocean/credentials.json, readable only by you.
$ export NAMEOCEAN_API_KEY=<API key> $ nameocean dns ls example.com
Get the key from Dashboard → API Key. NAMEOCEAN_API_KEY always wins over saved credentials, and nothing is written to disk.
$ nameocean mcp install
Finds Claude Code, Cursor and OpenCode on your computer and adds the NameOcean MCP server to each. Your existing settings are kept. The client signs in in the browser the first time it uses a NameOcean tool.
| account | Email, credit, domain and zone counts |
| domains ls | Your domains with expiry, auto-renew and lock |
| domains check <domain> [--years N] | Availability and price |
| dns ls [zone] | Your zones, or the records of one zone |
| dns add <zone> <type> <hostname> <value> [--ttl 1h] [--priority N] | Add a record: A, AAAA, CNAME, MX, TXT, SRV, PTR or an HTTP redirect |
| dns rm <zone> <type> <id> | Delete a record |
| ssl status <zone> | Certificate state and expiry |
| ssl issue <zone> [--wait] | Issue a wildcard Let's Encrypt certificate |
| servers ls | Your app servers |
| servers info <server> | SSH, git remote, ports and domains of a server |
| ports ls|open|close <server> <port> [-p udp] | Open and close TCP/UDP ports; the external port is assigned |
| bind <domain> <server> | Serve a domain from a server: DNS, SSL and load balancer |
| unbind <domain> <server> | Stop serving a domain from a server |
| mcp install [--client claude-code,cursor,opencode] | Connect AI clients to the MCP server |
| login | logout | Sign in with the browser or --token; sign out and revoke |
| completion bash|zsh|fish|powershell | Shell completion (Homebrew installs it for you) |
$ nameocean dns add example.com A @ 203.0.113.10 --ttl 5m $ nameocean dns add example.com CNAME www @ $ nameocean dns add example.com MX @ mail.example.com --priority 10 $ nameocean dns add example.com TXT @ "v=spf1 include:_spf.google.com ~all" $ nameocean ssl issue example.com --wait $ nameocean bind example.com 3f9a1c2e $ nameocean servers ls --json | jq '.servers[].default_domain'
Every command takes --json and then prints the API's JSON unchanged; errors come as an error object on stdout. A failed command exits with a non-zero code.
The CLI never spends money. Register and renew domains on nameocean.net or with the REST API.
Release notes are on GitHub Releases; report bugs in Issues. brew upgrade nameocean, or run the install script again, to update.