Skip to content
cccskills
FreePublished on GitHub

session-brain

Build or refresh a browser-viewable topic graph over Claude session history using local clustering. Use for mapping or clustering sessions, recent or stale topic analysis, or rebuilding/showing the session graph. Unlike wiki-history-ingest, it indexes raw sessions and never writes to the vault.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Session Brain

Builds a searchable topic graph over your agent session history. The output is a sidecar at ~/.claude/session-brain/ — the vault is never touched.

All the heavy lifting is deterministic Python in the obsidian-wiki CLI. Your only job is to name the clusters, which takes exactly one turn and requires reading no transcripts.

When to use which skill

GoalSkill
Build or refresh the graph; survey topicssession-brain (this one)
Find and load a specific past sessionsession-search
Distil sessions into permanent vault pageswiki-history-ingest / claude-history-ingest

Step 1: Build

obsidian-wiki sessions-build --json

Roughly 3 seconds cold on ~1000 sessions, well under a second incrementally — it re-reads only transcripts whose size or mtime changed. Useful flags:

FlagWhen
--fullIgnore all caches and re-read everything
--mutualTighter, smaller clusters (mutual-kNN edges only)
--half-life NChange the recency half-life (default 90 days)
--min-sim 0.15Fewer, stronger edges — use if the graph is too dense to read
--skip nameExclude a project. Match is substring-based; pass the bare name, because cache dirs start with - and argparse reads that as a flag

Report the headline numbers: total sessions, how many have transcripts vs. are history-only, edges, and cluster count.

Step 2: Name the unnamed clusters

obsidian-wiki sessions-clusters --unnamed --json

Each cluster comes with top_terms and exemplars (its three highest-degree sessions, whose titles are already in graph.json). That is all you need. Do not open transcripts to name a cluster — the whole design goal is that naming costs one turn regardless of corpus size.

Write a 3–5 word name and a one-sentence summary per cluster, then:

obsidian-wiki sessions-name --from - <<'EOF'
[{"id": 3, "name": "warden telemetry pipeline", "summary": "Building and debugging the redacted telemetry chain."}]
EOF

Names are stored in names.json keyed by the cluster's dominant vocabulary, not its id — so they survive rebuilds even though cluster ids are positional and shift as the corpus grows. On repeat runs --unnamed is usually empty and this step is free.

If a cluster's terms are genuinely incoherent, name it honestly ("mixed — short sessions") rather than inventing a theme.

Step 3: Report the map

Read clusters.json and tell the user:

  • Biggest topics — by size
  • What's hot — highest momentum (activity in the last 30 days vs. the 60 before it)
  • What's gone quiet — dormant: true (low recency and nothing in 60 days)
  • Where topics meet — bridges, the sessions that connect two otherwise separate topics. These are often the most interesting sessions in the graph.

Then offer the visualisation:

open ~/.claude/session-brain/graph.html

Node size is session length, brightness is recency, hollow rings are history-only sessions, and gold borders are bookmarked ones. The time slider and search box filter together.

Notes

  • Never write to the vault from this skill. If the user wants session knowledge in the vault, that is wiki-history-ingest.
  • History-only sessions are real. Roughly 40% of a long-lived cache exists only as prompts in history.jsonl; those get graph nodes and are findable, but can never be loaded. Say so plainly rather than implying they are missing.
  • The graph is derived data. If it looks wrong, --full rebuilds from scratch; nothing is lost.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Ingest Claude Code conversation/session history into Obsidian as distilled knowledge. Use for importing or mining past Claude sessions, .claude data, project/session history, or audit logs.

The English summary is being prepared. Showing the original description.

Ar9av/obsidian-wiki3.6KUpdated Oct 18, 2026

Map the load-bearing files, symbols, callers, and dependencies of an unfamiliar codebase before making changes. Use for architecture orientation, impact analysis, what-would-break questions, or finding callers. Uses CodeGraph when available and a dependency-free builtin fallback.

The English summary is being prepared. Showing the original description.

Ar9av/obsidian-wiki3.6KUpdated Oct 18, 2026

Ingest Codex CLI conversation/session history into Obsidian as distilled knowledge. Use for importing or mining ~/.codex sessions, rollout files, indexes, or transcript logs; use wiki-agent for targeted topic-only recall.

The English summary is being prepared. Showing the original description.

Ar9av/obsidian-wiki3.6KUpdated Oct 18, 2026

Ingest GitHub Copilot CLI/session history into Obsidian as distilled knowledge. Use for importing or mining Copilot history; not for general Copilot help, simple session search, or backup.

The English summary is being prepared. Showing the original description.

Ar9av/obsidian-wiki3.6KUpdated Oct 18, 2026

Find and add missing cross-references between wiki pages. Use when pages are disconnected or after large ingestion. This modifies pages to add links; use wiki-lint for report-oriented structural auditing.

The English summary is being prepared. Showing the original description.

Ar9av/obsidian-wiki3.6KUpdated Oct 18, 2026

Run or configure the daily wiki maintenance cycle: check source freshness, refresh the index and hot.md, and manage its scheduled 9 AM launchd/systemd/cron reminder. Use for daily or morning wiki refresh or scheduler setup and verification.

The English summary is being prepared. Showing the original description.

Ar9av/obsidian-wiki3.6KUpdated Oct 18, 2026

See all skills by Ar9av

Report a problem with this skill