Skip to content

Instantly share code, notes, and snippets.

View galligan's full-sized avatar
🧪
Tinkering

Matt Galligan galligan

🧪
Tinkering
View GitHub Profile

Claude Code Now Has Persistent Agent Memory

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 PR Valet

The Problem Nobody Loves Talking About

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.

@galligan
galligan / console-vs-logger.md
Created February 7, 2026 12:12
Console vs. Logger: Best Practices for CLI Tools & TypeScript Libraries

Console vs. Logger: Best Practices for CLI Tools & TypeScript Libraries

Research notes for the Outfitter Stack. Synthesized from codebase analysis, MCP spec, CLI guidelines, and logging library documentation.

The Core Distinction

Output is the product — what the user asked for. Logging is the process — how the program ran.

Concern Stream Audience Example
@galligan
galligan / OVERVIEW.md
Created February 5, 2026 20:30
obc-cli: Filesystem-first Obsidian vault CLI — project overview

obc-cli: Project Overview

What It Is

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
@galligan
galligan / README.md
Created January 31, 2026 04:35
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

Format (JSONL)

One JSON object per line.

@galligan
galligan / crawl-feature-design.md
Last active January 25, 2026 19:22
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.

@galligan
galligan / 202601221544-outfitter-principles.md
Last active January 23, 2026 03:31
Outfitter Principles (Draft)

created: 2026-01-22T20:44:36.255Z

type: principles tags: [principles, design, philosophy, draft]

Outfitter Principles

These aren’t rules we invented. They’re lessons we keep relearning—usually the hard way.

@galligan
galligan / Issue-thing.md
Last active January 22, 2026 05:16
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)

North: A Design System Skill for AI Agents

Version: 0.1.0 Overview Status: Draft


The Problem

AI coding agents are remarkably capable at producing working code. But when it comes to frontend design, there's a consistency problem.

Ubuntu on a 2012-ish Mac mini install guide

(Target machine: Intel Mac mini circa 2012. No optical drive. Internal drive replaced. Goal: clean Ubuntu install.)

Quick reality check

  • You do not need a DVD drive. You’ll boot and install from a USB stick.
  • Use Ethernet during install if possible. It avoids Wi‑Fi driver pain (these minis often use Broadcom Wi‑Fi).
  • UEFI boot is your friend. Macs of this era boot Ubuntu well via UEFI.