Skip to content

Instantly share code, notes, and snippets.

View ericboehs's full-sized avatar

Eric Boehs ericboehs

  • Oddball
  • Enid, OK
  • 23:18 (UTC -05:00)
View GitHub Profile
@ericboehs
ericboehs / README.md
Last active September 30, 2026 20:07
eric-bot avatar for agent-posted Slack messages

eric-bot avatar

Avatar used for messages my agents post to Slack via eert-bot-feed (SLACK_ICON_URL).

@ericboehs
ericboehs / README-PS.md
Created December 16, 2025 00:06
Shai-Hulud PowerShell Detector

Shai-Hulud Detector - PowerShell Edition

A PowerShell-based security scanner that detects indicators of compromise (IOCs) from the Shai-Hulud npm supply chain attacks that occurred in September 2025 and November 2025. This tool specifically targets the "Shai-Hulud: The Second Coming" attack that used fake Bun runtime installations to harvest credentials.

📋 Table of Contents

@ericboehs
ericboehs / cursor-focus.ts
Last active August 21, 2026 12:01
pi extension: hide the prompt cursor when the terminal pane loses focus (tmux focus-events), so it's obvious which split pi you're typing into
// Replace pi's fake reverse-video prompt cursor with the terminal's native
// hardware cursor.
//
// pi already emits CURSOR_MARKER at the correct editor position. Enabling the
// hardware cursor makes pi-tui position the terminal cursor at that marker;
// removing the fake reverse-video block prevents two cursors from overlapping.
// tmux and the terminal then provide their native focus behavior:
//
// - active tmux pane, focused terminal: normal hardware cursor
// - active tmux pane, unfocused terminal: terminal's inactive cursor style
@ericboehs
ericboehs / copilot-window-usage.ts
Last active August 19, 2026 22:58
Compact GitHub Copilot premium quota window status for pi and pi-footer
import type {
ExtensionAPI,
ExtensionContext,
} from "@earendil-works/pi-coding-agent";
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";
const PROVIDER = "github-copilot";
const STATUS_KEY = "copilot-window";
@ericboehs
ericboehs / codex-window-usage.ts
Last active August 19, 2026 22:55
Compact OpenAI Codex quota window status for pi and pi-footer
import type {
ExtensionAPI,
ExtensionContext,
} from "@earendil-works/pi-coding-agent";
const PROVIDER = "openai-codex";
const STATUS_KEY = "codex-window";
const USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
const REQUEST_TIMEOUT_MS = 10_000;
@ericboehs
ericboehs / Claude Artifact Blank Frame Fix.user.js
Last active August 19, 2026 19:50
Fixes Claude artifacts rendering blank in Safari (WebKit flex-basis:0% abspos containing-block bug)
// ==UserScript==
// @name Claude Artifact Blank Frame Fix
// @description Works around a WebKit layout bug that renders Claude artifacts blank in Safari
// @author Eric Boehs
// @version 1.1
// @match https://claude.ai/code/artifact/*
// @match https://claude.ai/public/artifacts/*
// @run-at document-end
// @inject-into content
// @grant none
@ericboehs
ericboehs / claude-jsx-to-html
Created February 23, 2026 16:01
Convert Claude Desktop JSX artifacts into standalone HTML files that run directly in the browser
#!/usr/bin/env bash
# Converts a Claude Desktop JSX artifact into a standalone HTML file
# that runs directly in the browser via CDN-loaded React + Babel.
#
# Usage: claude-jsx-to-html input.jsx [output.html]
# If output is omitted, writes to input.html alongside the .jsx file.
set -euo pipefail
if [[ $# -lt 1 ]]; then
@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 / 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 / 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