INI editor
Check an INI file against the dialect you choose and apply section and key edits without disturbing the rest of the file. Comments, spacing and line endings you did not edit stay exactly as they were.
Up to 200,000 characters, 5,000 lines and 100 edits. Everything runs on your device in a background worker. Downloads: the edited .ini file and a JSON report with findings and effective keys. Paste the whole file. Sections, comments and blank lines are kept as they are. Up to 200,000 characters. Review the settings before running.
Your result
How to use INI editor
- Paste the INI file.
- Choose the dialect: comment characters, delimiter, repeated keys and case rules.
- Add edits such as set [server] port = 9090, one per line.
- Run the check and review the findings.
- Download the edited file and the JSON report.
Useful next steps
Why the dialect matters
INI has no single standard. Windows, Python configparser, Git and PHP read the same text differently, especially repeated keys, inline comments and indented lines. Happytails.ai makes each of these choices explicit so the findings and the edited file match the program that reads your file.
How editing keeps the file intact
The file is read line by line into a lossless structure that keeps every byte. An edit replaces only the value part of one line, or adds or removes whole lines. When you set a key that has no value and nothing follows its delimiter, the spacing before the delimiter is added after it too, so k = becomes k = 5; if an inline comment follows the empty value, the new value gets the same spacing before the comment, so the comment stays a comment. A new key goes after the last key of its section. It copies the delimiter and the spaces around it from the first key of that section, or from the first key in the file when the section has none; if that key has no value, its spacing before the delimiter is used on both sides. A file with no keys gets key = value. When repeated keys are allowed, set changes the value that wins under your rule.
Limits
Interpolation such as ${section:key} or %(name)s and escape sequences are not interpreted; values are treated as plain text. Values you set must be one line without leading or trailing spaces. Findings refer to line numbers in the original file.