You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
🧪
Tinkering
Matt Galligan
galligan
🧪
Tinkering
Full-stack product builder, AI tinkerer, serial entrepreneur, co-founder @xmtp
Carabiner: A TypeScript Toolkit for Claude Code Hooks — detailed overview
Carabiner: A TypeScript Toolkit for Claude Code Hooks
The Short Version
Carabiner eliminates the protocol ceremony of writing Claude Code hooks. You write a typed function. Carabiner handles stdin, stdout, JSON formatting, exit codes, error routing, timeouts, and logging. The logic is yours. The plumbing is ours.
Claude Code quietly shipped something I've been waiting for: agents that learn between sessions. Not "memory" in the chatbot sense — actual persistent knowledge stores that agents write to disk and carry forward into future work.
There are two flavors. Auto memory is for the main Claude session itself. Subagent memory is for individual subagents you define. Both use the same architecture under the hood, and both are worth understanding if you're building anything with agents that needs to get smarter over time.
Auto Memory: Claude's Notes to Itself
Auto memory is a persistent directory where Claude records patterns, insights, and project-specific knowledge as it works. This is different from CLAUDE.md files (which are instructions you write for Claude). Auto memory is notes Claude writes for itself.
GitButler is the best local stack experience that exists. Full stop. Parallel branches, auto-restacking mid-stack edits, absorb, the new CLI — all of it solves a problem that Git itself has ignored for 20 years. I’ve been using it daily and the workflow just clicks in a way that Graphite’s local tooling never quite did.
But here’s the thing: the moment I push a stack to GitHub, I’m on my own.
PRs land on GitHub looking like unrelated branches unless you squint at base refs. When the bottom PR merges, the next one’s diff bloats with already-merged changes (or worse, targets a deleted branch). Mid-stack review feedback means I need to rebase locally, force-push, and hope GitHub’s UI catches up. And if I’ve got an agent working on a fix mid-stack? I’m the router — copying context, rebasing its work, making sure the rest of the stack stays coherent.
obc-cli is a command-line interface for managing Obsidian vaults. Its defining design principle is filesystem-first: the vast majority of operations work directly on vault files without Obsidian running. The Obsidian Local REST API plugin is only required for two capabilities: Dataview DQL queries and Obsidian command execution.
This reverses the typical dependency model. Most Obsidian tooling assumes the app is running — obc assumes it isn't, and gracefully adds REST API features when available.
TRADITIONAL: CLI → REST API (required) → Obsidian → Files
Feed-o-matic (patch-feed) — append-only micro-log for cross-session continuity
Feed-o-matic (aka patch-feed)
A tiny, append-only micro-log intended to act as a “continuity spine” across fragmented contexts (Slack threads/DMs/channels, multiple sessions, background runs).
Core idea:
Write path: fast, messy, append-only capture
Read path: semantic/keyword retrieval + later curation
BLZ crawl feature design - agent-managed site crawling for llms-full.txt generation
blz crawl Feature Design
Design doc for enriching sources with full content via targeted crawling.
What is BLZ?
BLZ (pronounced "blaze") is a local-first search cache for llms.txt documentation. It keeps documentation local, searches it in milliseconds (P50 ≈ 6ms), and returns grounded spans with exact line citations.
Feature request: Programmatic callback API for agentation
Feature Request: Programmatic Callback API
Context
I'm exploring integrating agentation into Navigator, a browser automation tool for AI agents. Navigator has a "paired mode" where agents work alongside users in their browser — agentation's annotation UX would be a perfect fit for letting users visually mark elements for agents to interact with.
Current Limitation
Agentation currently outputs annotations via navigator.clipboard.writeText(). For integration into other tools, this requires intercepting the clipboard API, which is:
Fragile (depends on internal implementation details)