toml2json

Crates.iotoml2json
lib.rstoml2json
version1.3.2
created_at2021-03-17 01:50:13.904827+00
updated_at2025-08-30 02:08:07.87827+00
descriptionConvert TOML to JSON
homepagehttps://github.com/woodruffw/toml2json
repository
max_upload_size
id370015
size27,598
William Woodruff (woodruffw)

documentation

README

toml2json

CI Crates.io PyPI - Version

A command-line tool that converts TOML to JSON. Nothing more, nothing less.

Installation

Cargo

cargo install toml2json

PyPI

NOTE: toml2json on PyPI was originally a pure Python CLI; ownership of the name on PyPI was transferred to woodruffw for this Rust-based CLI in August 2025. Versions prior to 0.1.0 on PyPI are the old pure Python version.

uvx toml2json
uv tool install toml2json
pipx install toml2json

# or pip install, if you're in a virtual environment

Homebrew

toml2json is available via Homebrew:

brew install toml2json

Alpine Linux

toml2json is available for Alpine Edge. It can be installed via apk after enabling the testing repository.

apk add toml2json

Arch Linux

If you're using Arch Linux, you can install toml2json using an AUR helper. For example:

paru -S toml2json

Nixpkgs

nix-env --install toml2json

Please let us know if you package toml2json for another package manager or ecosystem!

Usage

Convert TOML on stdin to JSON, filtering it through jq:

$ toml2json <<< 'wow = "amazing"' | jq

Produces:

{
  "wow": "amazing"
}

Convert TOML from a file and pretty-print it without jq:

$ toml2json --pretty ~/.config/kbs2/kbs2.conf

Produces:

{
  "age-backend": "RageLib",
  "error-hook": "~/.config/kbs2/hooks/error-hook-notify",
  "keyfile": "REDACTED-GO-AWAY",
  "public-key": "REDACTED-GO-AWAY",
  "reentrant-hooks": false,
  "store": "~/.kbs2-store",
  "wrapped": true,
  "generators": [
    {
      "alphabet": "abcdefghijklmnopqrstuvwxyz0123456789(){}[]-_+=",
      "length": 16,
      "name": "default"
    }
  ],
  "commands": {
    "edit": {
      "editor": "subl -w",
      "post-hook": "~/.config/kbs2/hooks/push-repo"
    },
    "new": {
      "generate-on-empty": true,
      "post-hook": "~/.config/kbs2/hooks/push-repo"
    },
    "pass": {
      "clear-after": true,
      "clear-hook": "~/.config/kbs2/hooks/pass-clear-notify",
      "clipboard-duration": 10,
      "x11-clipboard": "Clipboard"
    },
    "rm": {
      "post-hook": "~/.config/kbs2/hooks/push-repo"
    }
  }
}

Amazing. What more could you want? Hopefully nothing, because it will never do anything else.

Commit count: 0

cargo fmt