Manage Cloudflare DNS records from your terminal.
Project description
cftui
Manage Cloudflare DNS records from your terminal.
cftui = Cloudflare TUI
- GitHub → github.com/Marshmellond/cftui
- PyPI → pypi.org/project/cftui
Features
- Browse, add, edit, and delete DNS records
- Supports A, AAAA, CNAME, MX, TXT, NS, SRV, CAA record types
- Toggle Cloudflare proxy (orange cloud) on/off
- Built-in settings screen — no manual config file editing required
- Cross-platform: Windows, macOS, Linux
- Configurable via environment variables or TOML file
Installation
pipx
pipx install cftui
uv
uv tool install cftui
pip
pip install cftui
Run without installing
uvx cftui
Usage
cftui
Key bindings
| Key | Action |
|---|---|
Ctrl+S |
Open settings |
Ctrl+R |
Refresh records |
a |
Add a new record |
Enter |
Edit selected record |
d |
Delete selected record |
Ctrl+C / Ctrl+Q |
Quit |
Configuration
On first launch, cftui creates a config file at:
| Platform | Path |
|---|---|
| Windows | %APPDATA%\cftui\config.toml |
| macOS | ~/Library/Application Support/cftui/config.toml |
| Linux | ~/.config/cftui/config.toml |
You can configure everything from the built-in settings screen (Ctrl+S), or edit the file manually.
config.toml
# Cloudflare API Token
# Create at: https://dash.cloudflare.com/profile/api-tokens
# Permission: Zone · DNS · Edit
api_token = "your_token_here"
# Zone identifier (choose ONE)
zone_name = "example.com"
zone_id = ""
Environment Variables
All config values can also be set via environment variables:
| Variable | Equivalent |
|---|---|
CFD_API_TOKEN |
api_token |
CFD_ZONE_NAME |
zone_name |
CFD_ZONE_ID |
zone_id |
API Token
Create a Cloudflare API token at dash.cloudflare.com/profile/api-tokens.
Required permission: Zone · DNS · Edit
Zone
Pick one:
- Zone Name — your domain, e.g.
example.com - Zone ID — found on the Cloudflare dashboard overview page
Development
git clone https://github.com/Marshmellond/cftui.git
cd cftui
uv sync
uv run cftui
Python 3.11+ required.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cftui-0.1.0.tar.gz.
File metadata
- Download URL: cftui-0.1.0.tar.gz
- Upload date:
- Size: 134.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b25e5c58083eafdb86baadc89d3bad766b470b67e2b22be976dee1a7f48b39b9
|
|
| MD5 |
1ed3ad5b5b089a0b1da3e3b9dbd6f994
|
|
| BLAKE2b-256 |
254fe676ec753a78d14d5855a1abcb37e8ed771edbedf7a4c570b2c519d2540b
|
File details
Details for the file cftui-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cftui-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21cdcce59960bd532a54674c76f193ac27876732abbfd8ab9948789a3488d80b
|
|
| MD5 |
2d8fb25211291f30bfcacdf0ab5913b1
|
|
| BLAKE2b-256 |
8939f07a1cb39c6ac127e80fc05f16f20cbd8cb04ee06b81f9a34e51f4f2f528
|