Turink Toys
In developmentA collection of tools for repetitive macOS tasks
Features
Turink Toys handles tasks that recur on macOS but cannot be solved with the built-in features alone. The current contents are listed below, and features are added as they become necessary in use.
Compression
When a zip file created on macOS is opened on Windows, Korean (Hangul) file names are garbled. macOS does not set the UTF-8 flag on file names, so Windows reads them using the system code page. Differences in how Hangul syllables are decomposed into jamo and characters that Windows does not allow add to the problem. The sender does not know the archive is garbled until the recipient reports it.
The tool sets the flag, normalizes the file names, replaces characters that Windows cannot create, and then reports what it changed. It also works in reverse, restoring the original names from an archive that has already arrived garbled.
Disk cleanup
Caches left by development tools can take up tens of gigabytes. Deleting them by hand makes it hard to tell what is safe to remove, and commercial cleaning apps touch more locations than necessary.
The tool first shows where and how much has accumulated, and moves what it deletes to the Trash, so a mistaken deletion can be undone. Items that would have to be downloaded again are distinguished from caches and confirmed separately.
Power
The tool keeps the Mac from sleeping when the lid is closed, or keeps the screen on for a set period. These settings cannot be changed directly in macOS Settings, so they have required looking up and memorizing Terminal commands.
Background
These problems are not without solutions. The compression problem can be handled by combining command-line options, and cache paths can be found by searching. However, these tasks are not frequent, so the method has to be looked up again each time, and whether a method found earlier still works on the current version can be confirmed only by running it.
The fact that the operations cannot be undone adds to this. When pasting a command found by search that deletes caches, few people check that the path really is a cache. This is why the tool moves items to the Trash instead of deleting them.
Agent support
Compression and disk cleanup are tasks better delegated than done by hand. The tool is therefore built to be called by AI agents.
For an agent to use a tool, the tool must describe its own capabilities. The list of available operations and the input format of each one are queried directly from the executable. No separate documentation or configuration is needed.
When an operation fails, the tool returns a cause code together with the command to run next. When a choice is needed, it does not ask a person. It returns the candidates and stops, because an agent cannot wait for a response.
Irreversible operations follow a separate procedure. The tool first returns a plan of what will be deleted, and executes it only after the plan has been confirmed. If files change between confirmation and execution, the plan no longer matches, and the tool aborts. A person notices a problem by looking at the screen just before execution, but an agent cannot.
Power settings are the only operation that requires elevated privileges. An agent cannot answer a password prompt, so the tool returns a code indicating that privileges are required instead of treating the case as a failure.
Language
Korean and English are supported. Only text meant for people is translated. Error codes and JSON field names stay in English in every language, because a caller that branches on the code must not be affected by the device's language setting.
Installation
brew install --cask reinlainer/tap/turink-toys
This installs the application and the Terminal command together. If you do not use Homebrew, download the archive from the Releases page.
Status
v0.1.0 · MIT license. The build is not signed with a Developer ID, so updates are made through Homebrew.