Home / Subagents / memory-extractor

memory-extractor

Lifecycle-Innovations-Limited/claude-opsSubagent

OPS specialist: Background agent that extracts user profiles, contact cards, and behavioral patterns…

ScannedSubagentSource: GitHub
547 stars +4 this week Updated 17d ago License MIT Context ≈30 tokens in your chat
63popular

Why this score

Stars10/35
Usage (forks)3/15
Upkeep25/25
License15/15
Owner history10/10

This repo hosts 21 subagents, so its 547 stars are split between them (about 26 each) for scoring.

Popularity score: 63/100 from public GitHub signals only. It shows how widely used and maintained this is, not how well it works. Not included yet: the fake-star check. The security scan is shown separately and doesn't change the score. How we rank

What it can use

  • Every tool, because it sets no tools list (it inherits all of yours, including shell and MCP tools)

This agent can act outside your files. Read it before installing, and narrow its tools: line if it needs less.

The agent file

---
name: memory-extractor
description: "OPS specialist: Background agent that extracts user profiles, contact cards, and behavioral patterns…"
effort: low
maxTurns: 10
memory: project
---

## Purpose

Builds structured memory from raw chat data so ops skills (inbox, comms, go) can draft
context-aware messages. Reads WhatsApp (bridge messages.db) and email (gog) history, calls Claude Sonnet
for extraction, and writes/merges structured markdown memory files.

## Memory Location

```
~/.claude/plugins/data/ops-ops-marketplace/memories/
```

## File Types

| File               | Contents                                                    |
| ------------------ | ----------------------------------------------------------- |
| `contact_*.md`     | Per-contact profile cards (one per person)                  |
| `preferences.md`   | User communication patterns, tone, scheduling               |
| `topics_active.md` | Ongoing conversations, pending decisions, deadlines         |
| `donts.md`         | Things to avoid — extracted from corrections and complaints |
| `.health`          | JSON health status written after each run                   |

## How Skills Use This

Before drafting any reply, skills check `memories/` for:

1. **Contact profile** — `contact_<slug>.md` for the recipient
2. **Topic context** — `topics_active.md` for active threads
3. **User preferences** — `preferences.md` for tone/style/language
4. **Restrictions** — `donts.md` for things to never do

Example usage in a skill:

```bash
MEMORIES="${HOME}/.claude/plugins/data/ops-ops-marketplace/memories"

# Load contact profile
CONTACT_FILE=$(ls "${MEMORIES}/contact_"*jane-doe* 2>/dev/null | head -1)
[[ -f "${CONTACT_FILE}" ]] && cat "${CONTACT_FILE}"

# Load user preferences
[[ -f "${MEMORIES}/preferences.md" ]] && cat "${MEMORIES}/preferences.md"

# Load restrictions
[[ -f "${MEMORIES}/donts.md" ]] && cat "${MEMORIES}/donts.md"
```

## Data Sources

- **WhatsApp**: direct sqlite3 query on bridge messages.db:
  ```bash
  DB="${WHATSAPP_BRIDGE_DB:-$HOME/.local/share/whatsapp-mcp/whatsapp-bridge/store/messages.db}"
  sqlite3 "$DB" "SELECT chat_jid, sender, content, timestamp, is_from_me FROM messages WHERE timestamp >= '<yesterday>' ORDER BY timestamp DESC LIMIT 200;"
  ```
  - Requires bridge running: `lsof -i :8080 | grep LISTEN`
- **Email**: `gog gmail search -j --results-only --no-input --max 20 "newer_than:1d"`
  - Requires gog available

Both sources are optional — the extractor exits cleanly if unavailable.

## Extraction Model

Inherits the session default model. Typical cost per run: <$0.01.

## Memory Format

```markdown
---
type: contact
name: Deeksha Yadav
email: example.user@example.com
company: BrowserStack
role: Account Manager
last_updated: 2026-04-13T15:00:00Z
confidence: 0.8
---

## Relationship

- Professional contact
- B2B contact for mobile app testing

## Communication Style

- Professional, responsive
- Prefers email
- English only

## Recent Context

- Negotiating BrowserStack App Automate deal for my-app
- Last interaction: pricing discussion (Apr 13)
```

## Idempotency

Running the extractor twice on the same data produces the same output.
Memory files are **merged** (not overwritten) — new signals update existing files.
Files unchanged between runs are not rewritten.

## Size Limits

- Per-file max: 5KB — older content is trimmed if exceeded
- Total max: 50KB across all memory files — oldest contact files pruned if exceeded
- Health file: `~/.claude/plugins/data/ops-ops-marketplace/memories/.health`

## Daemon Config

```json
{
  "memory-extractor": {
    "enabled": true,
    "command": "__SCRIPTS_DIR__/ops-memory-extractor.sh",
    "health_file": "~/.claude/plugins/data/ops-ops-marketplace/memories/.health",
    "restart_delay": 3600,
    "cron": "*/30 * * * *"
  }
}
```

MIT license, from Lifecycle-Innovations-Limited/claude-ops at commit 6ac22376d988.

Security

Scanned Oct 21, 2026 at commit 6ac22376d988, with Cisco's open-source skill-scanner.

None of the patterns we list turned up: shell commands, network requests, reading environment variables, downloading and running code, or installing packages.

A scan lists patterns in the code. It can't prove an add-on is harmless, and it can miss things, so read what you install. How we scan

Alternatives

Other makers' add-ons that do the same job, next to this one.

NameScoreStarsContextUpdated
This onememory-extractor Lifecycle-Innovations-Limited/claude-ops · Subagent 63★ 547≈30 in chat17d ago
extractor athola/claude-night-market · Subagent Both about extractor 58★ 342≈17 in chat19d ago
knowledge-extractor SethGammon/Citadel · Subagent Both about extractor and extract 70★ 925≈22 in chat17d ago
design-context-extractor yonatangross/orchestkit · Subagent Both about extractor and extract 58★ 296≈48 in chat16d ago
epub-chapter-extractor Abilityai/cornelius · Subagent Both about extractor and extract 61★ 113≈63 in chat27d ago
news-extractor NanmiCoder/NewsCrawler · Skill Both about extractor 74★ 627≈46 always3mo ago