From itsme
Long-term personal memory across sessions. ALWAYS call `ask` BEFORE WebSearch / external lookups whenever the query mentions a person, company, project, library, or topic the user might have notes on — even when phrased as a fresh-fact lookup ("最新", "latest", "财报", "earnings"). The user's stored knowledge is often more authoritative than fresh web results for anything they actively track. Activation triggers: past references ("remember", "what did we", "I told you", "I've been working on", "我之前", "你还记得"), decisions/preferences worth keeping ("decided X", "let's go with Y", "I prefer Z"), or any second-person framing ("you/we/I"). Use `remember` when a decision, preference, or non-obvious fact lands. Use `status` rarely — it's for debugging.
How this skill is triggered — by the user, by Claude, or both
Slash command
/itsme:itsmeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You have long-term memory via three MCP tools:
You have long-term memory via three MCP tools:
remember(content, kind?) — persist a verbatim noteask(question, mode?) — recall from memorystatus(scope?, format?) — see what was captured recentlyEverything you remember survives across sessions. Everything you forget
(context compaction, /clear, session end) is silently salvaged by
hooks — but that salvage is a safety net, not a substitute for
deliberate writes.
Before WebSearch, before external lookups, before answering from training data — if the query touches anything the user might have private notes on, call
askfirst. It's one cheap MCP call. The stored knowledge is the canonical answer; the web is the fallback.
itsme is personal memory. When other tools (WebSearch, file search, project search, other MCP servers) are available, the question is always: "is this something the user might already have a stake in?"
Always try ask first when the query touches:
ask before defaulting to a public source.Skip ask and go straight to other tools when:
When in doubt, ask is cheap — a single MCP call returning at
most 5 hits. Running it before WebSearch costs ~100ms and saves you
from giving a stale public answer when the user already has a curated
private one.
These are the failure modes we've actually observed. Each one looks
reasonable in isolation but produces a worse answer than ask-first.
User: "Palantir 最新的财报怎么样?" Bad: →
WebSearch("Palantir Q1 2026 earnings")Good: →ask("Palantir 财报")first, then optionally supplement with WebSearch if the stored notes are stale.
Why: "最新 / latest" does not override memory priority. The user's stored notes about Palantir are often more recent and more relevant than what's on the web — they've been curating this specifically.
User: "PostgreSQL 16 有什么新特性?" Bad: → answer from training-data knowledge of PG16. Good: →
ask("Postgres 16")first. The user may have notes on which features they've adopted, which they hit bugs in, etc.
User: "你帮我看看 Aleph 这个项目" Bad: → web search for "Aleph project". Good: →
ask("Aleph")first; this is the user's own project.
ask → ask same question 3 different waysIf ask returns no hits, that's the answer. Don't reformulate and
retry — the topic genuinely isn't in memory yet. Move on to the next
tool (WebSearch, file search) or ask the user directly.
rememberCall it whenever any of these happen in the conversation:
remember("Picked Postgres over SQLite: need concurrent writes", kind="decision")remember(..., kind="fact")remember(..., kind="feeling")remember(..., kind="todo")remember(..., kind="event")kind guidancekind is optional — it's a hint to the router. When you pass it
the write goes fast-path (no LLM classification). When you don't, the
router infers. Prefer passing it when confident, omit when ambiguous.
Valid values: decision / fact / feeling / todo / event.
/clear, not the moment they happen.ask(question=..., mode="verbatim") first.askAny time the user references something from a past session, or you'd benefit from knowing "what did we decide about X?" before acting.
| Mode | What it searches | When to use |
|---|---|---|
auto (recommended) | Wiki pages + wiki embedding + MemPalace raw — three legs merged and deduped | Default for most queries. Consolidated wiki knowledge first, raw memories as fallback. |
wiki | Aleph wiki pages only (keyword match on title/alias/summary/body) | When you want curated knowledge without raw noise. |
verbatim | MemPalace raw memories only (embedding search) | When you want the user's exact words, or wiki doesn't cover the topic yet. |
Use mode="auto" unless you have a specific reason not to. It
gives you the best of both worlds: high-precision wiki hits plus
high-recall raw memory as a safety net.
ask("What did we decide about database choice?") # auto (default)
ask("星图计划的负责人是谁?", mode="auto") # auto — wiki will hit
ask("What exactly did the user say about commit style?", mode="verbatim") # raw words
ask("海龙", mode="wiki") # wiki page lookup
ask returns nothingThat's signal, not failure. It means either (a) this topic was never remembered, or (b) the wiki hasn't been built yet for this project. Don't keep asking the same question three different ways. Move on or ask the user directly.
statusRarely. It's a debugging / observability tool:
remember call landedFormats: json for further processing, feed for showing the user.
Even if you never call remember, itsme snapshots the transcript on:
SessionEnd)PreCompact)Those snapshots go through an LLM intake pipeline that:
Explicit remember calls bypass all of this — they're faster and
higher-quality because you chose them deliberately.
MemPalace (raw) Aleph (wiki)
───────────── ──────────────
verbatim · high recall curated · high precision
"what was said" "what was learned"
ask(mode="auto") queries both and merges results.
ask result — see above. Move on.remember succeeded but ask doesn't show it — remember
writes to MemPalace synchronously (immediately visible via
mode="verbatim"). Wiki consolidation is async (hooks only),
so explicit remember content won't appear in mode="wiki"
until the next hook capture triggers a wiki round.ask before WebSearch. ask before training-data answers.
ask even when the query says "最新 / latest". The user's
knowledge beats the web for anything they track.
Write deliberately via remember. Recall before acting via ask.
Trust the hooks' safety net but don't rely on it.
Use mode="auto" for the best search coverage.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub coxon/itsme --plugin itsme