skip to content

root@hashking:~$ cat work.log

the work

a discord bot, a review platform, and the smaller tools that keep everything else running.

flagship

~/gametime

GameTime

esports & sports tracking for Discord

flagship

a Discord bot for esports and traditional sports match tracking — live scores, betting odds aggregated across books, a picks & parlays community with an ROI leaderboard, team tracking with DMs before matches, and daily digests. strict TypeScript on Discord.js v14.

CS2ValorantLeague of LegendsDota 2Rocket LeagueRainbow SixCall of DutyOverwatchNFLNBAWNBANCAAFNCAABMLBNHLSoccer
TypeScript/Discord.js v14/Node.js/Postgres
open product

cannabis tech

~/canopy

Canopy

cultivation compliance & monitoring

active

self-hosted seed-to-sale tracking for cannabis cultivation — a hash-chained, tamper-evident audit trail and per-state compliance rules sourced from real regulation text. runs on a raspberry pi per grow site, with real sensor adapters (cloud, BLE, GPIO/I2C, Modbus) and MQTT chaining up to a master panel for multi-site operators.

Python/FastAPI/React/MQTT/Docker
visit sitelive demosource

~/hashkingreviews

hashkingreviews

cannabis product review platform

active

concentrates, flower, vapes, devices, and legal mushrooms — reviewed with per-category scoring rubrics against a strain genetics database. Discord OAuth for accounts, five custom plugins and a custom theme, no page-builder bloat.

WordPress 6.5/PHP 8.2/MariaDB 11/Caddy 2/Docker
visit site

discord ecosystem

~/statuspresets

StatusPresets

Vencord plugin

active

saves your Discord custom statuses as presets and swaps between them instantly — text, emoji, and clear-after time, applied from a clean native-feeling picker instead of retyping the same status every time.

TypeScript/Vencord API
source

~/premid-betonline

PreMiD — BetOnline

Discord Rich Presence

active

shows your current section, sport, and game in Discord Rich Presence while browsing BetOnline. reads the page URL only — no API calls, no third-party data sources.

TypeScript/PreMiD
source

~/premid-streameast

PreMiD — StreamEast

Discord Rich Presence

active

reads live match details, scores, sport categories, and event status directly from the page and mirrors them into Discord Rich Presence. no API calls, no third-party data sources involved.

TypeScript/PreMiD
source

~/premid-jellyfin

PreMiD — Jellyfin Enhanced

Discord Rich Presence

active

an enhanced Rich Presence for a self-hosted Jellyfin instance — what's actually playing, right in Discord, paired with a custom Jellyfin plugin stack running on the same box.

TypeScript/PreMiD/Jellyfin

osint & self-hosted infra

~/telegram-phone-checker-api

telegram-phone-number-checker-api

self-hosted REST API

active

a self-hosted REST API wrapper around bellingcat's telegram-phone-number-checker, resolving an open upstream issue so the tool can be called over HTTP instead of only from a terminal.

Python/FastAPI/Docker
source

~/auto-archiver-deploy

auto-archiver-one-click-deploy

one-click Render deploy

active

a one-click Render Cron Job deployment of bellingcat's auto-archiver, resolving an upstream deployment-friction issue — no terminal, no YAML editing, just a button.

Shell/Render/Cron
source

~/media-stack

media-stack

self-hosted Jellyfin box

active

a self-hosted Jellyfin media stack with a couple of custom plugins layered in, running quietly on its own hardware next to everything else.

Docker Compose/Jellyfin

~/feed-the-boys

Feed the Boys

friends-only Minecraft stack

active

a Docker Compose, multi-instance Minecraft stack (vanilla + Fabric) served over Tailscale for a small group of friends — no public ports, no whitelist drama.

Docker Compose/Tailscale/Fabric

for the crew

~/baked-odds

Baked Odds

casino & sportsbook, for the crew

active

a play-money casino and sportsbook for friends — Discord login, eleven games (Crash, Blackjack, Dice, Mines, Limbo, HiLo, Keno, Plinko, Wheel, Video Poker, War) plus straight and parlay sportsbook betting. every round is provably fair — a seed hash is shown before you play, the seed revealed after.

TypeScript/Node.js/Express/Socket.io/React/Tailwind CSS
visit site

~/terpline

Terpline

web control for a Focus V dab rig

active

control a Focus V dab rig straight from the browser over Web Bluetooth — no native app. accounts, saved dabbing presets, and device control in one place. the BLE protocol isn't public, so this runs on firmware disassembly (Ghidra) and live BLE traffic capture, not an official SDK. still a work in progress.

TypeScript/Next.js/Auth.js/Drizzle ORM/Postgres/Web Bluetooth
visit site

personal AI

~/kaya

Kaya

a local-first personal AI operating system

active

a persistent AI companion built to be an operating system for a life, not a chatbot — durable memory across sessions (working, personal, experience, and semantic layers), a configurable personality system, and a growing set of tool integrations, running entirely on my own infrastructure instead of routing everything through someone else's cloud. still early — the agent/automation layer is next.

Python/FastAPI/PostgreSQL/Redis/Qdrant/Docker
visit site