"Saved Memories" in Cursor and their viability?

Over the last couple of months, I’ve worked on three different computers. A Windows 11+WSL2 PC, an old 2019 Intel Macbook Pro, and a new 2024 M4 Macbook. I’ve moved back and forth between the first two a fair amount, but due to the issue I’m going to be describing here, since receiving this new M4 from the company I’m working for, I’ve stuck with just working on that (and there are other reasons as well, Cursor has some rather severe issues on PC with W11+WSL2).

So the issue at hand here is the viability of the “Saved Memories” feature of Cursor. I don’t know when this dropped…maybe 1.2, but perhaps before that. I first started using it on the PC, when I noticed little notifications appearing in the lower left asking if I wanted to keep memories. I then found the saved memories area in the cursor settings, and started keeping a lot more memories.

I started keeping memories on the old Intel Mac, and I guess I had assumed that the memories would move around with me via my account. However, after a while, I noticed that the agent would do things I thought I’d instructed it not to do, and wasn’t doing things I thought I had instructed it to do…VIA the saved memories! Once I investigated deeper, I discovered that I had different sets of memories on the mac vs. pc, except the first…I think it was 4 or 5 first memories I created (somehow, those seemed to end up on the mac as well, even though they were created on the PC.) ALL the other memories, were only one one or the other.

So as I went back and forth between working on these two different devices, the behavior of the agent started to diverge more and more, and the behavior was often unacceptable. So, naturally, I tried to export the memories… Which was impossible. I went so far as to enlist the agent’s help, and after a few prompts it started delving DEEP into the innards of Cursor’s local data, including an SQLite database. It eventually found “memories” which it started working on exporting…however, there were hundreds of them! I had maybe a few dozen “saved memories”, and as I inquired about that I discovered that Cursor actually maintains a long term history and memory (vectorized, it seems) of all the chats you have had with the agent.

I actually thought that the long term memory stuff was cool, and it explained why the agents on both the old mac and pc, were learning from working with me, even when I did NOT have “saved memories” for certain things (or even cursor rules.) However, the agent couldn’t seem to find anywhere that the saved memories themselves, were in fact actually saved, or how. I had been unable to find an export button in the UI myself. So eventually, I just manually copied each one by editing them, stuffed em in a text file on each system, and then tried to add them back on the opposite machine. Turned out, though, that there wasn’t even an add button to manually add memories….

In the long run, what I discovered is that “Saved Memories” are, apparently (despite the first few seeming to flow from the pc to the mac…somehow?), machine specific, can only be added IF the ui decided to capture a memory, which itself seems to be largely arbitrary (I did try to instruct the agent to add memories a few times…at first they indicated they succeeded, however later when I tried to find those memories in the Saved Memories settings, they were not there…and deeper inquiry with the agent eventually revealed they were hallucinating that they could add memories to Cursor!!!)

So there is no deterministic, concrete way to add memories, no way to export them, they don’t seem to follow your user account from computer to computer…

Comparing “Saved Memories” to .cursor/rules/*, does anyone actually use the memories feature? Or do they just use rules? I eventually manually gathered up all the memories from all three machines, and on the M4, I created a few different rules (.mdc files) to capture different sets of these memories. I am still fiddling with how to apply them (originally had always apply, but then that adds a fair amount of additional context, and often to some activities that don’t need them, or maybe need an entirely different set, or subset, etc. and apply intelligently doesn’t seem to work right.) So I’m not sure there is a way to actually restore all of these memories (several dozen worth now) and use them. I don’t even know how Cursor determines when to apply a memory, vs. a rule, or how memories and rules interact.

So lately, I have not been keeping any of the memories that get created (which again, is still an entirely random and arbitrary process as far as I can tell, and even when I say “Please remember this” or something to that effect in the agent, it doesn’t always lead to a memory being saved by Cursor.) I am honestly wondering what Cursor’s plan with these is in the long term. If they are not attached to your Cursor account, and can’t be shared through the cloud, for multi-computer users, I think that greatly hampers their efficacy. Further, there doesn’t seem to be a lot of info about how they are applied or interleaved with rules. Since there are no real management tools around memories, outside of I think, the ability to remove them…

Are they going to stick around? Should they be used, or are rules better? How does a memory get applied, vs. a rule? Which takes precedence…rule or memory? Oh also, are these applied…workspace level? Project level? Or are they user/global level?

I feel like this is kind of a half-baked feature, and could really use some TLC. Either that, or, remove the feature entirely, as it just seems to confuse things when you start bringing rules into the mix as well. Rules at least, being file level, can easily be transferred among computers (or even among team mates, even committed to git if you want).

1 Like

Hey, thanks for the report, we’ll investigate it. Could you also let me know which version of Cursor you’re using?

Oh, I’d say this has spanned versions 1.2 through 1.4.x so far. I’ve stopped using them recently. The app still generates them, but I have not accepted any more thus far. Just not sure how they are intended to be used, vs. rules.

They lack a number of things I think are probably necessary to make them really viable. One, they aren’t attached to your account or shared across machines. So if you are a multi-machine user, then you can get some unexpected behavior as different machines have different memories. Two, they don’t seem to be scoped in any way, they are not hierarchical. There are just memories. Rules on the other hand, can be scoped since they can be stored at different directory levels, thus allowing you to control how they apply to any given workspace or project (or even part of a project.) Rules apply by hierarchical scope, memories just seem to exist globally?

I am just not really sure how to use them effectively, I think they need better functionality to really be useful, and the cross-computer issue is problematic. I also wonder if they conflict with rules, and maybe…either it would be best to use just memories, or use rules, but not both?