PedroM
11 September 2026 08:44
1
Operating system
Linux
Joplin version
3.7.16
Desktop version info
Joplin 3.7.16 (prod, linux)
Device: linux, Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
Client ID: c17332a9dea6435f83e118f53671b3da
Sync Version: 3
Profile Version: 53
Keychain Supported: No
Alternative instance ID: alt1
Sync target: S3
Editor: Markdown
Revision: e3f38c6
Backup: 1.5.1
Freehand Drawing: 4.3.0
Zotero Link: 2.2.0
Sync target
S3
Editor
Markdown Editor
What issue do you have?
As an OpenRouter user, I am used to getting a Markdown and a JSON export of my chats (which I used to save inside Joplin). I would like to have the same kind of control with the AI chat inside Joplin, but I haven't found in the docs info about where to find the files corresponding to the AI output. Or is it saved inside Joplin's database? In any case, can it be backed up, exported and imported in some way?
PedroM
11 September 2026 10:05
2
I was just using AI chat and somehow I closed the conversation, and could not recover it. For this kind of situation it would be interesting to know where the chat history is stored and if it can be restored
I've created an issue about it here:
opened 11:11AM - 11 Sep 26 UTC
enhancement
high
v3.7
AI
AI chat conversations are currently held in memory only and are lost when Joplin⦠restarts or when the user clicks **Reset**. There is no way to revisit, export or back up a past conversation. Users coming from tools like OpenRouter or ChatGPT expect their history to stick around and to be able to get it out of the app.
We should persist conversations to the local database and add UI for switching between them.
**Scope**
- Store conversations and their messages in the local database so they survive restarts.
- Replace **Reset** with **New chat**, which archives the current conversation instead of discarding it.
- Add a chat switcher modelled on the Claude Code session picker: a search field at the top, then a list of conversations with the title on the left and a relative timestamp right-aligned, the current one highlighted. Titles are derived from the first user message and can be renamed; conversations can be deleted.
- Record the active note ID and a snapshot of its title on each message as it is created. Nothing reads this initially β it is stored so that a later "Open note" link, and possibly a "conversations about this note" filter, remain possible. If we don't capture it now, the information is unrecoverable for every conversation saved before the column exists.
**Decisions already made**
- **Local only.** Conversations are not sync items. Transcripts embed note content, so they stay out of sync data and the E2EE payload. Users can still export locally.
- **No retention limit for now.** Keep everything; deletion is manual. A cap or age-based cleanup can be added later if database size becomes a problem.
- **Storage is global, active conversation is per-window.** History is shared across windows, but each window can be viewing a different conversation β this matches the existing per-window chat state.
**Notes**
Conversations are not tied to a note. The chat is a single flat timeline per window; the active note is read only at send time, as context for that one message, and note switches are recorded as inline separator markers. So there is no per-note chat, and deleting a note does not invalidate a conversation β the separators stay frozen as the text captured at the time. Any note IDs embedded in stored message data are replay context and may safely dangle.
PedroM
11 September 2026 11:51
4
Thanks Laurent, will follow up on GitHub!