@readwithai - X - blog - machine-aided reading
I like the command line; I like tools written in the “unix philosophy”; I like creating general tools that do part of a task; I like using a computer efficiently.
I prefer to reuse other tools that people have made, here are some tools that I use. Of course, all of this is in the name of my overarching project of making tools for reading, research and agency.
This is a listing of some tools I have written while serving my whimsy and trying to be efficient at using computers.
Some command-line tools I have made
Web tools
clixpath is a command-line tool to extract elements identified by Xpaths in XML and HTML documents.
curlfire allows you to use firefox cookies from the command line. This can be useful to collection information from pages that use cookies - for example together with clixpath.
profile-fox can be used to open new tabs in a particular firefox profile.
brave-bookmarks let’s you access bookmarks from the Brave browser from the command-line.
brave-history let’s you query your history in Brave browser from the command-line
notionshell is a command line that can used to update a notion page.
Code-hosting statistics
I have written various tools to track statistics related to code hosting sites.
gh-views fetches information about the number of pages views and clones for a github repository retaining history information (github only provides a 14 day window.)
gh-star-timeline fetches and maintains a historic timeline of stars on a github repo or all your repositories. I like to use it to see how many new stars I got each day, or where the stars can from.
obsidian-plugin-stats fetches, maintains and queries a timeseries of the number of downloads for an Obsidian plugin.
pypi-stats-timeline fetches, maintains and queries a timeseries of download statistics from the python package index PyPI used by pip.
Shell productivity tools
tmux-result returns the result of the last command by parsing tmux output, if you are using tmux.
zshnip is a zsh snippet framework that I made (and use almost continually) to type less, make fewer mistakes, and be more happy by defining snippets as I go while I use the command line.
kitty-plotnine (k-nine) is a tool to plot directly in terminals which support the kitty Graphics Terminal Protocol such as kitty, wezterm, konsole (or ghostty - which you shouldn’t use) with shell one-liners.
persist-ssh is a wrapper around ssh which uses dtach to persist your ssh connection while retaining your shell scrollback. I use this so that I can run tmux on my machine while sshing into other machines instead of running tmux remotely.
Sysadmin tools
env-subset is a swiss-army knife of running commands with a different set of environments written in response to the limits of the env command-line tool
killable-sudo runs a process with sudo but in such a way that the process can be killed by the user who spawned it, for example by process managers like circus or supervisord. This is particularly useful for automated users using sudo as a form of limited increased privilege.
Home automation
Home automation allow aspects of your physical life to be made easier, more enjoyable and more productive. I therefore use some home automation technologies - mostly for physical buttons and switching devices on and off.
tuya-tiny-web is a tool to control (though not set up) tuya wifi devices locally through a web service. It can be used over unix domain sockets to limit access. For those seeking customized programmatic control, I would recommend buying zigbee devices - but I bought a number of these devices before understand suck nuances.
LLM tools
I was using LLMs slightly before they were massively trendy.
human-tar is a tool to handle a human-readable format inspired by tar which contains multiple files. llm’s can handle these files.
GUI automation
xclip-json displays all of the targets (types of data) on the X11 clipboard in machine-readable JSON. Tools tend to place multiple things on the clipboard and knowing the complete clipboard can be helpful.
clipboard-many-files is a command-line tool to place multiple files on the clipboard on X11 for linux.
x-open-point will open an application provided on the command line at a particular location and size on the screen.
i3wm tools
I used to use the i3 tiling window manager and wrote a few tools for this. I am mostly using KDE at the moment.
JSON tools
json-wmctrl is command-line tool to display information about Linux X windows in a JSON format that can be searched with jq with other programs. It is named after the program wmctrl that performs similarly functionality but in a less machine readable way. It provides an option to cycle windows
json-xwininfo gets information about a window in X11 from the command-line.
json-leaves reads an object in JSON and outputs all of the values within it along with a “path” to the value suitable for grepping. This can then used in jq, Python or JavaScript. This has lots of flags for varying the output
short_schema is a tool to understand the shape of JSON data without having to read it by creating a easily readable schema of the JSON data with the help of GenSON.
If this is the sort of stuff you find interesting. You might like to follow me on github, or on X where I post about such things. You might also like to read the technical miscellany section of my blog.
Also, let me introduce myself - I’m readwithai when not creating productivity tools I’m interested in agency, research and reading and making tools related to this - sometimes using Obsidian. If this is interested in you might like to read my blog.

