Skip to content

Instantly share code, notes, and snippets.

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

John Lindquist johnlindquist

💭
Educating 👨🏻‍🏫
View GitHub Profile

Status Update

tl;dr for boss

Locked in

  • OpenClaw on Vercel — all-in, nights/weekends, building messaging channels + dashboard
  • Workflow — 5 PRs, changelog, and X campaign demos nearly done; hitting weekly goals
  • ADX Club — will make time, sharing knowledge is non-negotiable for me
  • Open Plugin Spec — strong fit, already have the spec/alignment/leaderboard plan, ready to engage partners

Reconnecting Messaging Users to Stopped OpenClaw Sandboxes

tl;dr

  • Sandboxes stop after 10min idle — when a Telegram/Slack user sends a message, the bot is dead until it restarts
  • Sandbox URLs change on every restore, but our stable subdomain proxy ({key}.basedomain.com) already solves that
  • Option A (simpler): Enable OpenClaw's built-in channels — remove --skip-channels, use long polling mode so the Gateway polls Telegram itself. No webhook URLs needed. Downside: bot appears offline when sandbox is stopped, no way to send "booting up..." messages to users
  • Option B (better UX): Build our own webhook adapter — keep --skip-channels, add /api/webhooks/telegram on our always-on Next.js app. Queue messages in Redis, trigger restore, send "booting up..." progress messages, drain queue once sandbox is live. More code but full control over cold-start experience
  • Either way we need a wake-up mechanism to restore stopped sandboxes when messages arrive
  • OpenClaw natively supports 14+ platfor

Messaging Cold-Start UX Plan

tl;dr

  • Users messaging OpenClaw bots via Telegram/Slack hit stopped sandboxes — current proxy returns HTML waiting pages, which webhooks can't use
  • URL stability is already solved: stable subdomain proxy ({key}.basedomain.com) survives sandbox restarts
  • Build dedicated /api/webhooks/telegram (and /slack) endpoints that return 200 OK immediately and queue messages in Redis
  • Send "booting up..." progress messages via platform API, editing them every ~30s until sandbox is ready
  • Call OpenClaw directly via sandbox.domain(3000) + gateway token — skip the proxy and password gate entirely
  • Add a cron-based messaging pump to send progress updates and drain queues
@johnlindquist
johnlindquist / xorloop-xtodoloop-explainer.md
Last active February 16, 2026 17:00
How xorloop and xtodoloop work — autonomous AI loop explainers with Mermaid diagrams

xorloop & xtodoloop — How They Work

Two autonomous overnight loops from the AI Swarm DSL that discover, plan, and implement code improvements using Oracle (GPT-5.2) and Codex swarms (GPT-5.3).


High-Level Pipeline

flowchart TD
@johnlindquist
johnlindquist / codex-swarm-before-after.md
Created February 11, 2026 22:13
codex-swarm SKILL.md improvements: before/after behavior guide (4 critical + 4 high)

codex-swarm SKILL.md — Before/After Behavior Guide

CRITICAL 1: File Reads Rule

Before: "ZERO file reads" — absolute ban on all file reads. After: "NO source file reads" — nuanced rule with explicit allowlist.

Scenario Before (broke rule) After (legitimate)
git diff --stat after workers finish ❌ Violated "ZERO file reads" ✅ Explicitly allowed
@johnlindquist
johnlindquist / report.html
Created February 8, 2026 03:22
Claude Code Insights Report
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Claude Code Insights</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; background: #f8fafc; color: #334155; line-height: 1.65; padding: 48px 24px; }
.container { max-width: 800px; margin: 0 auto; }

The Great Split: 197 Rust Files Under 500 Lines

TL;DR

We enforced a strict 500-line maximum on every .rs file in the Script Kit GPUI codebase — a 328,000-line Rust project — using a swarm of 25 autonomous Codex agents working in parallel.


The Numbers

@johnlindquist
johnlindquist / insight-apps-daily-workflow.md
Created February 7, 2026 17:38
Insight Apps: 50 TypeScript CLI tools for the AI-native developer workflow — built with a Codex swarm in a single Claude Code session

Insight Apps: 50 TypeScript CLI Tools for the AI-Native Developer Workflow

Built in a single session using a Codex (GPT-5.3) swarm coordinated by Claude Code. Each tool is a standalone TypeScript CLI with tests, structured logging, and clean architecture. Here's how they weave into a daily workflow.


Morning: Start the Day

1. Bootstrap & Orient

@johnlindquist
johnlindquist / INSTALL.md
Last active February 5, 2026 15:38
Claude Code loop functions for automated batch execution with file locking

Claude Code Loop Functions - Installation

Copy this entire file and paste it to Claude Code (or any AI coding agent) to install these functions.


Install Prompt

Install the Claude Code loop functions from this gist: https://gist.github.com/johnlindquist/cec1a33079189767d2f14203ed1306ca
@johnlindquist
johnlindquist / gist:1d2775b4948e88e0b7fd02155c6eee7f
Last active February 1, 2026 00:57
Claude Memory: Advanced Claude Code Plugin - Fork Tournaments, Persistent Memory, Output Airlock, Evidence Packs, MCP Data Firewall
# Claude Memory Plugin
A Bun/TypeScript implementation of 5 powerful but rarely-used Claude Code capabilities.
## Features Built
### 1. Fork Tournament (`src/fork-tournament/`)
Parallel exploration with auto-dossiers and winner selection.
**Files:**