# Making Claude Code Actually Remember Things

**Channel:** Artem Zhutov
**URL:** https://www.youtube.com/watch?v=RDoTY4_xh0s
**Date processed:** 2026-03-10
---
## Summary
Artem Zhutov demonstrates a "memory stack" for Claude Code built on top of an Obsidian vault, using QMD (a local search engine by Tobi Lütke, CEO of Shopify) as the retrieval layer. The system combines BM25 keyword search and semantic vector search to let Claude find relevant prior conversations, notes, and files in seconds rather than minutes — solving the "cold start problem" where every new Claude session starts from zero context.
The video walks through three recall modes: temporal (reconstruct what you were doing yesterday), topic-based (find all context about a specific project), and graph-based (visual node graph of sessions and files over time). Artem benchmarks QMD's approaches against Claude's native grep-based file search, showing that grep took 3 minutes and returned 200 noisy results, while QMD's BM25 search returned focused results in 2 seconds. The semantic search additionally captures meaning beyond keywords — e.g., finding entries about sleep disruption even when "couldn't sleep" isn't literally in the text.
The pipeline works by exporting Claude Code sessions (stored as JSONL) into Obsidian as clean markdown, then embedding them into QMD collections. A hook runs at terminal close to keep the index fresh. The whole system is open source and also accessible via Open Claude (phone access).
---
## Key Points
- QMD is a local CLI search engine combining BM25 (keyword) and semantic (vector) search, running entirely on your machine
- The "cold start problem": every new Claude Code session loses all context from previous sessions, requiring expensive re-exploration
- Three recall paths: temporal (timeline reconstruction), topic (project-focused context loading), graph (visual session/file relationships)
- Benchmark results: grep = 3 minutes, 200 noisy files; QMD BM25 = 2 seconds, focused results; semantic search finds meaning beyond keywords
- Sessions are exported from Claude's JSONL format to clean markdown, then indexed into QMD collections
- A terminal-close hook keeps the QMD index fresh after every session
- Recommendation: start with BM25 (fast, 80% of the value), add semantic search for brain dumps and transcripts where exact keywords aren't available
- The system extends beyond the vault — you can embed YouTube transcripts, articles, and other external sources into QMD collections
---
## Detailed Notes
### The Problem: Cold Start and Context Loss [0:00–5:00]
Every new Claude Code terminal session starts from zero. Claude doesn't search across your vault, doesn't know what you worked on yesterday in a different project. The typical workaround — telling Claude to "find all information about X" — triggers a brute-force grep/subagent search that takes 3+ minutes and produces noisy results. QMD fills this gap as a local search engine serving as a retrieval layer.
### QMD Architecture and Collections [1:29–3:00]
QMD maps one-to-one with Obsidian vault folders as "collections." Each collection can be searched independently (e.g., search only daily notes, or only sessions). Commands include `search` (full-text BM25), `vsearch` (vector-only), and collection management (list, add, remove).
### Recall Skill: Three Modes [13:10–24:00]
A "recall" skill wraps QMD with three interaction modes:
1. Temporal path — reconstruct a timeline of what you were doing on a given day, with session IDs for resuming any conversation
2. Topic path — BM25 search across notes/sessions to load all context about a specific project in under a minute
3. Graph path — visual node graph showing sessions as blobs (color-coded by recency) with connections to files they touched
### Benchmark: grep vs BM25 vs Semantic vs Hybrid [27:33–32:14]
Query: "couldn't sleep"
| Approach | Time | Results | Quality |
|----------|------|---------|---------|
| grep (native) | ~3 min | 200 files | Noisy — includes `sleep()` system calls, templates, unrelated matches |
| BM25 (QMD search) | ~2 sec | Focused | Good — finds sleep quality reflections, experiments, specific entries |
| Semantic (QMD vsearch) | Fast | Focused | Finds meaning — "couldn't fall asleep at 3am", bedtime discipline goals |
| Hybrid (both) | ~35 sec | Ranked | Best quality — ranks most relevant entries highest, but slower |
### Session Export Pipeline [37:04–40:00]
Claude Code stores conversations as JSONL files in a `.claude` folder. The pipeline:
1. A skill exports all conversations to Obsidian as clean markdown (stripping tool calls, system prompts, keeping only user messages — "the actual signal")
2. Files are embedded into a QMD "sessions" collection
3. A terminal-close hook re-indexes new sessions automatically
4. Each exported session note includes: session ID, date, skills used, artifacts (files modified/created), and full conversation history
### Getting Started Recommendation [36:15–36:56]
Start with BM25 — it's fast and gets you 80% of the value. Add semantic search specifically for transcripts and brain dumps where you don't use precise terms. Hybrid (both together) gives best results but costs ~30 seconds per query.
### Open Claude / Mobile Access [40:14–41:38]
The same skill set (including recall) is available via Open Claude on phone, sharing the same Obsidian vault. This means context recall works from anywhere.
---
## Connections
*Links to related vault notes will be added here*
---
## My Notes
*Space for your own thoughts, reactions, and connections after watching*
---
## Full Transcript
<details>
<summary>Click to expand transcript</summary>
[0:00] Here is one week of my work and every
[0:02] note which we have here is a
[0:05] conversation with a cloth code. Every
[0:07] link is a file it touched. Here's an
[0:10] example of ordering me Instacart
[0:13] groceries and all of the recipe files
[0:15] which I created and I could go back to
[0:17] this at any point and by the end of the
[0:20] video you'll have this too. A clo code
[0:22] already has a memory but it doesn't
[0:24] search across your vault. doesn't know
[0:27] what you worked on on a different
[0:29] project yesterday. And QMD fills this
[0:32] gap. And QMD is a logo search engine for
[0:37] your knowledge base. It serves as a
[0:39] retrieval layer where you can find
[0:41] anything in less than seconds. And here
[0:44] is what I'll show you in today's video.
[0:46] How to turn your vault into s searchable
[0:49] uh memory. How to load automatically
[0:52] context before every session. and how to
[0:56] index your knowledge base uh so that no
[1:02] conversation getting lost. All right,
[1:05] let's get started. That's our memory
[1:07] stack and what we have here is our
[1:10] obsidian vault. I am right now inside of
[1:12] Obsidian and here I have a bunch of
[1:16] files, bunch of folders, all of that are
[1:19] Martin files and we want to somehow be
[1:22] able to uh find and search for relevant
[1:26] information and the way we do it is
[1:29] through QMD and QMD is a CI search
[1:33] engine for your dogs uh from Toby that's
[1:36] a CEO of Shopify and it uses combination
[1:40] of SIM semantic search and keyword
[1:42] search and it delivers amazing results
[1:45] when you search across your world much
[1:47] better than grap in specific cases. So
[1:50] that's the tool which enables this and
[1:52] then we have a skill which is called
[1:55] recall which leverages this QMD tool and
[1:59] loads into the context the information
[2:02] which is relevant for us right now and
[2:04] then we can have access to this through
[2:06] cloud code or open claw from anywhere.
[2:10] Now the way I set up QMD for myself is
[2:13] for each of the obsidian vault folder I
[2:15] have a QMD collection and this is one to
[2:18] one mapping for me and then for each
[2:21] collection I can perform a focused uh
[2:24] search topic. If I want to look through
[2:26] my daily notes I can just go there and
[2:29] scan um and scan those daily notes. If I
[2:34] want to look through my sessions with a
[2:37] cloth code, I can do the same as well.
[2:40] And I'll show you how to embed your
[2:42] obsidian vault into QMG collections
[2:45] after this demo. Here is um example. We
[2:49] can go to Claude and talk to Claude and
[2:53] Claude knows how to use this CI tool uh
[2:56] QMD. We can run it ourselves to to get
[2:59] information. here all of my collections
[3:02] listed here and here we have files and
[3:05] the time since it's been last updated.
[3:08] Now I can go to cloud and tell um like
[3:12] perform a search um I want to perform a
[3:14] search u about my research uh about
[3:19] graphs can you find those one
[3:21] conversations and it's going to use u uh
[3:24] this um QMD command search across my
[3:29] notes and here are the relevant results
[3:32] where I was performing research about
[3:34] different knowledge graph approaches
[3:37] another Another example, I can search u
[3:40] I want to search about notebook lm and
[3:42] find relevant files uh and sessions
[3:45] about notebookm which I had in my vault.
[3:48] Now and this is a basic way to use QMD
[3:53] and it can quite fast get us up to speed
[3:56] to find information about relevant u
[4:00] topics which we want to recover into the
[4:03] memory into the session uh into our
[4:05] context right now and I can compare that
[4:08] with the standard way how you do it. I
[4:11] want to search uh all information about
[4:13] u notebookm which I had in my obsidian
[4:16] bold uh the sessions and uh the files
[4:20] and this is how you would typically go
[4:23] about it telling the clot okay go go
[4:27] wild and search my vault and it does
[4:31] that using this haiku model and this one
[4:35] is just using this brute force approach
[4:37] and and you can see that it takes It's
[4:40] already quite some time. It's been
[4:43] almost a minute whereas this search was
[4:47] almost instant. So, we're getting into
[4:50] much better results in terms of time.
[4:53] How fast can we search? And also the
[4:55] results are more meaningful and we are
[4:59] also saving much much in terms of
[5:01] tokens. It's been already uh almost 2
[5:06] minutes and it's still searching,
[5:07] searching, searching and I'm interested
[5:09] in comparing the results which you will
[5:11] get. Okay, it's finally I think it's
[5:14] finishing that. It's been 2 minutes. Uh
[5:17] it's trying really hard. It's trying
[5:19] really really hard and I'm already
[5:22] bored. So, and typically during this
[5:25] time I would just go and uh scroll
[5:28] Twitter or or LinkedIn. So, and this
[5:31] becomes really a waste. So, I need to
[5:34] somehow like spend this time and focus
[5:37] on something else while waiting and that
[5:40] like distracts me. But that's one dis
[5:44] advantage of having fast search. So, you
[5:46] don't have to like go and do something
[5:48] else. You can really focus on one
[5:50] session on one context and work on one
[5:54] thing now. Okay. So, it's been 3
[5:57] minutes. Wow. Um, okay. So, and we got
[6:01] this response. Um, damn [laughter]
[6:05] 300 files.
[6:08] So,
[6:09] yeah. And here is the results. And I'm
[6:13] actually not so sure that's better than
[6:16] than we have here.
[6:19] So I I think here it's it's uh the
[6:23] results from QMD just from the standard
[6:27] search function of QMG is much better
[6:29] and they're almost instant and they're
[6:31] much more more context efficient. You
[6:34] don't have to use sub aents to do that
[6:36] and we are saving on tokens and they're
[6:38] much faster. Now that's one basic usage.
[6:42] Let me show you how can you embed
[6:44] different collections to QMD. So that's
[6:47] the commands which we have here. So
[6:49] there's a lot of stuff going on and
[6:52] there are different commands. Uh there's
[6:53] a standard one called search that's a
[6:56] full text um BM25 search and there is
[7:00] also vector vector search only. And this
[7:04] this one we'll explore the explore next.
[7:08] And for collections, we can have like
[7:10] those commands. We can at least remove
[7:12] the name. And let's try to create our
[7:17] collection. I want to create a new
[7:20] collection uh for my transcripts uh for
[7:23] the last 7 days using QMD. And I have
[7:28] those transcripts which um transcribe um
[7:32] everything I say and I save those into
[7:33] my vault. And here's example of the
[7:36] files. Okay, here's example of the
[7:38] files. It just uh transcriptions of me
[7:41] saying something. So, and from that this
[7:45] is very very valuable insight. We can
[7:47] try to embed it uh into a vector
[7:50] database and then ask like semantically
[7:53] meaningful questions in a way we
[7:55] couldn't actually capture through a
[7:58] standard keywords. All right, that's
[8:00] cool. We are here. Yeah. So go ahead and
[8:04] add to a new collection called
[8:06] transcripts. Okay. And here we're using
[8:08] the command collection add transcripts
[8:10] and we are adding the files uh from this
[8:15] folder. Okay. So we just added all of
[8:18] those files and we can search across our
[8:22] transcripts. M let's say yesterday I
[8:25] went to a meetup and I had some brain
[8:28] brain dump from this meetup and my
[8:30] thoughts and I want to ask a question
[8:32] about it like maybe some cool cool ideas
[8:35] I had during this meetup regarding the
[8:38] this discussion was about uh the
[8:41] browsers I I remember so can you search
[8:44] that now and here are the results I
[8:50] asked to not to expose any private
[8:52] information and here are like my ideas
[8:55] from my brain dump after the meetup and
[8:58] this is one of the ways you can use it
[9:00] but now you can push it even forward.
[9:03] What really excites me is semantic
[9:06] search and semantic search is something
[9:09] that uh which would enable surfacing and
[9:12] finding information which you couldn't
[9:14] find through a standard search by
[9:16] keywords and going beyond grap. And here
[9:21] are some cool cool cool ideas which we
[9:25] can try right now. Um let's say um I
[9:30] want to search across my daily nodes and
[9:32] find uh the days when I was happy and
[9:35] what was the reason for that and this is
[9:38] quite non-trivial query and clone is
[9:41] very very smart because right now it
[9:43] tries to adapt this query and uh
[9:47] searching for like you know happy
[9:49] grateful excited energy great day and
[9:52] find sematically relevant connections
[9:54] across my daily knowledge. or my
[9:57] transcripts.
[9:59] Here's example. [laughter]
[10:01] Uh mood is good. Glad I was able to
[10:04] sleep at all. Not great sleep but
[10:06] functional. And there are some other
[10:09] other ways that come up. Yes. Yes. And
[10:12] here's the example. Um high energy happy
[10:16] days. Um where I finished the seminar
[10:19] and I finally was done with everything
[10:22] and I was and I was good. Um and here is
[10:26] um pattern analysis that my happiest day
[10:29] when I ship something and I had a good
[10:32] sleep recovery uh like sona or 9 hours
[10:35] of sleep and this is just example how
[10:37] you can try extract um semantically
[10:40] relevant information which you can't
[10:42] find through grab yeah I also want to
[10:44] find um like the points of frustration
[10:47] on our own or uncertainty from my
[10:50] transcripts or from my daily notes.
[10:54] Okay, we're just getting uh all of this
[10:57] um information like using keywords,
[11:00] frustrated, uncertain, stuck, confused,
[11:03] finding relevant relevant files. Okay,
[11:06] [laughter]
[11:08] here [clears throat] are the patterns
[11:09] which we surfaced.
[11:11] Uh
[11:14] recognize tendency to seek quick fixes
[11:16] through coffee, overeating, sleep,
[11:18] social media when hitting roadblocks. H
[11:20] sounds familiar. Yeah. Um here's a
[11:25] session which I had about actually
[11:27] trying to unblock myself and here is the
[11:30] uncertainty
[11:32] uh when I was trying to find if u I'm
[11:36] doing the right thing to get those
[11:37] results. It was unclear for me what to
[11:40] do in that situation here. I I don't
[11:42] know what happened. It was day before my
[11:45] defense. Um what else do we have? Um,
[11:49] focus on most uncertain parts. Strategy
[11:51] working well. Uh-huh. And here's some
[11:54] concerning patterns. H. And here's a
[11:57] pattern that frustration comes from
[11:58] uncertainty about direction more than
[12:01] from the difficulty. H. Yeah. Okay. And
[12:04] here here is a real insight which I had
[12:07] but I actually forget about this right
[12:09] now that my best copings insight was um
[12:13] back then in October when I was writing
[12:16] my PhD thesis and I was about to give up
[12:19] uh and I need to like do it like day by
[12:24] day come in and write something. But
[12:27] what I realized back then is that I just
[12:30] need to see it through discomfort
[12:32] instead of escaping to quick fixes and I
[12:35] want to find this file actually. Um
[12:37] yeah, that's actually quite interesting.
[12:40] I didn't expect that it could surface
[12:43] this. That's so amazing that you can
[12:46] just explore that. Okay, so I had this
[12:49] like daily report back then. Um I had uh
[12:53] like you know this PhD work I like
[12:56] rewrite chapter 4 um what else we did
[13:01] and here's yeah and here's the exact
[13:04] citation which we found that's just
[13:06] amazing
[13:07] just amazing now it's been like a quick
[13:10] introduction into I don't know that's
[13:12] probably more than 90 seconds but that's
[13:15] just basics and then we can go into the
[13:18] actual memory on how to build something
[13:20] meaningful with that. So here is how to
[13:22] actually stop reexplaining all day long
[13:26] the new context to clot. Okay, so that's
[13:30] the one that's the one. Yeah, that's a
[13:34] call start problem. I think we should
[13:36] all face that we have a session we open
[13:39] a new terminal and then we start working
[13:42] working on something and we are good
[13:44] like cloud knows okay what are we
[13:47] working on it remembers what decisions
[13:49] we have made in um in this session it
[13:53] has a full conversation history it knows
[13:54] what to do next okay cool now so
[13:59] [laughter]
[13:59] but we are hitting at some point the
[14:01] context limit and when we are getting to
[14:04] let's say 60% % here in terms of
[14:06] context. So then we need to compact or
[14:11] do a hand off to another agent to
[14:13] continue working on that and then we
[14:15] kind of need to like decide what do we
[14:17] do like we start a new session then like
[14:19] half of the decisions have been lost or
[14:22] even worse if you want to continue next
[14:24] day I I don't remember what was
[14:26] happening back then and there is I just
[14:30] open new terminal and then what's going
[14:32] on I need to somehow like find all this
[14:35] context like what was the projects um
[14:38] what is the decisions and I need to
[14:40] start from zero like all the time and
[14:42] you just like tell CL okay find all the
[14:45] information and it like goes for 5
[14:46] minutes and this is what we've seen what
[14:49] happened that it's not efficient it
[14:52] takes so much time and spend so many
[14:55] tokens and the results are not that
[14:56] great because it has to read every file
[14:58] and it can't really negate the
[15:00] complexity of the work which we're doing
[15:02] in our vaults so there you go and that's
[15:05] the problem at the core problem which
[15:07] you're trying to solve here. Now let me
[15:10] explain how do we go about this. So we
[15:13] have we have this like recall skill and
[15:15] this recall skill enables us to scan our
[15:19] clock conversations or open clock
[15:22] conversation given a timeline from
[15:25] yesterday or from last week and it
[15:28] parses and like finds all our our
[15:31] conversations from this timeline and
[15:33] then we extract the session timeline.
[15:36] Okay. So that's cool. So let me um just
[15:39] try in a new session um just run this uh
[15:43] sorry call that's the command and we can
[15:46] have a yesterday today last week this
[15:49] week or topic or graph. And this is I'm
[15:53] going to explain later. Let's say just
[15:55] yesterday. Let's reconstruct yesterday.
[15:58] Um yes I want to reconstruct yesterday
[16:01] uh a precise timeline what I was doing
[16:03] matching the conversations and the files
[16:05] create. Cool. It loads the skill right
[16:08] now. Okay. It loads this workflow.
[16:11] Within this recall skill we have this
[16:13] recall workflow and runs this Python
[16:16] script. It references all of our
[16:18] conversations. And here they are by time
[16:22] by the number of messages. Uh the first
[16:26] message. Yes. 39 sessions and how do you
[16:29] not to lose mind in all of this like uh
[16:32] craziness like indeed busy day
[16:34] [laughter]
[16:35] and now I can go back at any point in
[16:39] time to previous time and understand
[16:42] what I was doing back then. We are using
[16:45] haiku right now to like understand uh
[16:47] what was happening in that session and
[16:50] it's going to go back to us with the
[16:51] results and this is just one way to
[16:53] interact with this uh skill with this
[16:56] memory system u that's a temporal path
[16:59] that I want to like know what I was
[17:00] doing back then um and what was it about
[17:04] okay and that's that's very very cool
[17:10] and we [clears throat] have a fully full
[17:11] timeline reconstruction what I was doing
[17:15] back back then like time by time and
[17:19] just the full timeline and I want you to
[17:22] get me the session ids so I can also
[17:25] easily resume those. Now this is one of
[17:28] the values that you can have clear
[17:30] understanding what you were doing
[17:32] yesterday and go back to any of those
[17:36] conversations.
[17:38] Now cl just going to uh get those
[17:41] session ids and I can resume actually
[17:44] information back. Okay. So let's try
[17:47] this session. So that's the session ID
[17:49] and then if I open a new new terminal
[17:53] instance I can go back to uh cloud and
[17:56] tell like resume and that's the session
[17:59] ID which I can use here. I think I need
[18:03] to have a full session ID here to make
[18:06] it work properly. Right now it doesn't
[18:09] recognize it as a command. Okay, here we
[18:12] got a full sessions ID. Um I can just
[18:15] tell okay using this command to to
[18:18] resume and I'm back to to where I was
[18:22] during this conversation. That was
[18:25] example of a like temporal path where we
[18:29] recall what was happening at some time
[18:31] in the past. Now and this part which
[18:34] really makes me excited is using this um
[18:38] topic path where we use the actual uh
[18:42] QMD and we use this BM25 search and it's
[18:46] been performing very very well for me.
[18:48] So let's try that. Let's try that. Just
[18:52] start new conversation. Yeah. So let
[18:54] let's see how how it working. Um we're
[18:57] going to use this recall command and uh
[19:00] we're going to recall something. Um by
[19:03] topic um let's say graph graph rug. Uh
[19:08] I'm really interested in in graphs and
[19:10] I'm like have a bunch of stuff in my
[19:13] world about graphs and I want to
[19:15] continue working on this. Oh okay. So it
[19:19] actually decided to use uh like search
[19:23] for QMD video because I have this
[19:26] context sharing with code. It can see
[19:29] what's been selected. Um and okay, so
[19:33] we're going to go like through this QMD
[19:35] video. So what do you have about that?
[19:37] Nice. And we are back. We are back. So
[19:40] I've been working on that for last two
[19:42] days. And here is a her current state.
[19:46] So we have all of this. We have uh like
[19:49] all different files each cloud can
[19:51] surface in less than a minute. We have
[19:54] um dashboard, we have a production plan
[19:57] and here is a to-do list and um now once
[20:02] you have this into your context so we
[20:04] can ask what is the next high highest
[20:06] leverage action. Okay. And you can try
[20:09] it with your projects, whatever you do
[20:12] in your obsidian is it like life,
[20:14] business, work, literally anything. So
[20:18] you can clearly reconstruct um any
[20:21] information in efficient way in less
[20:23] than a minute using this uh topic recall
[20:28] command. And this is all like single
[20:31] skill. And there's also graph way to do
[20:34] this. Um so let's try using graph and
[20:38] this is the one which I showed. Um
[20:41] actually that's a graph for today and
[20:44] here is a graph which we have and we
[20:47] have like different uh sessions and each
[20:50] blob here is a session. So you can see
[20:54] it here those are different sessions and
[20:58] they have um color code by by the time
[21:02] of creation. If the session is older, it
[21:05] gets dimmer. And if it's a recent one,
[21:07] it's um it's highlighted in purple. And
[21:11] then we have a different files which are
[21:13] created here. Um let's say this one. So
[21:17] we have like this um QMD video where I
[21:20] was planning for that. And we have um
[21:23] here we have this uh file called slides
[21:25] which I'm working on right now. So
[21:28] that's the file and you can see that
[21:30] it's it's been I've been working on that
[21:32] in in a couple few sessions. So you can
[21:36] see the connections here and here is a
[21:39] command which I tried just now like
[21:42] recall command and that's only for
[21:45] today. Now we can go a bit deeper. We
[21:47] can try to explore. Okay. So what we've
[21:49] been doing in the last week okay so
[21:53] let's try to do like something more
[21:55] interesting. Let's try last week. All
[21:58] right, the graph is loading and right
[22:00] now it's much more rich and complex. And
[22:07] so that's very exciting. I really love
[22:09] this. It's kind of fun. So what is this?
[22:14] Um Uhhuh. And this one is I was running
[22:18] this blind spot analysis where I want to
[22:21] have understanding on what are the blind
[22:24] spots that I have in my uh life or my
[22:27] strategy. And here I have a skill for
[22:30] that. And we created um and it has a
[22:33] different workflows um analyze like
[22:37] retrospective analyze and report and
[22:40] here is the plan which I created. Uh I
[22:42] can go back to this. I can copy this
[22:44] path and tell cloud open this one. Okay.
[22:49] And right now it opened it for me. So
[22:51] that's kind of all of the information.
[22:54] So we can also use graph view to uh
[22:58] clearly surface what's going on here and
[23:00] see connections between different
[23:02] sessions. And this one is is is kind of
[23:05] fun that I was exploring um a lunch
[23:09] places and I just tell okay I want to
[23:12] have a
[23:13] [clears throat] great lunch and uh we
[23:16] actually analyze like different
[23:18] different places to go and I store those
[23:20] as activities I might want to try and if
[23:24] I want to get back to this I can just
[23:27] copy those path and um and continue from
[23:31] there and copy and paste it into cloud
[23:33] code um and then we can like tell to
[23:37] read like these files and let's
[23:39] understand what's happening that's
[23:41] interaction with graph which is quite
[23:43] insightful for me and I really love to
[23:45] see collections um and this rich
[23:48] visualization and that's been a three
[23:51] ways to interact and recall what is
[23:54] going on that's been temporal path
[23:57] that's been path by topic if I want to
[24:00] know okay I had this thing which I was
[24:03] doing and I want to know I already can
[24:05] stack the context about it or the graph
[24:07] view. So whatever you prefer if you're a
[24:09] visual person maybe graph is the way to
[24:11] go for you now and this whole memory
[24:14] system is open source so the link in the
[24:16] description and also I run the lab where
[24:21] we explore this build like workflows
[24:24] together that's a six weeks program
[24:28] that's a very very fun and we had
[24:30] already first cohort and I learned a lot
[24:33] myself working with 20 people so and
[24:37] That's um six weeks program where we
[24:40] explore integration of clo code and
[24:43] obsidian and this intersection of what's
[24:45] possible. So and what we have here we
[24:48] have um like lab Vicki we have this lab
[24:51] Viki where we have uh all information
[24:55] and you can interact with it from your
[24:57] cloud code or obsidian. We have uh
[25:00] sessions you have uh masterminds and
[25:03] workshops on a weekly basis. you would
[25:07] quickly realize that all of the problems
[25:09] which we have they're all similar that
[25:12] oh like we have the information overload
[25:15] oh cloud creates a mess uh in our world
[25:19] or um I'm losing control in terms of
[25:23] what's happening or I'm spending more
[25:26] time on actually tuning my obsidian than
[25:28] doing real work and you are not alone
[25:31] and like this is the problems which we
[25:33] go and explore during the masterminds
[25:35] when you get a real feed back from the
[25:36] group. And I think this is the main
[25:39] transformation here that your nodes stop
[25:42] being passive. They stop being trapped
[25:44] in in your obsidian world. They actually
[25:46] start doing things and all of your notes
[25:48] is a useful context about yourself that
[25:51] you can leverage uh to achieve some
[25:54] goals in your life. Yes. And this is for
[25:56] you. If uh you've tried notion ROM,
[26:00] Apple not like all of these systems and
[26:02] you just have all your contacts
[26:04] scattered, you would also find it useful
[26:06] if you have like thousand of nodes and
[26:08] you just like don't know what what's
[26:11] going on there like what do I have even
[26:14] I I don't know and and this problem with
[26:18] every conversation with AI starts from
[26:20] from zero. uh how to build and make your
[26:23] world uh native for AI for the agents
[26:27] and how to capture your thoughts, how to
[26:29] make them organized. Yeah, if you are
[26:32] interested that are like some of the
[26:34] tools you should going to go through um
[26:36] obsidian like cursor clo skills much
[26:39] more and I think the most important
[26:42] thing is tools change tools change but
[26:45] your context stays even it's going to
[26:48] year from now or 10 years your context
[26:51] stays so month from now there are going
[26:54] to be new model then so what if you have
[26:57] your context you can make it work in um
[27:01] in any way in any situation either it's
[27:03] cloth code codex gemini cli anything and
[27:07] we meet bi-weekly so we starting on
[27:09] March 17 uh we meet bi-weekly we have a
[27:12] workshop and have us and mastermind and
[27:15] that's a program you can look through
[27:17] and people are quite excited about it so
[27:20] that's been our first cohort and I see
[27:23] very very positive feedback from people
[27:26] all right that's been the lab um and
[27:28] let's continue let's continue with more
[27:30] excited stuff. So the actual difference
[27:33] what what's actually the point like oh
[27:36] okay cloth can do grap by default we
[27:40] also have this BM25
[27:42] uh approach and we also have like this
[27:46] vector search so let's try to understand
[27:50] um let's try to understand what the
[27:52] is happening here let's let's go and and
[27:56] try uh to to benchmark this okay so I
[27:59] want to benchmark different approaches
[28:01] is um so I want you to run those queries
[28:04] and present to me results in a clear way
[28:07] so I can compare the benefits and the
[28:10] performance of each each of them. Okay,
[28:12] good. Let's make cloud work. We'll
[28:15] compare those three approaches. So right
[28:18] now we are using the GP that's the one
[28:22] that's the native tool which clo has and
[28:24] uses by default. We also have a BM25
[28:28] that's Q& search. We have uh semantic
[28:31] only. That's QMD varch. We can search
[28:36] for like cool couldn't sleep. And this
[28:38] one is actually um I think the hybrid
[28:41] like this one hybrid it's it's it's
[28:44] supposed to be the best but it takes
[28:46] right now 21 seconds. So that's a bit
[28:49] problematic. I think the QMG research
[28:52] took 2 seconds. That's fine. We are
[28:54] good. And we are getting back after 35
[28:57] seconds. Cool. Cool, cool, cool. Um, and
[29:01] here are the benchmark results. I want
[29:04] to also know like exact like row results
[29:07] which you're getting from the queries
[29:08] and please perform the analysis on this.
[29:11] So yeah, so this table is good. So let's
[29:13] look through it. Uh, we have this grap
[29:15] approach like query sleep. It has 200
[29:17] files and there is a wall of noise um
[29:20] like research workshops workshops
[29:22] templates. Then there is also BM25
[29:26] which has a more relevant information
[29:29] and we also have a semantic search.
[29:31] Okay, sorry just got got a bit off
[29:34] track. It has a relevant uh more
[29:37] relevant information about sleep
[29:38] experiments diagnostic and goals
[29:40] regarding the sleep. Then there's a
[29:42] semantic search finds meaning aha
[29:45] couldn't sleep. Nice. And then
[29:47] there there's a best ranking sleep interrupted
[29:50] at 3:00 a.m. Okay, nice. I want to look
[29:53] at the actual data. That's the most
[29:55] interesting part. So here are the parts
[29:58] and let me see if the code did a bit
[30:00] better. Cool. And here's the exact
[30:03] analysis. Uh so here we have uh grap
[30:07] where we search like across we found 200
[30:09] files and uh
[30:13] it finds all the files which contain
[30:15] staying sleep. It it has like all all
[30:19] over the place all over the place. It
[30:21] even finds this like sleep uh
[30:25] [clears throat] sleep system call that's
[30:27] completely unrelevant. Now if you try to
[30:30] do a QMD approach um what we have here
[30:34] that's actually the response. So what we
[30:37] found is um a reflection about sleep
[30:40] quality. We found experiment with
[30:42] tracking sleep fragmentation patterns.
[30:44] Uh sleep interrupt at 3:00 a.m. Um
[30:48] that's much better. Nice. I load that.
[30:51] Then there's a vector search when we
[30:53] search for couldn't sleep. And then we
[30:56] found um this much um sleep pattern.
[31:01] This one I don't get really. And this
[31:03] one I don't really get. Uh uh this one
[31:06] is because it directly about uh couldn't
[31:09] fall asleep at 3:00 a.m. Uhhuh. And
[31:11] there was a goal about bedtime
[31:14] discipline. Uh-huh. So it kind of goes
[31:17] beyond the keywords and explores the
[31:19] meaning. That's the point of that. And
[31:22] then there is a hybrid approach which
[31:24] took us 35 seconds to run and it ranks
[31:27] this note as the highest one. And this
[31:31] is um another one with a higher
[31:33] relevance. Couldn't fall back asleep.
[31:36] Uhhuh. Nice. So here is a comparison of
[31:39] each of these. So I would say grab from
[31:42] the worst. uh it introduces a lot of
[31:46] noise. So, BM25 is fast but it doesn't
[31:50] find the meaning but the results are
[31:52] quite good. Then there's a sematic
[31:55] search which finds meaning and then
[31:57] there's a hybrid approach uh which like
[31:59] actually finds the best results and does
[32:03] a comparison. uh showing how to go
[32:06] beyond graph and and find find relevant
[32:09] information even if you don't use
[32:12] specific keywords. That's that's the
[32:14] unlock. Um here are some other cool
[32:17] ideas. You can also embed different
[32:20] collections. So I have this YouTube CLI
[32:23] skill. Um just find videos uh about u
[32:29] investment. I want to learn about
[32:31] investment. I don't know for some reason
[32:34] I want to learn about investment and
[32:36] it's going to get those videos for me.
[32:38] Okay, investing for beginners here all
[32:40] of the all of the videos and then you
[32:42] can tell okay so can you get transcript
[32:45] for one of these videos from me please
[32:48] and then embed it into a new collection
[32:51] so you can actually like get a bunch of
[32:55] videos about the topic which you want to
[32:57] learn and then embed them into QMD and
[33:01] then ask questions about it. Now we are
[33:05] creating a new collection. Yeah, the
[33:08] collection should be called different.
[33:09] It's not transcripts. It's about
[33:11] learning for investment. Let's direct
[33:14] cloud a bit. Um, okay. So, we are
[33:16] creating this folder. Okay, cool. We got
[33:19] the summary. We got the summary for that
[33:22] video and we're right now adding it to a
[33:24] collection and we are embedding it um to
[33:27] enable sematic search. Okay, so it's
[33:30] embedding also the previous chunks I
[33:32] guess like all the other documents which
[33:35] I had, but you get the point. So you can
[33:37] just download bunch of materials, bunch
[33:39] of articles and ask semantically
[33:42] meaningful questions like it would be
[33:44] for notebook. And if you're using
[33:47] notebookm so you might also find this v
[33:49] this u video useful on how to connect
[33:53] cloud code to notebook lm and get the
[33:58] answers with exact citations to a
[34:01] passages to actual transcripts um
[34:06] passages and articles paragraphs and how
[34:09] to create this like knowledge graph for
[34:12] all of your notebook
[34:14] topics sources and citations they all
[34:17] become connected and the cool thing you
[34:19] can also do audio or reviews uh podcast
[34:22] which you can save and listen in your
[34:23] obsidian and there are many many
[34:25] possibilities okay so let's get back so
[34:28] it seemed that we actually embedded this
[34:31] video script and we can query and get
[34:35] the information about or we add we asked
[34:38] about index fund and here is a index
[34:40] fund make sense okay so you can go
[34:43] beyond just your vault you pull external
[34:46] sources. Nice, nice, nice. Oh, and this
[34:50] one I think is also cool ideas. Uh how
[34:53] you can uh use it um to let's say find
[34:58] the ideas that I have never acted on. Uh
[35:01] let's see what we got here. I'm really
[35:04] having fun with this. Uh so it's kind of
[35:06] new direction, new way to um to interact
[35:09] with cloth and in the memory with all
[35:12] your context. Um okay so what we got
[35:14] here is um oh CL can you summarize
[35:19] what's going on here it's a bit hard to
[35:21] parse the actual row results and having
[35:24] clo to help us to synthesize insights
[35:26] from from this data is is very very
[35:29] useful okay uh cool on October n 19th uh
[35:35] I wanted to build a PhD writing
[35:36] dashboard but never did it
[35:40] okay what else a undraw applications and
[35:44] never follow through. Sounds like me.
[35:47] Uhhuh. I had an idea to record a screen
[35:49] recording about full obsidian workflow
[35:51] but never committed. [snorts]
[35:55] Uh yeah, just [laughter] there's a lot
[35:58] of fun. You can try different queries,
[36:01] different searches and find information
[36:05] in a new way. Explore what's happening
[36:07] with all of my notes and it's happening
[36:09] all locally. all of these embeddings
[36:12] they leave on your computer. All right.
[36:15] And to conclude the section, so how how
[36:18] do you start? So I would start with
[36:20] BM25. It's it's actually like very very
[36:22] fast and it gets you 80% there. And if
[36:25] you want to add semonic meaning, I would
[36:27] recommend to do it for your transcripts
[36:29] or for your brain dumps where you can
[36:31] surface those u connections uh because
[36:34] you don't have like um specific terms
[36:36] there. You can just like oh free
[36:38] floating you have like your brain dump
[36:40] and you just throw stuff on the wall and
[36:43] uh you can find the relevant pieces and
[36:46] the connected dots and if you really
[36:49] really want to push the performance
[36:51] forward you can try to use both but it
[36:54] going to cost you half a minute. All
[36:56] right and moving forward. So moving
[36:59] forward that I touched upon that like
[37:04] this cloth code it says all your
[37:07] conversations as um files on your
[37:10] computer and I just had like the 700
[37:13] sessions in last 3 weeks and each one of
[37:16] them has decisions questions okay here
[37:18] all of them here's all all of the
[37:21] sessions and here are the statistics
[37:23] here are the files which I created here
[37:26] are the skills oh here yeah this is the
[37:28] files which I created and here is the
[37:30] example of the session. So I open this
[37:32] one open claw and I used open claw skill
[37:35] here to manage my open claw instance and
[37:38] uh it has session ID so I can always go
[37:40] back to it. It has a date and uh it has
[37:44] the skills which I used and this is the
[37:46] link to my open close skill which uh
[37:49] controls my open call and helps me to
[37:51] manage it. For the artifacts, it's the
[37:54] files which I modified or created and
[37:57] have a full conversation history saved
[38:00] right here. And those conversations I
[38:03] embed into QMD and I can ask anything um
[38:06] about those. And this is um they're
[38:10] stored in this um collections called
[38:13] sessions. Now that's cool. So we have
[38:16] all of these. we can keep track of our
[38:18] conversations in our world and we can
[38:21] search across them so that I partially
[38:23] um showed that I won't repeat myself
[38:26] here and you can also do like sematic
[38:29] search across your sessions across your
[38:31] interactions with cloud and find maybe
[38:34] frustrations with your workflows where
[38:36] you couldn't capture the exact words and
[38:39] that's the way it works and that's um
[38:41] part of memory system which I'm sharing
[38:43] uh and open open sourcing so we have
[38:46] those convers sessions are stored in a
[38:49] doc folder and then we have this skill
[38:53] which I run only once and it exports all
[38:57] of my cloud conversations into my
[38:58] obsidian as a markdown files and they
[39:01] leave there so I can change the folder
[39:04] doesn't matter and at the end of the
[39:07] each session when I close my terminal I
[39:09] have a hook which exports and embeds
[39:12] those sessions into QMD. So I don't have
[39:17] to reindex it all the time. And then I
[39:20] can use recall command to load this
[39:23] context and it's always fresh. So the
[39:25] index always always fresh. So I can get
[39:28] back to anything I had even from today.
[39:31] That's kind of the point and that's a
[39:34] pipeline for the sessions extraction if
[39:36] you're interested. So I think the key
[39:39] key here is that we parse a clear
[39:41] markdown the actual signal the actual
[39:44] user messages because row files they
[39:48] have like tool users the system prompts
[39:50] the roles we just want to have a clear
[39:53] markdown and then we embed this into our
[39:56] QMD index and then we search across this
[40:00] now that's cool yeah and that's kind of
[40:03] the whole stack um not the whole memory
[40:05] stack we have our obsidian we have
[40:07] We can run this recall skill to
[40:09] reconstruct information and we can
[40:12] access it from anywhere. Yeah. So, let
[40:15] me connect um to my computer so I can
[40:18] share the screen. Okay, that's cool.
[40:22] Okay, I just connect to it. Um here is
[40:25] open claw ready and let's wait. Okay,
[40:30] cool. So, that's how how how I go about
[40:32] stuff. That's my open claw. So okay now
[40:35] I'm just using my phone. Uh here I tried
[40:39] the reconstruction from from yesterday
[40:42] and I can ask so what kind of skills do
[40:44] you have? What are the skills available?
[40:47] And the key here is that it uses all the
[40:50] same skills which cloth hood has. So my
[40:53] obsidian bolt is shared with open claw
[40:56] as well. Now it's it goes and thinks
[40:59] about stuff right now. So, it's going to
[41:01] respond very very quickly in a minute.
[41:05] Well, there's a lot of stuff. So, that's
[41:06] kind of the idea that I have uh all of
[41:10] the those skills in my obsidian. I have
[41:12] this agent skill base um which tracks
[41:15] all of my skills and they're available
[41:18] also from open claw and how this like
[41:21] the most like you see like that that's
[41:23] that's the one uh most powerful for
[41:26] context. Yeah, this recall graph it's
[41:30] also available here. So that's uh the
[41:32] pipeline. Yeah, the whole memory stack
[41:35] and that's um open source. You can
[41:38] download it in the description. Yeah,
[41:41] and if you enjoy the content, you can
[41:43] support me by joining the lab where we
[41:46] explore CL code and obsidian together is
[41:50] a very very powerful combination and I
[41:52] hope to see you there. Uh, if you enjoy
[41:55] the content, subscribe. And I'm shipping
[41:58] one of these videos every week. And I
[42:00] put a lot of effort to making sure that
[42:03] information you're getting is high
[42:05] quality, relevant, and useful. and I'll
[42:08] see you in the next
</details>