ToolDeck

TOML フォーマッター

TOML 設定ファイルのフォーマットと検証

サンプルを試す

TOML 入力

整形済み TOML

ローカルで実行 · シークレットの貼り付けも安全
整形済み TOML がここに表示されます…
こちらもどうぞ:TOML to JSON 変換

最終更新: 2026年4月

TOML フォーマットとは?

TOML(Tom's Obvious Minimal Language)は、Tom Preston-Werner が 2013 年に作成した設定ファイル形式です。ハッシュテーブルに直接マッピングされ、すべての値に明示的な型付けを使用します。TOML フォーマッターは、生の TOML や書き方が不統一な TOML を受け取り、均一なスペーシング・適切なインデント・正規化されたキーの順序で再シリアライズします。その結果、プロジェクト全体で同じ規約に従ったファイルが生成され、差分でのコンフィグ変更のレビューが容易になります。

2021 年 1 月に確定した TOML v1.0.0 仕様は、準拠するパーサーであれば同じ入力から同一のデータ構造を生成できるほど厳格な文法を定義しています。フォーマットは TOML ファイルのセマンティックな内容を変えません。変わるのは空白・キーのグルーピング・クォートスタイルのみです。つまり、アプリケーションの動作が壊れる心配をせずに TOML ファイルを自由にフォーマットできます。

JSON とは異なり、TOML はコメント・ネイティブの日付と時刻の型・複数の文字列形式(基本文字列・リテラル文字列・複数行文字列)をサポートしています。優れたフォーマッターはコメントを保持し、インラインテーブルと標準テーブルヘッダーの区別を尊重します。また、テーブルの配列も正しく処理し、セクションのグルーピングを維持することで、人間にとっても TOML を読み込むパーサーにとっても読みやすいファイルを保ちます。

Before · toml
After · toml
title="My App"
version="1.0.0"
debug=false
[database]
host="localhost"
port=5432
name="mydb"
[database.pool]
max_connections=25
timeout=30
[[servers]]
name="web"
host="web.example.com"
[[servers]]
name="api"
host="api.example.com"
title = "My App"
version = "1.0.0"
debug = false

[database]
host = "localhost"
port = 5432
name = "mydb"

[database.pool]
max_connections = 25
timeout = 30

[[servers]]
name = "web"
host = "web.example.com"

[[servers]]
name = "api"
host = "api.example.com"

TOML フォーマッターを使う理由

設定ファイルは、チームメンバーが長期間にわたって編集するにつれてスタイルの乱れが蓄積します。タブとスペースが混在し、一部のキーが不必要にクォートされ、テーブルセクションの視覚的なグルーピングが失われていきます。TOML フォーマッターはこれらをすべて一括で正規化します。

即時フォーマット
未整形の TOML を貼り付けると、クリーンで一貫したスタイルの出力がすぐに得られます。CLI のインストールも、プロジェクトの設定も、ビルドステップの待機も不要です。
🔒
プライバシー優先の処理
すべての解析とフォーマットはブラウザ内で実行されます。認証情報や内部ホスト名を含む設定データが、マシンの外に出ることはありません。
検証も同時に実行
フォーマッターは再シリアライズの前に TOML を解析します。入力に構文エラーがある場合、問題のある行を示す明確なエラーメッセージが表示されます。フォーマットが検証も兼ねています。
📋
アカウント不要
ページを開いてすぐにフォーマットを開始できます。サインアップも、レート制限も、利用状況のトラッキングも一切ありません。毎回まったく同じように動作します。

TOML フォーマッターの使用例

フロントエンド開発
Cloudflare Workers プロジェクトの wrangler.toml や Deno ベースのフロントエンドの deno.toml をフォーマットします。プルリクエストでデプロイ設定をレビューする際、整形されたファイルは差分を読みやすくします。
バックエンドエンジニアリング
複数の Rust マイクロサービスにまたがる Cargo.toml ファイルを統一します。一貫したフォーマットにより、リポジトリ間の依存バージョンとフィーチャーフラグをひと目で確認できます。
DevOps と CI/CD
.goreleaser.toml・netlify.toml・Starship プロンプト設定などのファイルをコミット前にフォーマットします。CI パイプラインにフォーマットチェックを追加してスタイルの一貫性を強制できます。
QA とテスト
テストフィクスチャをすぐに読みやすく差分確認しやすい形にフォーマットします。設定の差異でテストが失敗した場合、整形されたファイルにより実際の値と期待値の比較が明確になります。
データエンジニアリング
データ収集パイプラインを定義する Telegraf や InfluxDB の設定をフォーマットします。これらのファイルは数百行に及ぶことが多く、一貫したフォーマットによって保守性を維持できます。
TOML 構文の学習
ドキュメントやチュートリアルのサンプルを貼り付けて、フォーマッターがどのように正規化するかを確認できます。ブラケットスタイル・クォートルール・テーブルのグルーピングの正規形を素早く学ぶ方法です。

TOML 構文リファレンス

TOML は少数の構造要素で構成されています。以下の表は TOML v1.0.0 仕様で定義されているすべての構造要素を示しています。フォーマッターはこれらすべてに対して一貫したスペーシングとグルーピングを適用します。

構文名前備考
key = "value"Basic key-value pairKeys are bare or quoted; values are typed
[table]Standard tableCreates a named section (hash table)
[a.b.c]Dotted tableShorthand for nested tables
[[array]]Array of tablesEach [[name]] block appends to an array
key = """...\n"""Multi-line basic stringAllows newlines, escapes processed
key = '''...\n'''Multi-line literal stringAllows newlines, no escape processing
# commentCommentExtends to end of line; not in JSON output
{inline = true}Inline tableSingle-line table, no newlines allowed

TOML vs JSON vs YAML

TOML・JSON・YAML はいずれも重複する問題を解決しますが、それぞれ異なるトレードオフを持っています。

機能TOMLJSONYAML
コメント# 行コメント非対応# 行コメント
型付き値文字列・整数・浮動小数点・真偽値・日時文字列・数値・真偽値・null推論(エラーが起きやすい)
ネスト[table] ヘッダー波括弧インデントベース
仕様の厳格さ厳格(解析結果は一意)厳格(RFC 8259)緩やか(複数の有効な解析が存在)
日付・時刻のサポート4 種類のネイティブ型なし(文字列で代替)暗黙的(不安定)
末尾カンマ不可不可N/A(カンマなし)

コード例

以下の例は、各言語とツールで TOML をプログラム的にフォーマットする方法を示しています。それぞれファイルを読み込み、解析し、整形されたバージョンを出力します。

JavaScript (Node.js)
import { parse, stringify } from '@iarna/toml'
import fs from 'fs'

const raw = fs.readFileSync('config.toml', 'utf-8')
const doc = parse(raw)
const formatted = stringify(doc)
// stringify() outputs canonical TOML with consistent spacing
fs.writeFileSync('config.toml', formatted)

// Quick one-liner with npx:
// npx taplo fmt config.toml
Python
import tomllib   # Python 3.11+ (read-only)
import tomli_w   # pip install tomli-w (write)

# Parse and re-serialize to format
with open("config.toml", "rb") as f:
    data = tomllib.load(f)

formatted = tomli_w.dumps(data)
# tomli_w produces sorted keys, consistent quoting, and
# proper whitespace around = signs
print(formatted)

# CLI alternative: taplo fmt config.toml
Go
package main

import (
    "fmt"
    "os"
    "github.com/BurntSushi/toml"
    "bytes"
)

func main() {
    var data map[string]interface{}
    _, err := toml.DecodeFile("config.toml", &data)
    if err != nil {
        fmt.Fprintln(os.Stderr, err) // parse error with line number
        os.Exit(1)
    }
    var buf bytes.Buffer
    enc := toml.NewEncoder(&buf)
    enc.Indent = "  "
    enc.Encode(data) // re-serialized with consistent formatting
    fmt.Print(buf.String())
}
CLI (taplo)
# Install taplo — the standard TOML toolkit
cargo install taplo-cli
# or: npm install -g @taplo/cli

# Format a single file in place
taplo fmt config.toml

# Format all .toml files in a project
taplo fmt

# Check formatting without modifying (CI-friendly)
taplo fmt --check

# Validate TOML syntax without formatting
taplo lint config.toml

よくある質問

TOML フォーマッターは何をしますか?
TOML フォーマッターはファイルをデータ構造に解析し、一貫した空白・キーの順序・クォートスタイルで再シリアライズします。セマンティックな内容は変わりません。変化するのは見た目のみです。等号の周りのスペース・テーブルセクション間の空行・ネストされた値のインデントなどが正規化されます。
TOML のフォーマットは本番の設定ファイルに対して安全ですか?
はい。フォーマットが変えるのは空白と見た目の細部のみです。フォーマット前後の解析済みデータ構造は同一です。フォーマッターが無効な入力を受け取った場合は、壊れた出力を生成するのではなくエラーを報告します。両方のバージョンを解析して結果のオブジェクトを比較することで確認できます。
TOML と JSON はどう違いますか?
TOML はコメント・ネイティブの日付と時刻の型・複数行文字列・ネストデータを整理するためのテーブルヘッダーをサポートしています。JSON にはこれらがありません。この形式は人間が読み書きする設定ファイルのために設計されています。JSON はプログラム間のデータ交換のために設計されています。JSON ではコメントを使用できないため、設定の判断をインラインで文書化することが難しくなります。
コマンドラインから TOML をフォーマットできますか?
はい。Taplo が最も広く使われている TOML フォーマッター CLI です。cargo install taplo-cli または npm install -g @taplo/cli でインストールし、taplo fmt を実行するとプロジェクト内のすべての .toml ファイルをフォーマットできます。taplo.toml または .taplo.toml ファイルによるカスタムルールの設定もサポートしています。
フォーマット時に TOML ファイルのコメントは保持されますか?
このブラウザベースのフォーマッターは入力をデータ構造に解析してから再シリアライズするため、コメントは削除されます。コメントを保持する必要がある場合は、解析済みデータではなく具体的な構文木(CST)を操作する Taplo(CLI)または toml-edit(Rust ライブラリ)を使用してください。
TOML フォーマットと TOML 検証の違いは何ですか?
検証はファイルが仕様に準拠しているかを確認し、準拠していない場合はエラーを報告します。フォーマットはさらに一歩進んで、入力を検証してから正規化されたスタイルで書き直します。フォーマット操作はその最初のステップとして検証を含むため、正常にフォーマットされたファイルは必ず有効であることが保証されます。
TOML を設定形式として採用しているプロジェクトはどれですか?
Rust の Cargo(Cargo.toml)・Python のパッケージングエコシステム(pyproject.toml)・Hugo 静的サイト・Deno(deno.toml)・Cloudflare Workers(wrangler.toml)・InfluxDB・Telegraf・Starship プロンプトがいずれも TOML を採用しています。この形式は 2015 年に Rust がパッケージマニフェストの標準として採用したことで広く普及しました。