cloudflare-cli について
cloudflare-cli は、Cloudflare のゾーンと DNS レコードを管理するコマンドラインツールです。レコードの検索や変更、テーブルまたは JSON 出力、複数の認証方式に対応し、運用やスクリプトで利用できます。
主な機能
- 01ゾーンの一覧表示と詳細確認
- 02DNS レコードの絞り込みと検索
- 03レコードの作成、更新、削除
- 04設定ファイルまたは環境変数による認証
- 05テーブルまたは JSON 出力の選択
活用シーン
- 01ドメインの DNS レコード確認
- 02デプロイ時のレコード変更
- 03更新や削除前のレコード ID 検索
- 04JSON 出力をスクリプトに渡す
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ evolv3-ai/ vibe-skills --skill cloudflare-cliインストール後、Claude Code で/cloudflare-cliを入力して読み込まれたか確認します。
同梱ファイルreferences/correction-rules.md
詳細
Cloudflare CLI (cf)
クイックスタート(3 分)
1. インストール
# Linux/macOS (global)
curl -fsSL https://raw.githubusercontent.com/coollabsio/cloudflare-cli/main/scripts/install.sh | bash
# Linux/macOS (user, no sudo)
curl -fsSL https://raw.githubusercontent.com/coollabsio/cloudflare-cli/main/scripts/install.sh | bash -s -- --user
# Via Go
go install github.com/coollabsio/cloudflare-cli@latest
# From source
git clone https://github.com/coollabsio/cloudflare-cli.git
cd cloudflare-cli && go build -o cf .
Windows:バイナリをGitHub Releasesからダウンロードするか、go build -o cf.exe .でソースからビルドします。
2. 認証
Cloudflare Dashboard → My Profile → API Tokens で、次の権限を持つ API トークンを作成します。
- Zone:Read(ゾーンの一覧表示)
- DNS:Read(レコードの表示)
- DNS:Edit(レコードの作成・更新・削除)
# Save token to config (recommended)
cf auth save <YOUR_API_TOKEN>
# Verify connection
cf auth verify
3. 最初のコマンド
cf zones list
cf dns list example.com
cf dns create example.com -t A -n www -c 192.0.2.1 --proxied
認証
優先順位の高い順に、3 つの方法があります(上位の方法が下位の方法より優先されます)。
1. 設定ファイル(推奨)
cf auth save <token>
# Saves to ~/.cloudflare/config.yaml
設定ファイルの内容:
api_token: your-api-token-here
output_format: table
2. 環境変数
export CLOUDFLARE_API_TOKEN=your-api-token
# OR
export CF_API_TOKEN=your-api-token
3. レガシー API キー
export CLOUDFLARE_API_KEY=your-api-key
export CLOUDFLARE_API_EMAIL=your-email
優先順位:環境変数は設定ファイルの値より優先されます。
必要なトークン権限
| 権限 | スコープ | 必要な用途 |
|---|---|---|
| Zone:Read | すべてのゾーン(推奨) | cf zones list、ゾーン名の解決 |
| DNS:Read | 対象ゾーン | cf dns list、cf dns get、cf dns find |
| DNS:Edit | 対象ゾーン | cf dns create、cf dns update、cf dns delete |
重要:ゾーンスコープのトークン(特定のゾーンに制限されたトークン)では、ゾーンの一覧表示やゾーン名から ID への解決はできません。既知の問題の防止を参照してください。
ゾーン管理
cf zones list # List all zones in account
cf zones get example.com # Get zone details by name
cf zones get 023e105f4ecef8ad9ca31a... # Get zone details by ID
すべてのコマンドで、ゾーン名とゾーン ID のどちらも使用できます。
DNS レコード管理
レコードの一覧表示
cf dns list <zone> # All records
cf dns list <zone> --type A # Filter by type
cf dns list <zone> --type A -t CNAME # Multiple types
cf dns list <zone> --name www # Filter by name
cf dns list <zone> --search "production" # Search in comments/content
cf dns list <zone> -t A -n www # Combined filters
レコードの詳細を取得
cf dns get <zone> <record-id>
レコードの作成
# A record
cf dns create <zone> -t A -n www -c 192.0.2.1
# CNAME with proxy
cf dns create <zone> -t CNAME -n blog -c example.com --proxied
# MX with priority
cf dns create <zone> -t MX -n mail -c mail.example.com --priority 10
# TXT record
cf dns create <zone> -t TXT -n _acme -c "verification-string"
# A record with comment
cf dns create <zone> -t A -n api -c 192.0.2.10 --comment "Production API"
作成フラグ:
| フラグ | 短縮形 | 必須 | 用途 |
|---|---|---|---|
--type | -t | はい | レコードの種類(A、AAAA、CNAME、MX、TXT など) |
--name | -n | はい | レコード名(サブドメインまたは @) |
--content | -c | はい | レコード値(IP、ホスト名、テキスト) |
--ttl | いいえ | TTL(秒)(デフォルト:1 = 自動) | |
--proxied | いいえ | Cloudflare CDN 経由でルーティング(ブール値) | |
--priority | いいえ | 優先度(MX、SRV レコード) | |
--comment | いいえ | レコードのコメント/メモ |
レコードの更新
cf dns update <zone> <record-id> --content 192.0.2.2
cf dns update <zone> <record-id> --proxied
cf dns update <zone> <record-id> --proxied=false
cf dns update <zone> <record-id> --comment "Updated comment"
cf dns update <zone> <record-id> --comment "" # Clear comment
cf dns update <zone> <record-id> -t A -n newname -c 192.0.2.3 # Multiple fields
更新では作成と同じフラグを使用できます。指定したフラグのみが変更されます。
レコードの削除
cf dns delete <zone> <record-id>
レコードの検索
cf dns find <zone> --name www --type A
cf dns find <zone> -n api -t A
cf dns find <zone> --type MX
findは一致するレコードを返します。更新または削除の前にレコード ID を調べる必要がある場合、スクリプトで便利です。
設定
cf config set <key> <value> # Set configuration value
cf config get <key> # Get configuration value
cf config list # List all settings
使用可能なキー:
| キー | 値 | デフォルト | 用途 |
|---|---|---|---|
output_format | table、json | table | デフォルトの出力形式 |
出力形式とスクリプト
cf dns list example.com # Table (default, human-readable)
cf dns list example.com --output json # JSON for automation
cf dns list example.com -o json # Short flag
# Set JSON as default
cf config set output_format json
# Pipe to jq for filtering
cf dns list example.com -o json | jq '.[].name'
# Extract record IDs
cf dns list example.com -o json | jq -r '.[].id'
重要なルール
必ず行うこと
- 初回使用前に認証を確認します:
cf auth verify - スクリプトや jq へのパイプには
--output jsonを使用します - ゾーンスコープのトークンではゾーン名ではなくゾーン ID を使用します
- ドキュメント化のため、レコードに
--commentを追加します - 本番環境に適用する前に、ステージングゾーンで DNS の変更をテストします
絶対に行わないこと
cf zones listでゾーンスコープのトークンを使用します(権限エラーで失敗します)- API トークンをシェルの履歴に保存します。代わりに
cf auth saveを使用してください - レコード ID を最初に確認せずにレコードを削除します(
cf dns findまたはcf dns getを使用します) --proxiedがすべてのレコードタイプで安全だと想定します(A、AAAA、CNAME でのみ機能します)
コマンド名の訂正
Claude の cf CLI に関する学習データは限られています(2024 年 12 月リリース)。よくあるハルシネーション:
- バイナリ名は
cfであり、cloudflareやcloudflare-cliではありません cf zones listであり、cf zone listではありません(「zones」は複数形です)cf dns createであり、cf dns addではありませんcf dns deleteであり、cf dns removeではありませんcf auth save <token>であり、cf auth loginやcf loginではありません--output json/-o jsonであり、--format jsonや--jsonではありません- ゾーンは位置引数です:
cf dns list example.comであり、cf dns list --zone example.comではありません
訂正パターンの全一覧は、references/correction-rules.mdを参照してください。
既知の問題の防止
このスキルは、文書化された3件の問題を防止します。
Issue #1: ゾーンスコープのトークンによる権限エラー
エラー: cf zones list の実行時、またはゾーン名の解決時に権限エラーが発生します
原因: 特定のゾーンに制限された API トークンでは、すべてのゾーンを一覧表示したり、名前を ID に解決したりできません
対処法: 「すべてのゾーン」の読み取り権限を付与するか、ゾーン ID を直接使用してください:
# Instead of zone name (fails with scoped token):
cf dns list example.com
# Use zone ID (always works):
cf dns list 023e105f4ecef8ad9ca31a8b...
Issue #2: Windows で設定ファイルが見つからない
エラー: 設定ファイルが見つからない、または認証情報が保存されません
原因: Windows に ~/.cloudflare/ ディレクトリが存在しません
対処法: 認証情報を保存する前に、ディレクトリが存在することを確認してください:
mkdir -p ~/.cloudflare
cf auth save <token>
Windows での設定ファイルの場所:%USERPROFILE%\.cloudflare\config.yaml
Issue #3: インストール後に「cf: command not found」と表示される
エラー: インストールスクリプトの実行後に cf: command not found と表示されます
原因: バイナリが PATH にないか、想定外の場所にインストールされています
対処法: インストール先を確認し、PATH に追加してください:
# Check if binary exists
which cf || ls /usr/local/bin/cf || ls ~/bin/cf
# User install adds to ~/bin — ensure it's on PATH
export PATH="$HOME/bin:$PATH"
セルフアップデート
cf update # Download and install latest version
cf version # Show current version
グローバルフラグのリファレンス
| フラグ | 短縮形 | 用途 |
|---|---|---|
--config | 設定ファイルのパス(デフォルト:~/.cloudflare/config.yaml) | |
--output | -o | 出力形式:table(デフォルト)または json |