| Crates.io | tomli |
| lib.rs | tomli |
| version | 0.4.0 |
| created_at | 2024-09-07 13:15:49.295041+00 |
| updated_at | 2025-09-22 20:18:34.850219+00 |
| description | A simple CLI for quering and editing TOML files |
| homepage | |
| repository | https://github.com/blinxen/tomli |
| max_upload_size | |
| id | 1367192 |
| size | 69,662 |
tomli is a format preserving command-line tool for querying and editing TOML files.
This project is currently under development and the command-line interface can change at any time.
cargo install tomli
wget https://github.com/blinxen/tomli/releases/download/$VERSION/tomli.tar.gz
By default, tomli will read from stdin unless --filepath is specified.
tomli tries to use the same syntax as jq for query expressions.
The following expressions are currently supported:
foo.bar or . (whole document)foo[0] or foo.bar[0][1]Examples:
Get the value of the name key from the package table:
tomli query -f Cargo.toml package.name
Get the first element of the array called bin:
tomli query -f Cargo.toml bin[0]
tomli currently supports the following types when setting a value:
The value type can be specified with the --type argument.
If not type is specified, then str is used.
Examples:
Add a new key to the package table called website:
tomli set -f Cargo.toml package.website https://example.com
Set the name of the first element in the bin array to tumli:
tomli set -f Cargo.toml bin[0].name tumli
Add a new table called website to the first element of the bin array:
tomli set -f Cargo.toml bin[0].website.url https://example.com
Add a new array called websites to the table package:
tomli set -f Cargo.toml package.websites[0] https://example.com
Add a new array called numbers to the table package and specify the type:
tomli set -f Cargo.toml --type int package.numbers[0] 5
Use dotted key notation instead of creating a subtable:
tomli set -f Cargo.toml --dotted-key --type bool package.version.workspace true
Delete name in the table package:
tomli delete -f Cargo.toml package.name
Delete the first element in the array authors:
tomli delete -f Cargo.toml package.authors[0]
The source code is primarily distributed under the terms of the MIT License. See LICENSE for details.