Skip to content

Instantly share code, notes, and snippets.

View ntcho's full-sized avatar
🚀
Ready

Nathan Cho ntcho

🚀
Ready
View GitHub Profile

Fix for using Gemini in screenpipe

The issue stems from the underlying coding agent Pi not properly supporting Gemini API endpoint with OpenAI compatibility. You'll see 400 errors with no details.

1. Setup Gemini in screenpipe

  1. Create new AI preset (Settings > AI > Create Preset)
  2. Click 'Custom'
  3. Add https://generativelanguage.googleapis.com/v1beta/openai for the 'Custom URL'
  4. Add your API key and choose your model
/*
/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.css
1. Append the following to the file
2. Restart VS Code (ignore the integrity warning)
From: https://github.com/microsoft/vscode/issues/519#issuecomment-3691806331
*/
#workbench\.view\.explorer *[role="treeitem"] {
@ntcho
ntcho / README.md
Last active March 9, 2026 18:06
Gemini Title Updater

Gemini Title Updater

A userscript that dynamically updates the browser tab and window title to match the active conversation in Google Gemini.

By default, the Gemini web interface does not consistently reflect the specific conversation name in the document title. This script continuously monitors the DOM for the .gds-title-m element and updates the page title to the format: [Conversation Title] | Gemini.

Use Cases

  • Identifiable Tabs: Easily distinguish between multiple active Gemini conversations in your browser.
  • Productivity Tracking: Enables time-tracking and productivity logging tools that rely on window titles (such as Chronoid, ActivityWatch, or RescueTime) to accurately categorize and record the specific tasks you are working on.
@ntcho
ntcho / README.md
Last active May 13, 2026 21:30
Gemini Non-Pro Model Alert

Gemini Non-Pro Model Alert

A userscript designed to provide a visual cue when the active Google Gemini model is not set to "Pro".

The script continuously monitors the .model-picker-container element on the Gemini web interface. If the selected model text deviates from "Pro", it dynamically injects an orange outline directly into the model picker button. This is useful for users who want to ensure they are always interacting with a specific model tier before submitting a prompt.

How it works

  • Target Element: Monitors .model-picker-container using a MutationObserver.
  • Condition: Checks if the innerText of the container does not equal "Pro".
@ntcho
ntcho / README.md
Last active April 20, 2026 14:13
Mailchimp Marketing Webhook Reference

Mailchimp webhooks send form-encoded POST data (not JSON) with specific structure. Understanding payload formats is critical for parsing and processing events correctly.

Payload Format Overview

Content-Type: application/x-www-form-urlencoded

Structure:

@ntcho
ntcho / google-account-switcher.userscript.js
Last active April 20, 2026 14:17
Google Account Switcher Userscript
// ==UserScript==
// @name Google Account Switcher
// @namespace http://tampermonkey.net/
// @version 1.1.0
// @updateURL https://gist.githubusercontent.com/ntcho/69f66df3b4864de38bea5b512ede74fd/raw/google-account-switcher.userscript.js
// @downloadURL https://gist.githubusercontent.com/ntcho/69f66df3b4864de38bea5b512ede74fd/raw/google-account-switcher.userscript.js
// @description Switch Google accounts using Option + ` and Option + 1-9 on macOS.
// @author ntcho
// @match *://*.google.com/*
// @grant none