The problem
AI agents run ls , grep , and cat and get back human-readable plaintext. Then they spend tokens parsing column positions, guessing field widths, and handling inconsistent formats. This is fragile and wasteful.
-rw-r--r-- 1 user staff 2048 Apr 6 10:00 main.go ← which column is size? -rw-r--r-- 1 user staff 1024 Apr 6 10:00 utils.go ← what's the language? drwxr-xr-x 5 user staff 160 Apr 6 10:00 internal ← is this a directory?
The solution
aict reimplements 33 Unix tools with structured output the agent can read directly — no parsing required.
$ aict ls src/ < ls timestamp = " 1746123456 " total_entries = " 3 " > < file name = " main.go " path = " src/main.go " absolute = " /project/src/main.go " size_bytes = " 2048 " size_human = " 2.0K " language = " go " mime = " text/x-go " binary = " false " executable = " false " modified = " 1746120000 " modified_ago_s = " 3456 " /> < file name = " utils.go " path = " src/utils.go " absolute = " /project/src/utils.go " size_bytes = " 1024 " size_human = " 1.0K " language = " go " mime = " text/x-go " binary = " false " executable = " false " modified = " 1746120000 " modified_ago_s = " 3456 " /> < directory name = " internal " path = " src/internal " modified = " 1746120000 " /> </ ls >
Every field is labeled. Paths are always absolute. Timestamps are Unix integers. Language and MIME type are detected automatically — zero parsing needed.
Install
Homebrew (macOS)
brew tap synseqack/aict brew install aict
... continue reading