
Memory
- 1 installs
- 260 repo stars
- Updated February 6, 2026
- sawyerhood/gitclaw
Helps with ai & agent building tasks.
About
memory is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- memory
- AI & Agent Building
- AI-coding skill
Memory by the numbers
- 1 all-time installs (skills.sh)
- Ranked #14,098 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/sawyerhood/gitclaw --skill memoryAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 260 |
| Last updated | February 6, 2026 |
| Repository | sawyerhood/gitclaw ↗ |
What it does
Helps with ai & agent building tasks.
Files
Memory
You don't have to start every session blank. Past context lives in files you can search.
Where Memory Lives
- state/memory.log — Append-only log of important facts, preferences, and decisions
- *state/sessions/.jsonl** — Full conversation transcripts per session
When to Search
- User says "remember when..." or "you said..." or "we talked about..."
- User references a preference, decision, or fact you should know
- You need context from a previous session
- Before asking the user something they may have already told you
Quick Searches
# Search memory log
rg -i "search term" state/memory.log
# Recent memories
tail -30 state/memory.log
# Search all sessions
rg -i "search term" state/sessions/
# Search with context (2 lines before/after)
rg -i -C 2 "search term" state/memory.log state/sessions/Writing to Memory
When you learn something worth keeping:
echo "[$(date -u '+%Y-%m-%d %H:%M')] Memory entry here." >> state/memory.logKeep entries atomic — one fact per line. Future you will grep this.
---
Session Log Deep Queries
Session files are JSONL. Each line:
{
"type": "message",
"timestamp": "2026-02-05T05:16:04.856Z",
"message": {
"role": "user" | "assistant" | "toolResult",
"content": [
{ "type": "text", "text": "..." },
{ "type": "thinking", "thinking": "..." },
{ "type": "toolCall", "name": "bash", "arguments": {...} }
]
}
}List sessions by date
for f in state/sessions/*.jsonl; do
[ -f "$f" ] || continue
ts=$(head -1 "$f" | jq -r '.timestamp // empty' 2>/dev/null)
echo "$(echo "$ts" | cut -dT -f1) $(basename $f)"
done | sort -rExtract user messages
jq -r 'select(.message.role == "user") | .message.content[]? | select(.type == "text") | .text' state/sessions/<file>.jsonlExtract assistant responses
jq -r 'select(.message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' state/sessions/<file>.jsonlConversation overview (skip thinking/tools)
jq -r 'select(.message.role == "user" or .message.role == "assistant") | .message.content[]? | select(.type == "text") | .text' state/sessions/<file>.jsonl | head -100Tool usage stats
jq -r '.message.content[]? | select(.type == "toolCall") | .name' state/sessions/<file>.jsonl | sort | uniq -c | sort -rnTips
- Sessions are append-only JSONL (one JSON per line)
- Large sessions can be several MB — use
head/tailfor sampling - Filter
type=="text"to skip thinking blocks and tool calls - Use
jq -rfor raw output without JSON escaping
Related skills
AI & Agent Buildingagents