CLI tool for managing your Infomaniak services from the terminal.
Manage DNS, mail, hosting, kDrive, products, and more — all from one command.
pipx install infomaniakpip install infomaniakgit clone https://github.com/peaktwilight/infomaniak-cli.git
cd infomaniak-cli
pip install .infomaniak setupThe setup wizard will:
- Open the Infomaniak token page in your browser
- Prompt you to paste your API token
- Validate it against the API
- Check which optional scopes are enabled
- Save it to
~/.config/infomaniak/config.ini
Required scopes: accounts, domain:read, dns:read, dns:write
Optional scopes: mail (mailboxes), web (hosting details), drive (kDrive details)
# Environment variable
export INFOMANIAK_API_TOKEN=your-token-hereToken lookup order: environment variable → config file → .env file.
infomaniak dns domains # List all domains
infomaniak dns records example.com # List DNS records
infomaniak dns records example.com --type CNAME # Filter by type
infomaniak dns check example.com 12345 # Check record health
infomaniak dns add example.com A blog 93.184.216.34 # Create record
infomaniak dns update example.com 12345 --target 1.2.3.4 # Update record
infomaniak dns delete example.com 12345 # Delete record
infomaniak dns export example.com # Export as JSON
infomaniak dns export example.com -f csv -o records.csv # Export as CSV
infomaniak dns import example.com records.json # Import from file
infomaniak dns diff example.com records.json # Compare live vs file
infomaniak dns sync example.com desired.json --dry-run # Sync (terraform-style)
infomaniak dns clone source.com target.com # Clone between domains
infomaniak dns search "76.76.21" # Search across all domains
infomaniak dns backup # Backup all domains
infomaniak dns audit # Audit all domains (SPF/DMARC/DKIM)
infomaniak dns audit example.com # Audit single domain
infomaniak dns zone example.com # Generate BIND zone file
infomaniak dns propagation example.com # Check global DNS propagation
infomaniak dns propagation example.com -n www -t CNAME # Check specific recordinfomaniak domains # List all domains with expiry dates
infomaniak domains --warn 60 # Warn if expiring within 60 daysinfomaniak account # Account overview
infomaniak products # List all products
infomaniak products --type email_hosting # Filter by service
infomaniak status # Service status overviewinfomaniak mail list # List mail hostings
infomaniak mail mailboxes <id> # List mailboxes (needs 'mail' scope)infomaniak hosting list # List web hostings
infomaniak drive list # List kDrive instancesinfomaniak config show # Show token, source, scopes
infomaniak setup # Interactive setup wizardAdd --json to any read command for machine-readable output:
infomaniak dns domains --json
infomaniak dns records example.com --json
infomaniak dns search vercel --json
infomaniak products --json
infomaniak account --json
infomaniak status --json$ infomaniak account
Account
Name: John Doe
ID: 12345
Total: 5 products
Service Count Examples
─────────────── ───── ─────────────────────────
domain 2 example.com, example.org
email_hosting 2 example.com, example.org
drive 1 example.com
$ infomaniak dns search vercel
Search: "vercel" — 3 matches across 10 domains
Domain ID Type Name Target TTL
───────────── ────── ───── ──── ─────────────────────── ────
example.com 200001 CNAME @ cname.vercel-dns.com 300
example.com 200002 CNAME www cname.vercel-dns.com 300
example.org 300001 CNAME @ cname.vercel-dns.com 300
$ infomaniak dns sync example.com desired.json --dry-run
DNS sync plan for example.com
File: desired.json
+ 1 to create - 2 to delete 8 unchanged
Create:
+ A new-app → 198.51.100.1
Delete:
- CNAME old-cdn → old.cdn.example.net
- TXT _old-verify → verify=abc123
Dry run — no changes applied.
$ infomaniak dns audit
DNS Audit
────────
Scanning 10 domain(s)...
! No SPF record found — Email spoofing protection
→ legacy-site.com
! No DMARC record found — Email authentication policy
→ legacy-site.com
→ staging.org
Summary: 10 domains scanned
8 clean
2 with issues (3 total findings)
$ infomaniak dns propagation example.com
DNS Propagation: A example.com
Resolver IP Result
────────── ────────────── ───────────
Google 8.8.8.8 93.184.216.34
Cloudflare 1.1.1.1 93.184.216.34
Quad9 9.9.9.9 93.184.216.34
OpenDNS 208.67.222.222 93.184.216.34
All resolvers agree. DNS is fully propagated.
$ infomaniak domains
Domains (3)
Domain Expires Days Left Status
─────────────── ────────── ───────── ────────
expiring.com 2026-04-01 17 expiring
example.com 2027-01-15 306 active
example.org 2027-06-20 462 active
Warning: 1 domain(s) expiring within 30 days:
! expiring.com — 17 days remaining
$ infomaniak status
Service Status — 5 products
Service Total Active Issues
─────────────── ───── ────── ──────
domain 2 2 none
email_hosting 2 2 none
drive 1 1 none
✓ All services operational.
Built on the Infomaniak API:
| Endpoint | Description |
|---|---|
GET /1/accounts |
Account info |
GET /1/products |
List all products |
GET /1/domain/account/{id} |
List domains |
GET /2/zones/{zone}/records |
List DNS records |
POST /2/zones/{zone}/records |
Create record |
PUT /2/zones/{zone}/records/{id} |
Update record |
DELETE /2/zones/{zone}/records/{id} |
Delete record |
GET /2/zones/{zone}/records/{id}/check |
Check record health |
GET /1/mail_hostings/{id}/mailboxes |
List mailboxes |
MIT