Where are all the metadata (chat/composer history, indexed/cached data, workplace settings etc.) stored?

They seem not to be in the project directory and cannot be moved/removed along with the project directory in the file system.

Once you move or rename the directory, you won’t be able to see them in Cursor. But if you create a new folder with the same name in the original place, they will appear in the new folder even though it’s totally not the identical project.

Can we configure where the metadata is stored? For example the .vscode folder in the root. It’d be nice if it can follow the movement of the project directory, and you could transfer your project properly to anywhere without extra efforts and attention. Now they seem to be stored in some place outside the projects themselves, and are only associated with the corresponding projects based on the path.

Why it’s designed like this? Is there any special consideration? I expect the metadata regarding each certain project is only related to itself and has nothing to share in common with others. So why is it not stored in the project itself, just like .git or .vscode folders do? You even could have .cursorrules files that are indeed stored inside the project.

I am especially confused and frustrated because I continuously work on multiple temporary projects. If the option to store those metadata inside the projects is not possible, can someone please tell me where they are stored? I would like to clean the unused ones and manually export useful chat histories.

I am personally very disturbed by the idea that there might be accumulated indexing data left on the disk, that are associated with some certain directory no longer there and you won’t be able to access those data in any regular way. It’s a common need to move folders, such as organizing or archiving. But now in the absence of a proper way to delete the metadata, it feels like some memory leak because renaming or moving your projects is like you are going to lose your pointer/address, and leave some random ghostlike garbage in your disk without proper handling and collecting.

I am sorry that my anxiety level is a bit high… any help and information would be sincerely appreciated. Thank you in advance!

Hey, currently the data you described is stored within Cursor’s storage, and not in the project folder like you suggest, although I do like the idea!

We do understand there are workflows where you may want your composer history (as an example) to stick around with your codebase (migrating machines, renaming a folder in the path, etc) so we are looking at good ways of going this at the moment.

While I don’t have a good solution to offer, my recommendation would be to move the core knowledge that is currently stored in chats into files, that you can @ if you ever need to start a new chat/composer session. Going on a step further, many users prompt the Composer to write its own “knowledge file” that contains what it knows or has done to your codebase, again, so you can @ it if needed for a new chat session.

Just to add on, your codebase indexes are stored off your machine, but these indexes do not contain any of your code. Any existing feature from VSCode, like workspace settings, are stored in their default locations.