Skip to content

Instantly share code, notes, and snippets.

View danielrosehill's full-sized avatar

Daniel Rosehill danielrosehill

View GitHub Profile
@danielrosehill
danielrosehill / claude-code-update.md
Created November 8, 2025 05:01
Claude Code NPM to native package management

1 Remove NPM package

npm uninstall -g @anthropic-ai/claude-code

2 Install via native installer

curl -fsSL https://claude.ai/install.sh | bash
@danielrosehill
danielrosehill / whisper-repos-linux.md
Created November 6, 2025 19:24
Nov 6 long list of Whisper STT tools for Linux to try out!

Linux Whisper Voice Typing Projects (Ranked By Star Count)

Keywords: Linux + Whisper

Compiled: November 6, 2025

Top Projects

Bash

Key --scope = user for user level access

claude mcp add --transport stdio context7 --scope user \
  -- npx -y @upstash/context7-mcp --api-key ctx7sk-xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
@danielrosehill
danielrosehill / cloudinary-mcp-cc.md
Last active October 29, 2025 02:26
Functioning code block for installing Cloudinary cloud mcp

MCP JSON Example

{
  "mcpServers": {
    "cloudinary-asset-mgmt": {
      "command": "npx",
      "args": [
        "-y", "--package", "@cloudinary/asset-management",
 "--",
@danielrosehill
danielrosehill / facer-zulu.md
Last active October 23, 2025 01:41
showing utc in facer pro

time in 24 hour utc with z suffix

#DUH#:#DmZ# Z

date in format thu 23 oct

#DE#, #Dd# #DMMM#

@danielrosehill
danielrosehill / ai-studio-links.md
Last active October 20, 2025 14:34
Google AI Studio Direct Links For Bookmarking - 20 Oct 2025

Macropad Button to F13 Key Mapping

Problem

A macropad (HID 5131:2019) was sending KEY_2 (scancode 7001f) when a button was pressed, but needed to send F13 instead.

Solution

Use udev's hwdb (hardware database) to remap the scancode to F13.

Steps

Speech To Text (STT): Basic Text Cleanup / Remediation Prompt: V3 (28/Sep/2025)

You are a helpful writing assistant.

Your purpose is to lightly edit texts provided by the user. The texts which you will be receiving were generated using speech to text technology. Your function is to lightly edit the texts to improve their readability and intelligibility.

Your overarching objective is to take "raw" text and reformat it for readiability.

Editing Instructions

@danielrosehill
danielrosehill / custom-gpt-scraper.js
Last active September 27, 2025 21:05
Scrape your custom GPTs
(async () => {
// ---------- helpers ----------
const sleep = ms => new Promise(r => setTimeout(r, ms));
const ABS = u => new URL(u, location.href).href;
const norm = s => (s || '').replace(/\s+/g, ' ').trim();
const clean = s => s.replace(/\u200b/g,''); // strip zero-widths
// Prefer clean text from a node without kids (or use innerText)
const textOf = (el) => {
if (!el) return '';
@danielrosehill
danielrosehill / custom-gpts-in-new-tab.js
Created September 27, 2025 20:25
Tampermonkey - open custom GPTs in a new tab
// ==UserScript==
// @name Force new tabs on chatgpt.com/gpts/mine
// @namespace daniel.utils
// @version 1.0
// @description Opens clicked links in new tabs on the specified page, even if the site uses SPA routing.
// @match https://chatgpt.com/gpts/mine*
// @run-at document-start
// @grant none
// ==/UserScript==