10 releases (6 stable)

1.3.2 Aug 30, 2025
1.3.1 Aug 5, 2023
1.3.0 Jan 2, 2022
1.2.0 Aug 26, 2021
0.9.12 Mar 17, 2021

#131 in Encoding

Download history 261/week @ 2025-09-11 387/week @ 2025-09-18 228/week @ 2025-09-25 187/week @ 2025-10-02 151/week @ 2025-10-09 116/week @ 2025-10-16 124/week @ 2025-10-23 107/week @ 2025-10-30 202/week @ 2025-11-06 269/week @ 2025-11-13 199/week @ 2025-11-20 155/week @ 2025-11-27 168/week @ 2025-12-04 75/week @ 2025-12-11

283 downloads per month

MIT license

9KB
55 lines

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.

Dependencies

~1.8–3MB
~58K SLoC