Skip to content

Instantly share code, notes, and snippets.

View ericboehs's full-sized avatar

Eric Boehs ericboehs

  • Oddball
  • Enid, OK
  • 01:14 (UTC -05:00)
View GitHub Profile
@ericboehs
ericboehs / slack-classifier-bug-report.md
Last active August 9, 2026 13:57
Slack file-type classifier bug: .md files with line-initial record*/program* words misclassified as Pascal; + any non-ASCII char = Binary

Slack file-type classifier bug: .md files misclassified as Pascal / Binary

This file is a self-demonstrating example. Because it contains a line-initial trigger word plus non-ASCII characters (see the demo line at the bottom), dragging this file into any Slack channel uploads it as "Binary file" with no preview. That IS the bug.

Summary

The file-type classifier applied to uploaded files (rolled out ~June 2026)

@ericboehs
ericboehs / kokorod.py
Last active May 27, 2026 20:42
kokorod: single-file persistent daemon + auto-launching client for Kokoro-82M TTS (mlx-audio). Cuts time-to-first-audio from ~5s to ~0.2s; self-shuts down after 30 min idle.
#!/usr/bin/env python3
# /// script
# requires-python = "==3.12.*"
# dependencies = [
# "mlx-audio>=0.3.0",
# "mlx",
# "misaki[en]<0.9",
# "num2words",
# "spacy",
# "espeakng-loader",
@ericboehs
ericboehs / kk
Created May 27, 2026 17:58
kokorod: persistent daemon + auto-launching socket client for Kokoro-82M TTS (mlx-audio). Cuts time-to-first-audio from ~5s to ~0.2s; self-shuts down after 30 min idle.
#!/usr/bin/env bash
# kk — thin client for the kokorod daemon, with auto-launch.
#
# Sends a speak request over /tmp/kokoro.sock. If the daemon isn't
# running, launches it in the background and waits for the socket to
# come up before sending.
#
# Usage:
# kk "Hello, world."
# echo "text" | kk
@ericboehs
ericboehs / bonusly
Created April 27, 2026 16:28
bonusly — send/check Bonusly bonuses from the terminal (with prefix-matched core-value hashtags)
#!/bin/bash
# Bonusly CLI — send/check Bonusly bonuses from the terminal.
#
# Usage:
# bonusly balance # show giving balance
# bonusly users [query] # search/list users
# bonusly send <amount> <user> <message> [#tag] # send bonus (confirms)
# bonusly history [limit] # recent bonuses you received
#
# Token: read from $BONUSLY_API_TOKEN; falls back to `fnox get BONUSLY_API_TOKEN`.
@ericboehs
ericboehs / vtt-to-md
Created April 25, 2026 02:10
vtt-to-md: Convert WebVTT transcripts to anchored markdown with audio-fragment-linked timestamps
#!/usr/bin/env ruby
# Convert WebVTT to anchored markdown with HH:MM:SS audio-fragment links.
require 'optparse'
VERSION = '0.1.0'
options = { audio: nil, output: nil, title: nil, no_audio: false }
parser = OptionParser.new do |opts|
@ericboehs
ericboehs / claude-browser
Last active July 15, 2026 00:56
Claude Browser — single-file Ruby Sinatra app to browse, search, and view Claude Code context surfaces: auto-memory markdown under ~/.claude/projects/*/memory/ and skills under ~/.claude/skills/, with always-loaded token cost estimates
#!/usr/bin/env ruby
# frozen_string_literal: true
# Claude Browser — browse, search, and view Claude Code context surfaces:
# the auto-memory markdown files under ~/.claude/projects/*/memory/ and the
# user skills under ~/.claude/skills/*/SKILL.md
require 'bundler/inline'
gemfile do
@ericboehs
ericboehs / gh-action-trace
Last active March 25, 2026 18:42
gh-action-trace — Find all direct and transitive uses of GitHub Actions in an org. Traces dependency chains through shared/reusable workflows and reports pinning status (SHA/tag/branch).
#!/usr/bin/env bash
#
# gh-action-trace — Find all direct and transitive uses of GitHub Actions in an org.
#
# Traces the full dependency chain: repos that directly reference target actions,
# repos that call shared/reusable workflows containing those actions, and external
# shared workflows that wrap them. Reports pinning status (SHA/tag/branch) for each.
#
# Requires: gh (GitHub CLI), jq, base64
#
@ericboehs
ericboehs / statusline.sh
Last active June 16, 2026 03:38
Claude Code status line — git status, proxy detection, pace-aware usage tracking, auto-wrapping
#!/bin/bash
input=$(cat)
# --- Cross-platform helpers ---
# macOS uses `stat -f%m`, Linux uses `stat -c %Y` for file mtime (epoch)
if stat -f%m /dev/null >/dev/null 2>&1; then
file_mtime() { stat -f%m "$1"; }
else
file_mtime() { stat -c %Y "$1"; }
fi
@ericboehs
ericboehs / com.boehs.no-show-more.tar.gz
Last active March 17, 2026 02:50
Mattermost plugin to disable Show More/Show Less post truncation
@ericboehs
ericboehs / index.html
Created March 10, 2026 18:02
Zip-first address form — #nobuild single HTML file with auto-fill city/state from postal code, 60+ countries, searchable country picker. Preview: https://gistpreview.github.io/?a93f4f172b0f9e488976c5a6983f2329
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Address Form — Zip First</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css">
<style>
:root {
--pico-font-size: 100%;