fragment

Dot notation came from jq, not design

The original CodexCLI was a bash script that read and wrote keys in a single JSON file. To do that, it needed jq. And jq's native path syntax for accessing nested data is dot notation: .server.production.ip.

So when a user typed ccli set server.production.ip 192.168.1.100, the script split the key on dots and built a jq expression. The dot notation was the cheapest possible adapter between user input and jq syntax. I could have used slashes or colons or any other separator, but I would have just translated them to dots inside the script. Skip the translation.

Now it's a CLI + MCP server in TypeScript with file-per-entry storage, and the dot notation stays. Partly muscle memory. Partly because every key in every store I've populated since then uses it. Partly because, looking back, it was the right answer all along, just for a different reason than the one I had.

← Back to Reverie All ideas