Skip to content

Instantly share code, notes, and snippets.

View bonus414's full-sized avatar

Lauren bonus414

View GitHub Profile
@bonus414
bonus414 / README.md
Last active May 23, 2026 21:19
Harness-agnostic secret-file read guard: blocks printing raw fnox.toml / .env contents to stdout. Works as a CLI/git-hook (exit code), a Claude Code PreToolUse hook (JSON), or via plain stdin.

Secret-file read guard (harness-agnostic)

A small shell guard that blocks any command from printing the raw contents of a secret-store file (fnox.toml or any *.env) to stdout. Agent transcripts and shell histories persist, so even an age-encrypted fnox.toml should never be echoed.

It catches the file-read vector: cat/grep/sed/awk/head/tail/less/xxd/..., language one-liners like open(".env"), input redirection < .env, and git diff/show/blame/log of the file.

@bonus414
bonus414 / README.md
Created May 11, 2026 13:24
markdown_to_mp3.py — turn a markdown/text file into an mp3 with Kokoro TTS (CPU, local, no subscription)

markdown_to_mp3.py

A tiny script that turns a markdown or text file into an mp3 using Kokoro-82M, a small open-weight TTS model. Runs on CPU, no GPU required.

I built this so I could listen to long articles I'd saved without paying for a TTS subscription. Sharing the core because the rest of my pipeline (Nextcloud upload, fuzzy filename matching, an LLM skill to invoke it) is wired into my own setup — but the part that does the actual work is small and reusable.

Install

pip install kokoro-onnx soundfile numpy
@bonus414
bonus414 / README.md
Created April 23, 2026 01:03
epona — a tiny Telegram bot that bridges forum topics to Claude Code sessions (one sqlite row per topic, no tmux, no drama)

epona

A small Telegram bot that bridges forum topics to Claude Code sessions. Each forum topic in a Telegram group maps to one Claude Code session (a UUID), stored in sqlite. Photo uploads work — Telegram downloads the image, the bot drops the path into the prompt, and Claude's Read tool loads it.

Why this exists: I had a more complicated version of this that glued each Telegram topic to a live tmux window running an interactive Claude session. It broke constantly — three layers of state, all with independent lifetimes. Replaced all of it with one sqlite row per topic. If a session is lost, the next message mints a new one. No processes to babysit.

Setup

  1. Install Claude Code and authenticate for headless use:
@bonus414
bonus414 / README.md
Last active April 30, 2026 21:24
brain-sync: bridge your two Claudes' memory with a Slack channel

brain-sync: bridge your two Claudes' memory with a Slack channel

If you use both Claude Code (terminal, desktop) and claude.ai (web, mobile), you have two Claudes with two separate memory systems. Whatever you teach one, the other doesn't know. Over months the claude.ai side drifts.

This skill fixes that by using a Slack channel as a human-gated bridge. Claude Code drafts a structured memory digest. You approve. It posts. Your claude.ai Claude reads the channel at session start and proposes memory edits on that side. You approve there too.

Two files in this gist:

  • brain-sync.md — the Claude Code skill. Drop it in .claude/skills/ (project-scoped) or ~/.claude/skills/ (global).
  • This README — setup for both sides.
@bonus414
bonus414 / gist-skill-review-prompt.md
Last active April 2, 2026 23:25
Skill quality tracking for Claude Code — hook + weekly review agent

You are running a weekly skill health review.

Step 1: Read usage data

Read skill-usage.jsonl in the repo root. Each line is JSON: {"skill":"name","ts":"ISO8601","cwd":"/path"}. If the file doesn't exist or is empty, note that and skip to Step 3.

Step 2: Analyze usage

  • Count invocations per skill for the past 7 days and all-time
  • Flag skills invoked 0 times in the past 14 days as "stale"
  • Flag skills invoked 10+ times in the past 7 days as "power skills"
@bonus414
bonus414 / gist-session-log-prompt.md
Created March 23, 2026 16:55
Session logs for AI coding sessions — save context between Claude Code, OpenCode, Cursor, or any AI terminal

Session log prompt

Paste this at the end of an AI coding session to generate a narrative summary of what happened.

Works in Claude Code, OpenCode, Cursor, Windsurf, or any AI coding terminal that can write files.


Review this entire session and write a narrative summary of what happened.