HPI
PythonHuman Programming Interface. Provides a way to unify, access and interact with all my personal data, as a python
package. Currently in-use modules
browserexport
Pythonbackup and parse browser history databases. I use this to backup my browser histories so that I never lose any of it
google_takeout_parser
PythonParses data out of your Google Takeout (History, Activity, Youtube, Locations, etc...)
dotfiles
Shellcross-platform (arch/macos/android) dotfiles and scripts, using yadm
. Includes lots of my scripts, and my configuration files for everything
mpv-sockets
ShellA collection of bash scripts to allow easier and programmatic interaction with mpv
sockets
sqlite_backup
Pythona tool to snapshot sqlite
databases you don't own
traktexport
PythonExport your movie/tv show ratings and history from trakt.tv
exobrain
Shell/GoSomething like public wiki to store notes, ideas, blog posts, art, anything else I want to
HPI_API
PythonAn automatic JSON API for HPI. Dynamically generates HTTP endpoints for each function in an HPI module
yadm-git.vim
Vim scriptIntegrates yadm
with vim-fugitive
and vim-gitgutter
, so you can manage your dotfiles without leaving vim
autotui
Pythoninteractively prompt, validate, and persist python objects to disk (JSON
/YAML
) and back using type hints
bgproc
Shellbash
loop to run tasks in the background. used as an anacron
alternative. Uses evry
to schedule tasks
pushshift_comment_export
PythonExports all accessible reddit comments for an account using pushshift
mpv-history-daemon
PythonDaemon which connects to active mpv
instances created by mpv-sockets
, saving a history of what I watch/listen to
url_cache
PythonA file system cache which saves URL metadata and summarizes content. For any URL, acts as an abstraction layer for fetching youtube subtitles, a summary of the HTML, opengraph information and links to any images and videos
An interactive terminal playlist manager; stores playlists as text files. Seems that most people tend to use spotify/apple music nowadays, but I still like having music locally. This lets me manage playlists locally without having to use one of the bulky GUI applications
ttally
Pythonan interactive TUI to save things (calorie counter, events) I do often to JSON/YAML. Uses autotui
internally to generate a bunch of aliases from types, letting me save/query recently logged events
albums
PythonA collection of CSV
files containing popular/acclaimed albums, used to make a giant list of albums to listen to. This maintains a google sheet which I use instead of RateYourMusic
oh-my-stars
PythonAn offline CLI tool to search your GitHub Stars - A fork to add some features I wanted
discord_data
PythonLibrary to parse messages/activity from the discord data export
ttt
GoLogs metadata for shell scripts/invocations; an extension to my shell history
evry
RustA shell-script-centric task scheduler; uses exit codes to determine control flow
newest
GoBasic CLI tool to print the most recently modified file in a directory; I use this a lot in small scripts/key bindings
discord-countdown-bot
PythonDiscord bot to use for countdowns. Used as a syncplay
alternative
Utility to wait till you have an internet connection. I use this often when changing networks/waiting to connect to my hotspot, and at the top of shell scripts that run in the background, so they don't fail due to network failure
pythonanywhere-3-months
Pythonclicks the 'Run until 3 months from today' button on pythonanywhere, so your website doesn't deactivate automatically
Generate a unique-enough fingerprint for my current machine, to make it easier to pick different commands/scripts to run on mac, different flavors or linux, or windows
pura-utils
Shellan installer for useful scripts scripts extracted from my dotfiles
projects
TypeScriptproject for describing my other projects -- the website you're currently looking at!
bookmark.txt
ShellA thin wrapper around todo.txt to keep track of my bookmarks
lolexport
PythonExports League of Legends Match History metadata using the RiotGames API. I don’t play league of legends that often anymore, this is to export my entire match history so I can do some analysis as part of HPI
mal-notify-bot
Pythondiscord bot that checks the MAL "Just Added" page, reporting newly approved entries
glue
Elixir/TypeScriptMy personal website. Has a GUI interface modeled after old Atari/Compaq machines
currently_listening
Go/Pythonpersonal websocket-based currently playing web server. syncs my live mpv
and scrobbler activity to a websocket which is consumed by my website/discord presence rpc
clone-repos
Pythona basic git
repo clone script with pip
/editable install support
pmark
PerlA hacky, markdown pre-processor. Uses code blocks to generate markdown, from within the markdown itself
overrustle_parser
Pythonextract my messages from the overrustlelogs archive (twitch chat logs)
list_gh_contributions
PythonScript to list all of the repositories you've contributed to on Github. Includes your own repositories and any repositories you've contributed to (a commit, PR or issue)
havecmd
ShellA template for bash
scripts, to provide a nicer interface to check for the presence of external commands on the users $PATH
greasyfork_archive
PythonScrape data and archive scripts from a users Greasyfork account
Pipe to test if files exist. Got tired of doing the unreadable: xargs -I {} sh -c "[ -e \"{}\" ] && echo \"{}\""
when doing shell one-liners, so this simplifies that
cookiecutter-template
Pythoncookiecutter template for a strongly typed python
package w/ click
, pytest
, mypy
, flake8
and CI using github actions
vps
ShellScripts used for installing/managing/restarting/monitoring processes on my server. Wraps supervisor
to handle process crashes. Has other misc scripts (mediaproxy
/remsync
) that provide FTP/proxy like functionality
serves text files from directory by matching subpaths. I use this to host my dotfiles; see index. It allows me to quickly send someone one of my scripts/configuration files from my dotfiles using this script
rifleman
PythonAn extendible dispatcher to lint/format code, based on rifle. This lets you run one command over lots of files/directories which could be in different languages - it classifies them by inspecting the mime type, extension, name or shebang, and then runs a formatter on those files
malexport
Pythonbacks up info from your MAL account - forum posts, lists (including rewatch info), and episode/chapter dates for each entry
dbsentinel
Pythonlists/archives denied/deleted/unapproved MAL entries
animeshorts
Pythonstatic site for my favorite anime short films
tree-sitter-rifleconfig
JavaScriptrifle
(ranger
filemanager file opener) grammar for tree-sitter
steamscraper
PythonScrapes personal game/achievement data from streams website
server_clipboard
Go/TypeScriptA server which saves my clipboard in memory, so I can share it between my devices
pyfzf
PythonAn python wrapper for fzf
(forked to support iterators/decorators/types)
frinkconv
ShellA wrapper script for interacting with the Frink language, with a focus on converting units
cube-scramble-cli
PythonA CLI for pyTwistyScrambler
, to generate random states for twisty puzzles
bleanser
Pythonmy bleanser modules -- removes duplicate/'useless' backed up data, see karlicoss blog post
window_watcher
PythonCross-platform window watcher (forked from ActivityWatch to log to a file instead). Daemon which periodically saves the window I'm currently using
xkcd-favorites
HTMLA list of my favorite xkcd's. Converts a list of my favorite IDs to a static website using a bash script
shortcuts
PythonConverts a TOML
file into individual shell scripts. Used to create lots of one-liner shell scripts
mnu_gsheets
PythonIndexes existing Minna no Uta entries every few days, adding new ones that don't exist to a spreadsheet
fzfcache
GoA small cache for unique lines of text, used to speedup the load time of expensive fzf
invocations
filmswap
Pythondiscord bot to facilitate anonymous film recommendation gift exchanges
calc_ans
OCamlA CLI REPL calculator which remembers your last answer, optimized for my use on termux
bootstrap
ShellA script to setup a new bash
VPS/servers with defaults I like. This is the first things I do whenever I setup a new server, so I have all my vi
bindings and aliases
spkglist
GoA simple package list parser. Used to clean up comments/newlines/spaces from a list of packages when installing packages in shell scripts
sakugabooru-episode-mad
PythonDownloads all sakugabooru posts for a particular tag, and optionally lets you combine them into Source(episode)-based videos using ffmpeg
listenbrainz_export
PythonExport your scrobbling history from ListenBrainz
largechar
JavaScriptDisplays large characters on your screen. Was a replacement for this Alfred feature, and an excuse to try some electron programming
grouvee_export
Pythona (partial) grouvee (a video game database website) data exporter
git_doc_history
Pythoncopy/track file history in git
, with python
bindings to traverse and extract files/lines at some date
scramble-history
Pythonparses your rubiks cube solve history from cstimer.net, cubers.io, twistytimer, and merges them together giving you uniform averages/data and graphs
plaintext_playlist_py
Pythonlibrary to parse plaintext playlist files, and other misc personal ID3 scripts
file based single-binary URL shortener server. Has no dependencies; doesn’t require you to setup a database
cstimer-save-server
Go/JavaScripta userscript/local server which saves my data from cstimer whenever I open cstimer in my browser
wca_userinfo
Rusttiny webserver that scrapes information for a user from worldcubeassociation.org
offline_listens
Pythoninteractive script to save an offline (music) listening history
Solutions to Project Euler, using distinct languages
full_todotxt
Pythona todotxt
interactive interface that forces you to specify certain attributes. I use this with todotxt_deadline_notify
to send me reminders about todos
A dark-themed HTTP
error page generator. Implements a basic template language, to allow interpolation based on HTTP status codes. Is so that I'm not blinded by the default nginx
error pages
MALUserVsAverage
Pythongenerate a graph that shows correlation between a users and average score on MAL