Port: A TUI + CLI for Managing Open Network Ports on Linux

You run a server, the terminal crashes, and suddenly localhost:3000 is still occupied. You have no idea which process owns it. Sound familiar? Port solves this. Two ways to use it: $ port # TUI mode — interactive table $ port 3000 # CLI mode — kill port 3000 directly $ port --list # List ports as text (scriptable) The Problem It happens all the time. You start a Node.js server, a Python Flask app, or a Rust backend. Then: ...

April 14, 2026 · 4 min read · enrell

Psyche: The Media Server That Keeps Your Data Yours

It was 2 AM. I was digging through my local anime folder trying to figure out why my media server hadn’t picked up a new episode. I opened the SQLite database file out of curiosity — just to see what was in there. I could read it. All of it. Every title. Every rating. Every entry in my watch history. Plain UTF-8 text, sitting unprotected on my disk. I closed the terminal and stared at the ceiling for a while. ...

April 4, 2026 · 12 min read · enrell

I Patched Flashrom on My Phone to Recover a Dead Motherboard

It was a Saturday afternoon. I pressed the power button on my PC and… nothing. Fans spun for a second, LEDs blinked, then dead. Then it tried again. One second, dead. One second, dead. An infinite boot loop with no display output, no beep codes, nothing. What followed was a week-long odyssey of diagnostics, wrong guesses, a new motherboard, a bricked BIOS, and — when every computer in my house was dead — an 11 PM coding session on my phone to patch an open-source tool that was never meant to run on Android. ...

March 30, 2026 · 9 min read · enrell

Building a Crystal MCP for Web Search and Content Extraction

It was 7pm on a Wednesday. I was staring at my terminal, watching OpenCode try to answer a question about a library it had never seen before. The LLM was doing its best. But it was hallucinating API endpoints that didn’t exist. And I thought: “Why can’t my AI just… search the web?” The Problem I use OpenCode, Claude Code and some times Crush as my daily coding companion. It’s powerful. But it has a blind spot: The native web fetch can’t access claudflare protected sites. ...

March 25, 2026 · 6 min read · enrell

I Built a NPM Package for Parsing Anime Filenames — Here's My Story

It was 3 AM on a Tuesday night. I was staring at my anime folder, scrolling through filenames like: [SubsPlease] Spy x Family - 01 (1080p) [A4DAF3D9].mkv [Coalgirls] Clannad (1920x1080 Blu-Ray FLAC) [1234ABCD]/[Coalgirls] Clannad - 01 (1920x1080 Blu-Ray FLAC) [1234ABCD].mkv One Punch Man S02E03 1080p WEBRip x264-PandoR.mkv And I thought to myself: “There has to be a better way.” Sound familiar? If you’ve ever built a media library, you know exactly what I’m talking about. Those messy, inconsistent filenames — they drive me crazy. And the existing parsers? Either too slow, too rigid, or didn’t handle the wild variety of naming conventions we anime fans use. ...

February 21, 2026 · 4 min read · enrell