LibreOffice and Google Summer of Code 2025: The results

Google Summer of Code logo

This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC), a global program focused on bringing more developers into free and open source software development. Seven projects were finished successfully. Contributors and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 26.2 in early February 2026!

You can experiment with the new features by using daily builds and report any problems in our bug tracker.


Import Markdown files into LibreOffice Writer by Ujjawal Kumar Chouhan

Mentors: Thorsten Behrens (Collabora), Ilmari Lauhakangas (TDF)

Requests to add support for the simple text formatting language known as Markdown to LibreOffice have been more and more frequent. These days Markdown is often encountered in forum posts, chat messages and readme files. In fact, the content of the website of The Document Foundation is written in Markdown.

Thanks to this project, LibreOffice now supports importing Markdown files and pasting Markdown content into Writer as well as pasting Markdown tables into Calc. The supported dialect is CommonMark with GitHub-style table syntax and the library used is MD4C.

Additionally, Collabora developers added support for exporting to Markdown from Writer.

Learn more about Markdown import in the final report.


New Dialog To Edit Table Styles by Karthik Godha

Mentors: Heiko Tietze (TDF), Rafael Lima

LibreOffice does not yet support proper styles for tables, but has a system for applying direct formatting to them. Before Karthik’s work, it was only possible to add new formatting templates, while now existing ones can be edited as well. At the time of writing this, the feature has not yet been merged into the code base, but hopefully it will appear in the next weeks.

Learn more about the table styles project in the final report.


Python code auto-completion by Manish Bera

Mentors: Xisco Faulí, Hossein Nourikhah (TDF)

Power users are sure to love the improvements brought to Python support by this project. Now Python IDEs are able to provide auto-completion for LibreOffice UNO API methods and properties, flag type errors and display information about parameters and types.

Learn more about the Python auto-completion project in the final report.


BASIC IDE code auto-completion by Devansh Varshney

Mentors: Jonathan Clark, Hossein Nourikhah (TDF), Rafael Lima

BASIC macro developers are not forgotten: this project implemented an object browser, allowing the macro author to see all the available and used methods and properties, including the whole UNO API. A helpful view for details is shown, reducing the need to dig through the API documentation. After this foundational achievement, the next goal is to add context-aware auto-completion to the BASIC IDE editor.

Learn more about the BASIC auto-completion project in the final report.


Rust UNO Language Binding by Mohamed Ali Mohamed

Mentor: Stephan Bergmann (Collabora)

Rust is a popular type safe programming language, which can now be used to write LibreOffice extensions or do any kind of scripting and processing via the UNO API.

Learn more about the Rust binding in the final report.


Implement report builder in C++ by Adam Seskunas

Mentors: Michael Weghorn, Hossein Nourikhah (TDF)

The Report Builder produces Writer documents from Base files. While it might not be the most popular feature in LibreOffice, there have been increasing concerns about the maintainability of the current Java-based tool. The first group of people to celebrate Adam’s reimplementation will surely be Linux package maintainers, who had even started omitting the feature entirely. At the time of writing this, the feature has not yet been merged into the code base.

Learn more about the C++ Report Builder in the final report.


Rework Impress slideshow to use DrawingLayer primitives by Shardul Vikram Singh

Mentors: Thorsten Behrens, Sarper Akdemir (Collabora)

This is important modernising work happening under the hood of Impress. The project mostly completed the rework on Linux, laying a foundation for rendering modernisation on other platforms. The code itself lives in a separate feature branch for now and will not be merged for LibreOffice 26.2.

Learn more about the slideshow rework in the final report.

Wrapping up

Many thanks to all contributors who spent their summer time improving LibreOffice. You are awesome! And special thanks also to the mentors who always put so much love and energy into these tasks. That’s what makes LibreOffice rock.

Now we are looking forward to next year’s GSoC. If you are interested, why not prepare early? Learn more at out wiki page where some ideas are listed.

Participating in GSoC is a great way to build your skills, and show future employers what you’re capable of!

Projects selected for LibreOffice in the Google Summer of Code 2025

The LibreOffice Google Summer of Code projects have been selected for 2025.

  • Adam Seskunas – Implement Report Builder in C++: replacing the current Java-based Report Builder with a new solution will improve maintainability and remove one of the last remaining dependencies on Java.
  • Karthik Godha – New dialog to edit Table Styles: Writer and Calc have a feature called AutoFormat styles with the possibility to add custom styles. This project will make it possible to edit existing table styles.
  • Devansh Varshney – BASIC IDE code auto-completion: rudimentary auto-completion for BASIC macro authors is already available, but this project will make the feature much more helpful.
  • Manish Bera – Python code auto-completion: currently there is no support at all for Python auto-completion when developing scripts for LibreOffice, so this will be quite a welcome addition.
  • Mohamed Ali Mohamed – Rust UNO language binding: last year LibreOffice received support for Lua and the latest .NET and now it’s time to make it possible to use the API with Rust.
  • Ujjawal Kumar – Import Markdown files into Writer: Markdown is a rather popular markup language for quickly formatting text in blog content, comments, chats and more. Requests to support it have increased recently, so it makes sense to tackle it.
  • Shardul Vikram Singh – Rework Impress slideshow to use DrawingLayer primitives: this is one of those projects that are incomprehensible to most users, but really important for the long term maintenance of the code.

Good luck to the contributors – we appreciate their work on these important features and improvements! And thanks to our mentors for assisting them: Thorsten Behrens, Stephan Bergmann and Sarper Akdemir (allotropia); Rafael Lima; Jonathan Clark, Heiko Tietze, Xisco Faulí, Michael Weghorn and Hossein Nourikhah (TDF).

Between August 25 and September 1, contributors will submit their code, project summaries, and final evaluations of their mentors. Find out more about the timeline here, and check out more details about the projects on this page.

LibreOffice is in the Google Summer of Code 2025!

GSoC logo

Everyone loves having shiny new features in LibreOffice. But how do we get them? Many are developed by volunteers and people in the ecosystem.

But another great source of new features is the Google Summer of Code (GSoC), a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with open source organisations on a 12+ week programming project under the guidance of mentors.

And we’re happy to announce that for 2025’s GSoC, LibreOffice is once again taking part!

Find out more here

LibreOffice QA Team: Fixing a bug in three days

LibreOffice QA Team on Matrix-style code background

LibreOffice is used by 200 million people around the world. Every major release goes through extensive testing, with Alpha, Beta and Release Candidate versions – and there are regular monthly minor updates to fix issues too. The QA Team analyses bug reports from users, and here’s an example of how quickly they work when everything goes to plan:

  • 2025-01-21 21:14:02 UTC: Bug report submitted.
  • 2025-01-23 18:16:53 UTC: raal from the QA Team looks at the bug report and rules out Linux.
  • 2025-01-25 06:05:46 UTC: Saburo confirms that the error occurs on Windows. And – which is extremely helpful – finds the commit that has caused the error.
  • 2025-01-25 08:08:16 UTC: raal informs the affected developer.
  • 2025-01-25 09:54:38 UTC: Mike Kaganski provides a bug fix.
  • 2025-01-25 11:35:15 UTC: After the bug fix has been successfully built and tested on all supported operating systems, it is included in the next daily build of LibreOffice.

Learn more about the QA Team, and give them a hand to gain experience in the world of QA

localwriter: An optional LibreOffice Writer extension for local generative AI

localwriter screenshot

LibreOffice is a privacy-oriented office suite that runs on your own computer and doesn’t include AI features out-of-the-box. But we know that many users are interested in combining AI tools with the suite, so we talked to John Balis who is working on a (fully optional!) LibreOffice extension called localwriter. Here’s what he had to say…

What does the extension do?

Localwriter is a libreoffice writer extension to allow for inline generative editing with local inference. It can be used with any language model supported by Ollama or text-generation-webui. This extension adds two powerful commands to LibreOffice Writer:

  • Extend Selection – Uses a language model to predict what comes after the selected text. There are a lot of ways to use this. Some example use cases for this include, writing a story or an email given a particular prompt, adding additional possible items to a grocery list, or summarizing the selected text.
  • Edit Selection – A dialog box appears to prompt the user for instructions about how to edit the selected text, then the selected text is replaced by the edited text. Some examples for use cases for this include changing the tone of an email, translating text to a different language, and semantically editing a scene in a story.

When did you start working on it?

I started working on localwriter in July 2024, because I wanted an AI tool to assist with my writing that would benefit from the intrinsic advantages in terms of availability (can’t lose access), confidentiality (doesn’t leak data), and integrity (no surprise model version changes) that come with using a fully open source local AI stack instead of a third-party API. I feel it is really important to embrace learning to benefit from artificial intelligence without sacrificing agency, and this software follows from that line of thinking.

What are the current limitations, and what’s coming next?

localwriter currently only supports LibreOffice Writer, although Calc support is in development and will be offered in the next release. Another limitation is that it does not support streaming, and does not offer a “Chat with document” feature.

How can others help to improve it?

There are a ton of open feature requests in the repository from several users, which should be really easy for an experienced LibreOffice extension developer to complete. I can easily set up anyone interested with a task to work on. Tests would be welcome, as currently it doesn’t have any tests. Also, donating to me helps me allocate my own time towards development.

Get the extension here

Another eight videos from the LibreOffice Conference 2024

The next batch is here! We’re editing and uploading more videos from our recent conference – these ones covering C++, the LibreOffice WebAssembly port from Allotropia, and Collabora Online. Use the icon in the top-right to choose videos from the playlist:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.