Skip to content

Memory

Tool-use agents in TeXRA can save notes that persist across conversations. The next time you start a chat, even days later, the agent loads those notes and picks up where it left off, without you having to re-explain the project.

Dashboard — texra-paper
Memory notes
The AI assistant can save notes here to remember important information across conversations. These notes help the assistant provide more contextual and personalized help.
/memories/project-conventions.md
Pinned·1.2 KB·34 lines·Updated 5m ago·by research
Project conventions
  • Equations use \eqref, not \ref.
  • Section labels follow sec:short-name.
  • Cite with \citep inside parentheses and \citet in running prose.
  • The bibliography lives in references.bib.
/memories/notation.md
624 B·18 lines·Updated 2h ago·by review
/memories/figures.md
312 B·9 lines·Updated yesterday·by chat

The Memory tab in the Dashboard: toggle memory for chat agents, and browse, pin, open, or delete the notes agents have saved.

What memory is for

Memory is for facts the agent should remember about your project, not the conversation itself. Good things to save:

  • Conventions you want enforced (label prefixes, citation styles, notation choices)
  • Project structure (where figures live, which file is the main document)
  • Decisions you've made that the agent would otherwise revisit
  • Pitfalls you keep hitting (a compiler quirk, a finicky package, a flaky reference)

Memory is not a chat transcript. The agent doesn't replay old conversations; it reads the notes you've curated.

Enabling memory

Memory is on by default. To turn it off, open the Dashboard (Command Palette → TeXRA: Show Settings Dashboard), switch to the Memory tab, and flip the Enable memory for chat agents switch. The same switch turns it back on.

You can also go straight to the tab with TeXRA: Show Memory.

When memory is on, every tool-use agent run has access to the memory tool: it can create, view, update, rename, delete, pin, and unpin notes under /memories.

How an agent uses memory

Agents work with memory through a small set of commands on the memory tool:

CommandWhat it does
viewList /memories or read a single note
createWrite a new note (or overwrite an existing one)
str_replaceEdit a note by replacing a substring
insertInsert text at a specific line
deleteRemove a note
renameMove a note to a new path
pinMark a note as a core long-term memory (loaded at every session start)
unpinRemove the pinned status

Every note is a Markdown file. Agents see them at /memories/<name>.md; on disk they live in the shared TeXRA root at ~/.texra/workspace-storage/<workspace-name>-<hash>/memories/, which the VS Code extension, the desktop app, and the CLI all share for the same workspace. Each file carries a small YAML header that records which agent last modified it, when, and whether it's pinned. That header is what the metadata strip in the Dashboard shows.

memorytool calls · this run
  • memoryview/memoriesLists saved notes at session start
  • memorycreate/memories/project-conventions.mdWrites a new note (\eqref over \ref, sec: prefixes)
  • memorystr_replace/memories/notation.mdEdits one line — \lambda_2 is the spectral gap
  • memorypin/memories/project-conventions.mdPromotes to core memory — loaded every session

A run's memory tool calls: the agent lists existing notes, writes a new one, edits another, then pins the convention note so it loads at every session start.

Pinned vs. unpinned

Unpinned notes are searchable context: the agent can read them when it needs to, but they don't take up space in every prompt.

Pinned notes are different. They're loaded at the start of every session, so put only the highest-value notes there: conventions, hard-won techniques, recurring pitfalls. You can pin up to 10 notes; if you hit the limit, unpin a stale note before pinning the next one.

The pinned indicator in the Dashboard is a blue left border plus a Pinned badge in the metadata strip.

/memories/project-conventions.md
Pinned·1.2 KB·34 lines·by research
Loaded at the start of every session — up to 10 notes.
/memories/figures.md
312 B·9 lines·by chat
Searchable context — read on demand, not in every prompt.

Pinned notes carry the blue left border and a Pinned badge and load every session; unpinned notes stay as searchable context the agent reads on demand.

Managing memories from the Dashboard

The Memory tab shows every saved note, with pinned notes first and the rest sorted by most recently updated. For each note you get:

  • Path: the canonical /memories/... location
  • Metadata strip: Pinned · size · line count · updated · by <agent>
  • Contents: a collapsible Markdown preview rendered inline (pinned notes start expanded)
  • Actions: pin / unpin, open in editor, delete

The toolbar above the list has Refresh and Open folder. Open folder reveals the on-disk memories/ directory in your file explorer, useful if you want to edit notes by hand or check them into a side repo.

reveal memories/ on disk
/memories/project-conventions.md
Path
pin · open · delete
Pinned·1.2 KB·34 lines·Updated 5m ago·by researchMetadata strip
Contents collapsible preview
Project conventions
  • Equations use \eqref, not \ref.
  • Section labels follow sec:short-name.

One expanded note, part by part: the /memories/... path, the metadata strip, the pin / open / delete actions, and the collapsible Contents preview, with Refresh and Open folder in the toolbar above.

The same store is inspectable from a terminal. Memory is shared state, not a Dashboard feature:

texra memory
$texra memory list
Memories (3):
  • /memories/project-conventions.mdpinned; 1.2K; modified: 11/4/2025, 2:31:08 PM; by research
  • /memories/notation.md819B; modified: 10/28/2025, 10:04:51 AM; by assistant
  • /memories/related-work.md2.4K; modified: 10/21/2025, 4:48:27 PM; by research
$texra memory show memories/project-conventions.md
Memory: /memories/project-conventions.md
9 lines
# Project conventions
- Use \lambda_2 (not \mu) for the second eigenvalue.
- Cite the journal version of Chung (1997), not the preprint.

memory list prints each note with its pinned state, size, and last writer; memory show previews one note. In chat, /memory does the same.

Memory is shared across the run

Within a single run, the orchestrator and every subagent it spawns see the same /memories directory. A specialist agent can write a note that the orchestrator picks up on its next turn, and that note survives into the next conversation. This is why memory is most useful for project-level facts rather than turn-level scratch space: once it's written, it persists.

When not to use memory

  • Throwaway intermediate work: that belongs in the agent's todo list or scratch reasoning, not in a saved note.
  • Sensitive credentials: memory files are plain Markdown on disk; treat them like any other workspace file.
  • Auto-generated logs: runs already have task storage for artifacts; don't duplicate them as memories.

If you end up with a long list of stale, never-pinned notes, delete them. The agent never reads what isn't there, so a small, curated memory is usually more useful than a sprawling one.

  • ProgressBoard: see what an agent is doing in real time, including which memories it has read or written
  • Configuration: the full list of Dashboard tabs
  • Custom agents: give your own tool-use agents access to the memory tool