Skip to content

Instantly share code, notes, and snippets.

View johnlindquist's full-sized avatar
💭
Educating 👨🏻‍🏫

John Lindquist johnlindquist

💭
Educating 👨🏻‍🏫
View GitHub Profile
@johnlindquist
johnlindquist / 14-correct-quick-announcement.md
Last active January 22, 2026 00:51
Workflow Custom Serialization: Complete Guide with Real Tests

Twitter Thread: Correct - Quick Announcement (ACCURATE)

Tweet 1 (Hook)

Workflow v4.0.1-beta.49: Custom class serialization.

Pass an Order to start() - arrives as a real Order. Return an Order from a step - workflow receives it with all methods.

Your business logic stays in classes, not scattered across plain objects.

@johnlindquist
johnlindquist / custom-serialization-blogpost.md
Last active January 21, 2026 23:16
Custom Class Serialization in Workflow v4.0.1-beta.49 - Before & After Guide + Real vs Simulated Tests

Custom Class Serialization in Workflow v4.0.1-beta.49

The Problem: Losing Your Domain Logic

Before Workflow v4.0.1-beta.49, building durable functions meant making a painful choice: either flatten your domain objects to plain JSON, or manually reconstruct them in every step.

Before: The Manual Approach ❌

class Order {
@johnlindquist
johnlindquist / macos-key-repeat.md
Created January 20, 2026 06:13
Fast key repeat settings for macOS

Fast Key Repeat Settings for macOS

These settings make keys repeat much faster than the default System Preferences allows.

Current Settings

# Key repeat rate (lower = faster, default is 2)
defaults write NSGlobalDomain KeyRepeat -int 1
@johnlindquist
johnlindquist / bsp-split-standalone.sh
Last active January 13, 2026 17:22
WezTerm + Claude Code: Multi-Session Workflows with BSP Layouts
#!/bin/bash
# BSP Split: Find largest pane IN CURRENT TAB and bisect it
# Get current pane from environment (set by WezTerm for shells running in panes)
if [ -n "$WEZTERM_PANE" ]; then
CURRENT_PANE="$WEZTERM_PANE"
else
# Fallback: use the pane passed as argument
CURRENT_PANE="$1"
fi
@johnlindquist
johnlindquist / wezterm-config-showcase.md
Created January 12, 2026 21:16
WezTerm Power User Config - Features & Highlights

WezTerm Power User Config

A modular WezTerm configuration that combines the best of tmux, Zellij, and iTerm2.

Highlights

Zellij-Style Auto-Layouts

No more manual splitting decisions. Set a layout mode and let WezTerm figure out the rest.

| Key | Action |

@johnlindquist
johnlindquist / CLAUDE.md
Created January 12, 2026 21:14
WezTerm Power User Config - Zellij-style layouts, Smart Pickers, External Triggers, Session Persistence

WezTerm Power User Guide

A guide to WezTerm workspaces, pane management, and productivity tricks for users coming from iTerm2.

Modular Config Structure

The config is split into logical modules for maintainability:

~/.config/wezterm/
@johnlindquist
johnlindquist / opencode-plugin-logging.md
Created January 12, 2026 02:20
OpenCode Plugin Logging Infrastructure - What we learned

OpenCode Plugin Logging Infrastructure

What We Did

Added comprehensive session-based file logging to all 8 OpenCode plugins in .opencode/plugin/. Each plugin now logs every hook invocation, whether it triggered an action or was skipped.

Files Created/Modified

  1. .opencode/lib/logger.ts - Shared logging utility
  2. All 8 plugins - Added logTriggered() and logSkipped() calls to every hook
@johnlindquist
johnlindquist / opencode-plugins-guide.md
Created January 11, 2026 20:10
OpenCode Plugins Guide - Complete reference for writing plugins with hooks, custom tools, and event handling

OpenCode Plugins Guide

A comprehensive guide to writing plugins for OpenCode that extend agent behavior with hooks, custom tools, and event handling.

Quick Start

  1. Create a TypeScript file in .opencode/plugin/ (project) or ~/.config/opencode/plugin/ (global)
  2. Export a named plugin function
  3. Restart OpenCode
@johnlindquist
johnlindquist / claude-zsh-functions.md
Last active January 10, 2026 07:55
Loading ZSH Functions into Claude Code

Loading ZSH Functions into Claude Code

Make your shell functions and aliases available to Claude Code's Bash tool.

Setup

1. Create the Shell Init Script

Create ~/.claude/shell-init.sh:

@johnlindquist
johnlindquist / claude-hidden-flags.md
Last active January 8, 2026 18:09
Claude Code CLI Hidden Flags (v2.1.1)

Claude Code CLI Hidden Flags (v2.1.1)

These flags are hidden from claude --help but are available in the CLI. Found by searching the compiled binary source.

Hidden Flags

Flag Description
-d2e, --debug-to-stderr Enable debug mode (to stderr)