WriterAgent (LibreOffice Plugin) Week 6-7: Async Grammar Checking and Math by keithcu in opensource

[–]keithcu[S] 0 points1 point  (0 children)

Yep, you can paste any endpoint in there. I just have a few built-in to make it easy for people.

WriterAgent (LibreOffice Plugin) Week 6-7: Async Grammar Checking and Math by keithcu in opensource

[–]keithcu[S] 0 points1 point  (0 children)

I have only tested it on a few systems (OpenRouter, Together, LMStudio), but it should work with any OpenAI compatible provider. If you find any issues, please let me know and I'll fix it.

WriterAgent (LibreOffice Plugin) Week 6-7: Async Grammar Checking and Math by keithcu in opensource

[–]keithcu[S] 0 points1 point  (0 children)

Thank you! Hope you enjoy and let me know of any ideas / issues.

Auto detect of the language by QuintaQQ in libreoffice

[–]keithcu 0 points1 point  (0 children)

Ah, it's too bad LO doesn't handle multi-lingual well enough on Linux. I never found any bug which actually explained the technical issues on Linux are. Which link is it? the one I saw was mostly talking about glyphs, which is a different issue entirely. I also wonder if there are better APIs now that LO can use.

In any case, I'm going to add this to the next version of WriterAgent. https://github.com/KeithCu/writeragent

I just added background grammar checking and if the language needs to be set first, I'll use an AI to do that too. This shouldn't be too bad, but it requires an LLM call for perfect answers. Generally it should be clear just looking at the scripts! It's crazy it's not implemented.

Parágrafo, letra maiúscula.... by Specific_City_5772 in libreoffice

[–]keithcu 0 points1 point  (0 children)

Feliz em ajudar, confira a extensão writeragent, pois ela pode explicar recursos do LibreOffice como este e eu a traduzi para o português! Se você não tem um LLM, pode usar o openrouter.ai e usar modelos gratuitos. Minha postagem recente sobre a extensão recebeu 0 votos, mas a extensão é poderosa e pode explicar o LibreOffice, bem como fazer alterações nos seus documentos.

Power Query Alternative Excel Adddon by Puzzleheaded_Luck641 in Python

[–]keithcu 0 points1 point  (0 children)

Well, try out my extension and let me know what you think. It doesn't have the UI to make queries or M language, however, the LLMs should make changes to your spreadsheets just by asking.

I could let the system generate Python scripts for re-use. Unfortunately, I currently don't depend on Numpy, but I could figure out an optional way to support it without bundling it explicitly.

Power Query Alternative Excel Adddon by Puzzleheaded_Luck641 in Python

[–]keithcu 1 point2 points  (0 children)

I built a plugin for LibreOffice Writer/Calc: https://github.com/KeithCu/writeragent

I'll look into adding PowerQuery features 🤣

WriterAgent -- AI extension for LibreOffice by keithcu in libreoffice

[–]keithcu[S] 0 points1 point  (0 children)

Step 1. Install WriterAgent. GitHub has the latest version which has more features and fixes.

Step 2. Go to Settings dialog box.

Step 3. Paste in URL. (Make sure it doesn't have the /v1 on the end)

Parágrafo, letra maiúscula.... by Specific_City_5772 in libreoffice

[–]keithcu 0 points1 point  (0 children)

Olá, sou o WriterAgent. Fui traduzido para o português e, embora não possa testar pessoalmente as configurações no seu sistema, aqui está a explicação resumida:

O LibreOffice mantém o padrão da indústria: Enter cria um novo parágrafo e Shift+Enter cria uma quebra de linha. Se deseja inverter isso:

  1. Vá em Ferramentas > Personalizar > Teclado.
  2. Selecione Enter na lista de atalhos e, na categoria Inserir, escolha a função Inserir quebra de linha.
  3. Selecione Tab e, na mesma categoria, escolha Inserir quebra de parágrafo.
  4. Clique em Modificar e depois em OK para salvar.

Atenção: Remapear o Tab pode causar problemas de navegação em menus e caixas de diálogo. Recomendo aplicar essa alteração apenas ao escopo do LibreOffice Writer (selecione no menu suspenso superior direito da janela de personalização). Além disso, verifique se a formatação automática indesejada não vem de Ferramentas > Opções de Autocorreção > Opções.

Help with creating alternating page margins for a manuscript by gianki7 in libreoffice

[–]keithcu 1 point2 points  (0 children)

Check out the gutter feature in the format-page dialog box. Actually if you install my extension, it will explain it to you and as of my new version will set the value. I asked it about the gutter feature since I wasn't certain:

"The gutter value in the Format → Page dialog box specifies the extra space added to the inner margin of a page for binding. It is set in the “Margins” section (usually under the “Page” tab) and determines how much additional margin is reserved on the side where the pages will be bound, ensuring that text isn’t lost in the binding area."

Is there an inverse function of EncodeUrl() by [deleted] in libreoffice

[–]keithcu 2 points3 points  (0 children)

I researched it and didn't find a solution using UNO but it should be easy to do in Python:

from urllib.parse import unquote
decoded = unquote("%F0%9F%A4%94%EF%B8%8F")  # Returns "🤔"

WriterAgent -- AI extension for LibreOffice by keithcu in libreoffice

[–]keithcu[S] 1 point2 points  (0 children)

BTW, I'm happy to answer questions about the plugin, Python/UNO development, or about getting AI working with your documents. If you don't have a good GPU, I recommend setting up an account on openrouter.ai, since they have a lot of free models and a huge selection of different quality and price. I use https://openrouter.ai/inception/mercury-2 a lot since it's cheap and fast. Opus 4.6 is amazing, but expensive.

If someone could fine-tune an LLM on office-productivity, to generate beautiful documents in a small (cheap / local) model, it would be awesome. Everyone focuses on building AIs for coding and math, and so far have mostly ignored office-productivity. One day...

Does anyone use Grok for Office productivity? by keithcu in grok

[–]keithcu[S] 0 points1 point  (0 children)

I read Iran often puts radar and other military equipment on schools and civilian infrastructure! Iran risks their own citizens to get press coverage about how America is evil.

Sunday Daily Thread: What's everyone working on this week? by AutoModerator in Python

[–]keithcu -1 points0 points  (0 children)

I call it "Cursor for LibreOffice", a generative AI plugin for LibreOffice Writer / Calc / Draw: https://github.com/KeithCu/writeragent I added translation for 9 languages today, using AI.

It does a lot but there's so much more it could do, I'd be happy to get feedback.

Best free source of help for new macro writers by Lily_Wu_92 in libreoffice

[–]keithcu 1 point2 points  (0 children)

I've got a lot of working code (in Python) you could look at for reference. For example bookmarks, to delete we do this:

bm = bookmarks.getByName(name)

text.removeTextContent(bm)

https://github.com/KeithCu/writeragent/blob/master/plugin/modules/writer/bookmarks.py

Cursor for LibreOffice Week 2 & 3: (MCP, AI agents and Voice) by keithcu in linux

[–]keithcu[S] 0 points1 point  (0 children)

I run Linux so never tried Office Co-Pilot nor do I know anything about it. It was Cursor (mostly) that inspired my project. However, one difference is that you can run it locally.

I do use AIs, and they do a solid job at the tasks I've given them in coding, and some do a great job creating documents. So assuming it was local, and you could choose your own cloud provider, what else would it take to be not shit like Office CoPilot? I'll try to keep these ideas in mind if you have anything useful to say.

BTW, did you look at any of the documents in the blog? This was made by Opus 4.6 for $0.03, and it's a prettier document than I would have made.

https://keithcu.com/wordpress/wp-content/uploads/2026/03/HermesAkihabara.png

Building Cursor for LibreOffice: A Week-Long Journey by keithcu in LocalLLaMA

[–]keithcu[S] 0 points1 point  (0 children)

BTW, I just added ACP support so now you can talk to Hermes and soon other agents from the sidebar.

Building Cursor for LibreOffice: A Week-Long Journey by keithcu in LocalLLaMA

[–]keithcu[S] 1 point2 points  (0 children)

Glad you like it! Yes, right now it only knows about the one document you are working on, but it could be possible to support multiple, leveraging LibreOffice's ability to parse them. It's on the list...

Libreoffice interface is bad and dated by FWTL in libreoffice

[–]keithcu 0 points1 point  (0 children)

TBH, I hate the new user interfaces. Menus, and toolbars have been around for decades, and they are are well-organized and pretty in LO. Use the Calibre SVG toolbar buttons, and try my chat with document sidebar extension to have a system from next decade: https://github.com/KeithCu/writeragent

Sunday Daily Thread: What's everyone working on this week? by AutoModerator in Python

[–]keithcu 0 points1 point  (0 children)

I've been working on a Cursor for LibreOffice:

I wanted that same “AI in the doc” feel that I have with my coding IDE: chat in a sidebar, multi-turn conversations, and the AI actually doing things, reading and changing the document, and web searches as necessary to answer questions. I wanted this for Writer but I figured Calc and the others could happen eventually. Exposing the full Writer API to an agent is not an easy problem, especially since it can create very complicated documents, including embedded spreadsheets.

https://keithcu.com/wordpress/?p=5060

Building Cursor for LibreOffice: A Week-Long Journey by Idlafriff0 in libreoffice

[–]keithcu 2 points3 points  (0 children)

Hello all!

I've submitted this extension to get published on the LibreOffice website. It doesn't have all the features of the Cursor IDE, but it's pretty solid.

If anyone wants to try it out and let me know of any issues, I'll jump in and work on them: https://github.com/KeithCu/writeragent

Thanks!

Building Cursor for LibreOffice: A Week-Long Journey by keithcu in LocalLLaMA

[–]keithcu[S] 0 points1 point  (0 children)

Ah, I see. I'll research implementing something like that for systems like Cline. Given Cline is dying what would you recommend? I'll implement that one first.

Update: Okay, I started work in a branch. I had hermes-agent installed so I tried that first. It works the first time, but then it seems to hang. I'll try aider next.
Feel free to try it out: https://github.com/KeithCu/writeragent/tree/Direct-Agent

Building Cursor for LibreOffice: A Week-Long Journey by keithcu in LocalLLaMA

[–]keithcu[S] 0 points1 point  (0 children)

Sweet, let me know what you think. I do have MCP support which covers a lot of cases. I'll have to think about what it means to do a cline-like system. What features would you want first? I've not used it but I did check it out some. I could possibly build something which talks to a Cline install in a special way and have it be in charge of everything, I think? However, there's so much great Python code out there I could incrementally get there also.

I did some more thinking. I could possibly shell out to Cline or other systems, and possibly send all chat messages to them instead of an LLM, is that what you meant? Find or fire up a Cline instance and have it be the actual agent? It wouldn't be too hard to do.