# Composer lacks memory

**URL:** <https://forum.cursor.com/t/composer-lacks-memory/38017>\
**Category:** Discussions\
**Created:** [December 29, 2024, 8:19pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017 "2024-12-29T20:19:08Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Signal](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/signal/32/18633_2.png) [@Signal](https://forum.cursor.com/u/Signal)\
**Post date:** [December 29, 2024, 8:19pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/1 "2024-12-29T20:19:09Z")

</div>

I usually have to open a new Composer window due to heavy usage that quickly makes the recent window become very slow and unusable. So whenever I open a new Composer window and tried to continue from where I left off I realized that the new Composer have no idea of what I’v been doing in the previous window. Is there a solution to this?

---

<div class="post-metadata">

**Author:** ![Signal](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/signal/32/18633_2.png) [@Signal](https://forum.cursor.com/u/Signal)\
**Post date:** [December 29, 2024, 8:39pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/2 "2024-12-29T20:39:54Z")

</div>

Because of this lack of long term memory, Composer misbehaves badly and doesn’t align itself with my project’s goals anymore. Composer works great when on a single window but if you want to continue seamlessly in another window then you’ve got a lot of catching up to do. I’m feeling frustrated right now.

---

<div class="post-metadata">

**Author:** ![Dhop14](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/dhop14/32/15664_2.png) [@Dhop14](https://forum.cursor.com/u/Dhop14)\
**Post date:** [December 29, 2024, 8:41pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/3 "2024-12-29T20:41:57Z")

</div>

Modularization! Break up your workflow into smaller tasks. Once a task is complete, open a new composer window to start the next task. LLMs and AI agents will only retain so much context.

---

<div class="post-metadata">

**Author:** ![Signal](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/signal/32/18633_2.png) [@Signal](https://forum.cursor.com/u/Signal)\
**Post date:** [December 29, 2024, 9:10pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/4 "2024-12-29T21:10:19Z")

</div>

I suspect the problem is with the context window. For me modularization won’t work because each module can’t be in isolation. This means the new module must seamlessly start from where the previous stops, and for that to happen the new module MUST be context aware. So modularization will still bring me back to what I’m trying to avoid. In fact it makes it a lot worse for me.  
I’d suggest if Cursor can implement auto-RAG. This will work in a similar way to Notepad but in auto-mode.

---

<div class="post-metadata">

**Author:** ![surjir](https://avatars.discourse-cdn.com/v4/letter/s/aeb1de/32.png) [@surjir](https://forum.cursor.com/u/surjir)\
**Post date:** [December 29, 2024, 9:33pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/5 "2024-12-29T21:33:49Z")

</div>

I feel you, mine got to the point where it simple cannot correctly read one line of code anymore.

 ![Screenshot 2024-12-29 at 21.31.47](https://us1.discourse-cdn.com/cursor1/original/3X/7/e/7e5895a2370b9469a9ccb7e7c4db158e79cdbe6f.png)

---

<div class="post-metadata">

**Author:** ![Signal](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/signal/32/18633_2.png) [@Signal](https://forum.cursor.com/u/Signal)\
**Post date:** [December 31, 2024, 2:15pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/6 "2024-12-31T14:15:24Z")

</div>

Is there any solution to this? I can’t possibly be starting from scratch, trying to provide context manually, every time I start a new conversation in a new composer window.

---

<div class="post-metadata">

**Author:** ![wheattoast11](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/wheattoast11/32/13424_2.png) [@wheattoast11](https://forum.cursor.com/u/wheattoast11)\
**Post date:** [December 31, 2024, 6:48pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/7 "2024-12-31T18:48:34Z")

</div>

Ask it to take notes on current progress in a markdown down and give itself a prompt for the next composer session. State everything you’ve said in this post as the context that should be kept in mind so the LLM can be more thoughtful about how it captures context.

Attach that as the first attachment of new composer session and ask it to search through the codebase based on what the doc says and contextualize/create a plan for the new session.

Read the response and make sure the LLM knows what it’s talking about. If not, clarify and ask it to search some more, contextualize more deeply, and then restate the plan.

Usually 1-2 iterations will do the trick, and then you can continue pretty easily.

You can think of the notes as memories and share the notes as memories for the subsequent chat. It should be part of good project management anyway. At minimum humans should be guiding how the LLM should document its notes and thinking and summarization of progress vs those.

Also, use Gemini with its massive context in normal composer to bridge the gap. Ie. Create the document, ask Gemini to review it and do more code search to refine/augment it. Then tell Gemini you want a prompt that can be used with the notes doc to give to Claude in agentic composer.

Use that prompt and the revised doc. Since Gemini has a 10x longer context size than Claude, it’s a great intermediary

---

<div class="post-metadata">

**Author:** ![Signal](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/signal/32/18633_2.png) [@Signal](https://forum.cursor.com/u/Signal)\
**Post date:** [January 1, 2025, 4:25pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/8 "2025-01-01T16:25:23Z")

</div>

This looks like a solid plan but a lot of work at the same time! I’m trying to focus on coding and not taking notes. Guess that’s the only way out right now.

---

<div class="post-metadata">

**Author:** ![jjaimealeman](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/jjaimealeman/32/1076_2.png) [@jjaimealeman](https://forum.cursor.com/u/jjaimealeman)\
**Post date:** [January 4, 2025, 6:23pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/9 "2025-01-04T18:23:09Z")

</div>

Before starting my most recent NextJS project, I spent some time with ChatGPT (web UI) and started with a rough explanation, outline of the project, full scope, intended goals, explanation of every level and milestones of the project. I would tell ChatGPT to brainstorm with me and ask questions about the project and anything it needed clarification on. We did this Q&A session several times until I was satisfied with the resulting “plan” for my project. I saved that as `gpt-planning.md` in the root of the project. I worked on this plan for two days, off and on.

In Cursor + Composer, started the new project (PayloadCMS), told it to read the gtp-planning file and told it to break down that massively overwhelming file into more manageable files. It produced these:

```auto
gpt-brainstorming.md
gpt-future-features.md
gpt-milestone-planning.md
gpt-next-days-agenda.md

```

It’s only been 6 days since I have started this project, my largest yet.

The most important of those files for me is `gpt-next-days-agenda.md`. Throughout my coding “session” for the day, as we (Cursor & Me) progress through the project, encounter errors, find solutions, brainstorm on new features, etc. I tell it to add to the `gpt-*.md` file. We’re constantly editing `gpt-milestone-planning.md`, it has a bulleted list that we mark off, headings, and version releases notes.

`gpt-next-days-agenda.md` has Current Project Status, Completed Today, Next Steps, Current Focus. Throughout our session, if I feel it’s straying off the project, it tries installing a package we don’t need, or it proposes a fix to a problem we fixed previously - I tell it to refer to our Docs (gpt-\*.md files). So far this has kept my project on track without fail.

This is my first time using NextJS and PayloadCMS.  
As we iterate through our code, I come up with new ideas on existing features and new features. I literally tell Composer to brainstorm with me, and we added some new docs:

```auto
gpt-image-management-code.md
gpt-member-mods.md
gpt-playwright-testing.md
gpt-server-setup.md

```

I started with a generic NextJS `.cursorrules` from [https://dotcursorrules.com/](https://dotcursorrules.com/) and have even successfully had Cursor update it as we progress.

While Composer may lack “memory”, this is what I have done to keep it on track.

---

<div class="post-metadata">

**Author:** ![Signal](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/signal/32/18633_2.png) [@Signal](https://forum.cursor.com/u/Signal)\
**Post date:** [January 4, 2025, 6:37pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/10 "2025-01-04T18:37:10Z")

</div>

what is the structure of your codebase?

---

<div class="post-metadata">

**Author:** ![numonium](https://avatars.discourse-cdn.com/v4/letter/n/7ab992/32.png) [@numonium](https://forum.cursor.com/u/numonium)\
**Post date:** [February 6, 2025, 3:52pm UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/11 "2025-02-06T15:52:20Z")

</div>

Would you be able to provide a Gist of the initial “planning” prompt(s)?

This is an interesting approach, glad to see it works!

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [June 18, 2026, 10:27am UTC](https://forum.cursor.com/t/composer-lacks-memory/38017/12 "2026-06-18T10:27:00Z")

</div>


