Projects

purarue

python
65
hpi
29
cli-tool
23
web
19
bash
18
media
16
golang
16
server
15
api
14
webscraping
12
anime
9
git
8
mpv
7
music
7
database
6
library
6
dotfiles
6
javascript
6
typescript
6
game
6
todotxt
5
caching
5
discord
5
rust
5
tui
4
fzf
4
installer
4
Show More...

HPI

Python

Human Programming Interface. Provides a way to unify, access and interact with all my personal data, as a python package. Currently in-use modules

HPI
hpi, python, cli-tool, todotxt, mpv

backup and parse browser history databases. I use this to backup my browser histories so that I never lose any of it

browserexport
database, hpi, library, python, sql

Parses data out of your Google Takeout (History, Activity, Youtube, Locations, etc...)

google_takeout_parser
caching, hpi, python

cross-platform (arch/macos/android) dotfiles and scripts, using yadm. Includes lots of my scripts, and my configuration files for everything

dotfiles
bash, dotfiles, lua, python, neovim, yadm

A collection of bash scripts to allow easier and programmatic interaction with mpv sockets

mpv-sockets
bash, media, mpv

gitsigns _on_attach_pre hook to show git decorations for files tracked by yadm

gitsigns-yadm.nvim
git, lua, neovim, yadm

a tool to snapshot sqlite databases you don't own

sqlite_backup
cli-tool, database, library, python, sql

Export your movie/tv show ratings and history from trakt.tv

traktexport
api, hpi, media, python

exobrain

Shell/Go

Something like public wiki to store notes, ideas, blog posts, art, anything else I want to

exobrain
bash, golang, wiki, python, javascript, astro, web, typescript

mpvf

Shell

Interface to select a youtube-dl format for streaming video with mpv

mpvf
bash, mpv

HPI_API

Python

An automatic JSON API for HPI. Dynamically generates HTTP endpoints for each function in an HPI module

HPI_API
hpi, python

maintains a cache of database IDs for MAL

checker_mal
anime, api, database, web, webscraping

promnesia

Python

Additional promnesia Sources for my HPI modules

promnesia
hpi, python, web

yadm-git.vim

Vim script

Integrates yadm with vim-fugitive and vim-gitgutter, so you can manage your dotfiles without leaving vim

yadm-git.vim
git, neovim, yadm

autotui

Python

interactively prompt, validate, and persist python objects to disk (JSON/YAML) and back using type hints

autotui
library, python, tui

bgproc

Shell

bash loop to run tasks in the background. used as an anacron alternative. Uses evry to schedule tasks

bgproc
bash, cron, parser-generator

Exports all accessible reddit comments for an account using pushshift

pushshift_comment_export
api, python, reddit

Daemon which connects to active mpv instances created by mpv-sockets, saving a history of what I watch/listen to

mpv-history-daemon
hpi, media, mpv, python, socket

url_cache

Python

A 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

url_cache
caching, python

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

plaintext-playlist
bash, media, mpv, music, playlist

ttally

Python

an 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

ttally
food, fzf, hpi, python, tui

my_feed

Python

a personal media feed using HPI

my_feed
api, caching, hpi, media, python, server, web

albums

Python

A 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

albums
api, google-sheets, media, music, python, sql

An offline CLI tool to search your GitHub Stars - A fork to add some features I wanted

oh-my-stars
database, git, python

Library to parse messages/activity from the discord data export

discord_data
discord, hpi, python

ttt

Go

Logs metadata for shell scripts/invocations; an extension to my shell history

ttt
bash, dotfiles, golang, hpi

evry

Rust

A shell-script-centric task scheduler; uses exit codes to determine control flow

evry
cli-tool, cron, rust

A cookiecutter template for creating a HPI repository

HPI-template
hpi, python, template

Basic CLI tool to print the most recently modified file in a directory; I use this a lot in small scripts/key bindings

newest
cli-tool, golang

Discord bot to use for countdowns. Used as a syncplay alternative

discord-countdown-bot
discord, python, server

Hooks for calcurse (calendar in my terminal), to pull events from Google Calendar and todo.txt

calcurse-load
library, python, todotxt

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

wait-for-internet
cli-tool, rust

clicks the 'Run until 3 months from today' button on pythonanywhere, so your website doesn't deactivate automatically

pythonanywhere-3-months
python, web, webscraping

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

on_machine
bash, cli-tool, golang

an installer for useful scripts scripts extracted from my dotfiles

pura-utils
bash, cli-tool, dotfiles, fzf, git, installer, python

projects

TypeScript

project for describing my other projects -- the website you're currently looking at!

python, react, server, typescript, web

A thin wrapper around todo.txt to keep track of my bookmarks

bookmark.txt
bash, cli-tool, todotxt

lolexport

Python

Exports 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

lolexport
api, game, hpi, python

A small filesystem cache layer for IP geolocation info

ipgeocache
api, caching, hpi

CLI tool that removes whitespace/empty lines from command output

chomp
cli-tool, golang

discord bot that checks the MAL "Just Added" page, reporting newly approved entries

mal-notify-bot
anime, api, database, discord, python, server, webscraping

glue

Elixir/TypeScript

My personal website. Has a GUI interface modeled after old Atari/Compaq machines

glue
elixir, react, server, typescript, web

personal 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

currently_listening
api, discord, golang, media, mpv, music, python, server, socket

a basic git repo clone script with pip/editable install support

clone-repos
cli-tool, dotfiles, git, installer, python

Naive implementation to reorder my easy-install.pth file

reorder_editable
hpi, library, python

pmark

Perl

A hacky, markdown pre-processor. Uses code blocks to generate markdown, from within the markdown itself

pmark
cli-tool, perl

extract my messages from the overrustlelogs archive (twitch chat logs)

hpi, python, twitch

Script 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)

list_gh_contributions
api, git, python

havecmd

Shell

A template for bash scripts, to provide a nicer interface to check for the presence of external commands on the users $PATH

havecmd
bash, template

Scrape data and archive scripts from a users Greasyfork account

greasyfork_archive
python, userscript, webscraping

greasyfork

JavaScript

An archive of my scripts from greasyfork.org

greasyfork
anime, javascript, userscript, web

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

exists
c, cli-tool

cookiecutter template for a strongly typed python package w/ click, pytest, mypy, flake8 and CI using github actions

python, template

parse output of activity watch' window watcher

hpi, python

vps

Shell

Scripts 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

vps
bash, installer, server

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

subpath-serve
golang, server, web

rifleman

Python

An 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

rifleman
cli-tool, format, python

a unobtrusive, scriptable reminder/habit/todo task-runner

reminders, todotxt

malexport

Python

backs up info from your MAL account - forum posts, lists (including rewatch info), and episode/chapter dates for each entry

malexport
anime, api, database, hpi, media, python, webscraping

lists/archives denied/deleted/unapproved MAL entries

dbsentinel
anime, git, python, webscraping

static site for my favorite anime short films

animeshorts
anime, jikan, media, python, server, web

rifle (ranger filemanager file opener) grammar for tree-sitter

tree-sitter-rifleconfig
javascript, lisp, parser-generator, scheme, vim

Scrapes personal game/achievement data from streams website

steamscraper
game, hpi, media, python, webscraping

server_clipboard

Go/TypeScript

A server which saves my clipboard in memory, so I can share it between my devices

server_clipboard
clipboard, golang, react, server, typescript, web

pyfzf

Python

An python wrapper for fzf (forked to support iterators/decorators/types)

pyfzf
fzf, library, python

mapscii-at

JavaScript

a small CLI to pass starting options to mapscii

mapscii-at
cli-tool, javascript

A wrapper script for interacting with the Frink language, with a focus on converting units

frinkconv
bash, cli-tool

A CLI for pyTwistyScrambler, to generate random states for twisty puzzles

cube-scramble-cli
python, rubiks-cube

Export your chess.com/lichess.org games using their APIs

chess_export
api, game, hpi, python

bleanser

Python

my bleanser modules -- removes duplicate/'useless' backed up data, see karlicoss blog post

bleanser
hpi, python

Cross-platform window watcher (forked from ActivityWatch to log to a file instead). Daemon which periodically saves the window I'm currently using

window_watcher
hpi, python

time-in

Python

CLI tool to figure out the time somewhere else

time-in
cli-tool, python

A list of my favorite xkcd's. Converts a list of my favorite IDs to a static website using a bash script

xkcd-favorites
python, server, web

shortcuts

Python

Converts a TOML file into individual shell scripts. Used to create lots of one-liner shell scripts

shortcuts
bash, cli-tool, dotfiles, python

Indexes existing Minna no Uta entries every few days, adding new ones that don't exist to a spreadsheet

mnu_gsheets
anime, api, google-sheets, python, webscraping

A small cache for unique lines of text, used to speedup the load time of expensive fzf invocations

fzfcache
caching, cli-tool, fzf, golang

filmswap

Python

discord bot to facilitate anonymous film recommendation gift exchanges

filmswap
discord, media, python

A CLI REPL calculator which remembers your last answer, optimized for my use on termux

calc_ans
cli-tool, math, ocaml, repl

A 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

bootstrap
bash, server

A small CLI to mark items watched on trakt

trakt-watch
media, python, trakt

A simple package list parser. Used to clean up comments/newlines/spaces from a list of packages when installing packages in shell scripts

spkglist
bash, dotfiles, golang, installer, parser-generator

Downloads all sakugabooru posts for a particular tag, and optionally lets you combine them into Source(episode)-based videos using ffmpeg

sakugabooru-episode-mad
anime, python

mlength

Python

gets the length of media files and caches the result

mlength
cli-tool, media, python

Export your scrobbling history from ListenBrainz

listenbrainz_export
api, hpi, media, music, python

largechar

JavaScript

Displays large characters on your screen. Was a replacement for this Alfred feature, and an excuse to try some electron programming

largechar
gui, web

a (partial) grouvee (a video game database website) data exporter

grouvee_export
game, hpi, media, python, webscraping

copy/track file history in git, with python bindings to traverse and extract files/lines at some date

git_doc_history
bash, git, hpi, python

parses your rubiks cube solve history from cstimer.net, cubers.io, twistytimer, and merges them together giving you uniform averages/data and graphs

scramble-history
graphs, hpi, python, rubiks-cube

library to parse plaintext playlist files, and other misc personal ID3 scripts

plaintext_playlist_py
mpv, music, playlist, python

file based single-binary URL shortener server. Has no dependencies; doesn’t require you to setup a database

no-db-shorturl
golang, server, web

a single page HTML generator for notes/docs/markdown

markdown_stew
golang, markdown, web, cli-tool

HPI-personal

Python/Shell

Personal HPI modules

HPI-personal
hpi, python

A password generator with defaults and some shorthands that I like

genpasswd
c++, cli-tool

cstimer-save-server

Go/JavaScript

a userscript/local server which saves my data from cstimer whenever I open cstimer in my browser

cstimer-save-server
golang, javascript, rubiks-cube, userscript, web

An embeddable back arrow script tag

back-arrow-script
typescript, web

a browser DVD logo animation/game

xqc-dvd
elm, game, server, web

tiny webserver that scrapes information for a user from worldcubeassociation.org

wca_userinfo
rust, webscraping

space

Python

pygame shoot 'em up space game

space
game, python

interactive script to save an offline (music) listening history

offline_listens
hpi, media, music, python

Solutions to Project Euler, using distinct languages

poly-project-euler
awk, bash, bc, c, c++, clojure, coffeescript, commonlisp, crystal, csharp, dart, dlang, elixir, elm, erlang, fsharp, golang, groovy, haskell, java, javascript, julia, kotlin, logo, lua, ml, nim, ocaml, octave, perl, php, prolog, python, racket, ruby, rust, scala, server, smalltalk, typescript

Scrapes and parses data from Piazza

piazza-scraper
hpi, python, webscraping

CLI tool to shuffle a m3u file

m3u-shuf
cli-tool, music, playlist, rust

An interactive terminal interface for pamixer/pactl to control system volume

keyvol
golang, tui

saves a history of your actively focused window to a CSV file

python

a todotxt interactive interface that forces you to specify certain attributes. I use this with todotxt_deadline_notify to send me reminders about todos

full_todotxt
python, tui, todotxt

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

darker_errors
golang, web

generate a graph that shows correlation between a users and average score on MAL

MALUserVsAverage
anime, graphs, python, webscraping