INI Viewer
Open an INI file and read it as tidy per-section tables instead of scanning raw text. The viewer groups keys under their [section] headers, treats ; and # lines as comments, trims and unquotes values, and keeps any keys that appear before the first section in a global group. Flip to a nested JSON view to copy the data into another format, or filter to find one setting in a large file. Nothing is uploaded: the file is parsed entirely in your browser, so config and secrets stay on your machine.
How to use the INI Viewer
Paste an INI file into the box or load a .ini, .conf or .cfg file with the picker. The viewer parses it immediately and shows one table per section, with the section name as a heading and a row for every key and value beneath it. A count above the result reports how many sections and keys were found and how many comment lines were skipped. Use the filter box to keep only rows whose key or value contains your text, which makes it easy to locate a single setting inside a long configuration.
Tick Show as JSON to swap the tables for a nested JSON object — each section becomes an object of its keys, and any keys before the first section sit at the top level — ready to paste into a converter or a config loader. Values wrapped in single or double quotes are unquoted, and surrounding whitespace is trimmed, so a value reads the same way the program that loads the file would see it. When a key is defined more than once in the same section, the last value wins, which mirrors how most INI parsers resolve duplicates.
What is an INI file?
An INI file is one of the oldest and most widespread configuration formats: a flat list of key = value pairs, grouped into [sections]. The name comes from the .ini (initialization) files of early Windows, but the shape long outlived its origin. PHP's own php.ini, Git's .gitconfig, Python's setup.cfg and tox.ini, systemd unit files, .editorconfig, MySQL's my.cnf, and countless application configs all use an INI-style syntax. It survives because it is human-readable, trivial to edit by hand, and easy to diff line by line.
The catch is that there is no single INI standard, so the details vary between parsers. Section headers are written in square brackets, and keys that appear before any header belong to an implicit global section. Comments usually begin with a semicolon, the original Windows convention, though a great many tools also accept the hash mark. Keys and values are separated by an equals sign in most dialects, while some also allow a colon. Values may be left bare or wrapped in single or double quotes, which matters when a value has leading spaces or a trailing comment on the same line. Some dialects support nested sections through dotted names like [owner.address], repeated keys that build a list, or line continuations, but none of those are universal.
Because of that variation, the safest way to read an INI file is to look at it the way a parser would: brackets start a section, the first separator splits a key from its value, comment lines drop out, and quotes come off. That is exactly what this viewer does, presenting the result as a table per section so the structure is obvious at a glance. Compared with richer formats, INI is deliberately shallow — it has no real types, only strings, and only one level of grouping in its classic form — which is both its limitation and the reason it stays so easy to read. For configuration that genuinely needs nesting, arrays, or typed values, formats like TOML, which began as a stricter INI, or YAML are a better fit, and this site has viewers for those too.
Common use cases
- Auditing config. Read a
php.ini,my.cnfor app config as clean per-section tables to confirm what a service will load. - Reading a .gitconfig. See your Git settings grouped by section without running a string of
git configcommands. - Converting to JSON. Flip to the nested JSON view to move INI settings into a JSON-based config or a script.
- Private review. Inspect a configuration file that may hold credentials locally, instead of pasting it into an online parser.