jabref icon indicating copy to clipboard operation
jabref copied to clipboard

Add export chat and summary feature to AI functionality

Open InAnYan opened this issue 3 months ago β€’ 9 comments

Is your suggestion for improvement related to a problem? Please describe.

Quite often, JabRef users would like to share a conversation with AI, or store it in some text file that would be read later without opening JabRef.

However, currently we don't have an option of saving the conversation or summary to some external file.

Describe the solution you'd like

Add a button to chat and summary tab that allows user to export a summary or a chat to a file.

Image Image

That should give a dropdown:

  • Export in human-readable format (Markdown)
  • Export in machine-readable format (JSON)

I got this idea from Telegram messenger, where there are also 2 options for exporting chats. Exporting in machine-readable format could be useful for other AI tools or knowledge bases.

After clicking on one of the buttons, an file dialog should open.

Additional context

Format for human-readable option (< and > denote special places in text that needs to be replaced):

## Bibtex

\`\`\`bibtex
<ENTRY SOURCE CODE>
\`\`\`

## Conversation

**User:**  

Format to store chats with ai in Markdown?

**AI:**  

A common and clean way...

\ should not be added, I added them because there are nested backticks in this issue description.

Format for machine-readable option:

{
    "entry_bibtex": "<ENTRY SOURCE CODE>",
    "entry": {"<FIELD_1>": "<VALUE_1>", "<FIELD_...>": "<VALUE_...>" },
    "latest_provider": "<CURRENTLY SELECTED PROVIDER>",
    "latest_model": "<CURRENTLY SELECTED MODEL>",
    "timestamp": <DATE AND TIME>",
    "conversation": [
        {"role": "user", "content": "<...>"},
        {"role": "assistant", "content": "<...>"}
    ]
}

Notes on machine-readable format:

  • conversation should follow OpenAI API format.
  • We paste entry in dictionary form because some programs would like to use this as metadata naturally without parsing bibtex.
  • I added latest_ prefixes, because the model is not saved in the data model of a conversation, and it only depends on current JabRef preferences.
  • Timestampt is not available for chats.
  • However, summaries have recorded chat model, provider, and timestamp, which you can use

InAnYan avatar Sep 13 '25 07:09 InAnYan

This will be my first contribution to JabRef. I would like to give it a try. Could you please assign this issue to me?

CXZHANG0508 avatar Nov 27 '25 02:11 CXZHANG0508

πŸ‘‹ Hey @CXZHANG0508, looks like you’re eager to work on this issue β€” great! πŸŽ‰ It also looks like you don't know how to assign issues to yourself. Please read our CONTRIBUTING.md to find out how. It will also guide you in other aspects of contributing to JabRef.

github-actions[bot] avatar Nov 27 '25 02:11 github-actions[bot]

/assign-me

CXZHANG0508 avatar Nov 27 '25 02:11 CXZHANG0508

πŸ‘‹ Hey @CXZHANG0508, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and set up your local development workspace by following the steps in our workspace setup guidelines to get started smoothly.

For questions on JabRef functionality, you can consult the JabRef Guru. For questions related to the codebase, please start using DeepWiki.

In case you encounter failing tests during development, please check our developer FAQs!

Still facing issues or having more questions? Feel free to ask here on GitHub or on JabRef's Gitter chat. Please don't hesitate to open a (draft) pull request early on to show the direction you are heading towards if unsure.

Happy coding! πŸš€

github-actions[bot] avatar Nov 27 '25 02:11 github-actions[bot]

/assign-me

Shubh03-m avatar Dec 02 '25 19:12 Shubh03-m

πŸ‘‹ Hey @Shubh03-m, thank you for your interest in this issue! πŸŽ‰

We're excited to have you on board. Start by exploring our Contributing guidelines, and set up your local development workspace by following the steps in our workspace setup guidelines to get started smoothly.

For questions on JabRef functionality, you can consult the JabRef Guru. For questions related to the codebase, please start using DeepWiki.

In case you encounter failing tests during development, please check our developer FAQs!

Still facing issues or having more questions? Feel free to ask here on GitHub or on JabRef's Gitter chat. Please don't hesitate to open a (draft) pull request early on to show the direction you are heading towards if unsure.

Happy coding! πŸš€

jabref-machine avatar Dec 02 '25 19:12 jabref-machine

Hi @Shubh03-m : Just to clarify to avoid duplicate work: I have already implemented this feature and my Pull Request #14486 is currently under review. I was originally assigned to this issue, but I had to close my first PR to fix a branch naming issue. Unfortunately, closing that PR caused the bot to automatically unassign me. My work is fully complete and ready for merge.

CXZHANG0508 avatar Dec 02 '25 23:12 CXZHANG0508

⚠️ Issue Already Assigned

Hi @CXZHANG0508, this issue is currently assigned to @Shubh03-m.

[!NOTE] If no progress is made within 21 days, the issue will be automatically unassigned.

Options for contributors
  • Wait for availability: The issue may become available if auto-unassigned
  • Collaborate: You can ask the assignee if they want help
  • Maintainer assistance: A maintainer can add you as co-assignee if appropriate

jabref-machine avatar Dec 02 '25 23:12 jabref-machine

@CXZHANG0508 I fixed the assignment. Now, it should be OK. Sorry for the misunderstanding on my side; I did not follow up the opening and closing and re-assignment properly.

koppor avatar Dec 04 '25 14:12 koppor

We think that this issue was fixed. Please head to https://builds.jabref.org/main to download a development build and try it out.

For any feedback, add a comment to the pull request at https://github.com/JabRef/jabref/pull/14486.

github-actions[bot] avatar Dec 17 '25 19:12 github-actions[bot]