60 comments

[ 4.9 ms ] story [ 66.5 ms ] thread
> OfficeCLI is the first and best Office suite purpose-built for AI agents to read, edit, and automate Word, Excel, and PowerPoint files. Free, open-source, single binary, no Office installation required.

1. Calling Microsoft Office simply "Office" without qualification treats it like a trademark, rather than a generic term that was in use for this class of product before MS appropriated it.

2. If you're going to treat it like a trademark, don't violate it in the same sentence.

MS doesn’t need a reason to take your code down from GitHub. If they don’t like what your code does, they can take it down no matter how you word your readme.
Nice, but I don't see a lot of ECMA 376 test cases. Both https://github.com/rcarmo/python-office-mcp-server and https://github.com/rcarmo/go-ooxml are ECMA 376 compliant (I made sure), because for headless generation and handling that's kind of important :)

Oh, and you're not the first, I started this a year ago. :)

Your tools don't render the file though and python-pptx hasn't been updated in 2 years.
It's an open source project. Maybe he'll accept PRs?
AI has zero need to see the renders (you are just wasting tokens) and that is why I built the Go version - I patched a lot of the PPTX code in my MCP server, as it happens.
while i appreciate that you are working on something to give away for free, providing your own little world of value... your comment makes it sound like you've never made powerpoints before. of course, there are a bajillion powerpoints out there in the wild that layer white rectangles to erase stuff from screenshots of charts, among numerous other atrocities
And if you task Claude with making a moderately sized powerpoint matching existing style guides, it will spend at most 30% of the time on the initial version. The remaining time is spent rendering out slides, looking at them and adjusting them

Of course AI can one-shot slides, but if you want good results where everything is aligned and has proper contrast you need a visual feedback loop

Yes, but automatically generated content doesn’t need to do that - like I wrote in another comment, my agents know how to check bounding boxes.
But bounding boxes don't always match what you want to do visually. Often you need to align to the baseline of text instead of its bounding box. And often you need to compensate for visual weight, making things different sizes so they appear more similarly sized to the eye

I'm not saying a pure API view won't work, but it will be a quality compromise compared to also having visual inspection

Font kerning software takes into account all of those things without writing to a pixel buffer and visually inspecting it.

Not saying that LLMs can do this, but there are algorithms which can, and neural networks are universal function approximators, so it is plausible.

People overestimate what LLMs can see vs what they tell you they can “see”
I don't think so.

I have had a lot of experience creating and editing PowerPoint slides with Claude recently. It always converts the file to a PDF using LibreOffice and then renders the PDF into images to see if everything went right and that no text has overflowed.

That’s probably because you have (or implicitly created) a skill that does that. My agents know how to check bounding boxes.
I went in the opposite direction and built https://smalldocs.org/, which is an office suite AI agents (and humans - including SWEs!) like to use.

I say it’s as if “Claude Code & Microsoft Office had a baby...”

Code available: https://github.com/espressoplease/smalldocs

Discord: https://discord.gg/txjATTsDaq

Sample document: https://smalldocs.org/blogs/what-is-a-smalldoc

Invoked via Claude Code by saying stuff like: “sdoc me the plan for this feature”, or “dig into our logs and sdoc me a report on our latency”

Neat! I think agents making Word docs and PowerPoints is going to go away. I think something like small docs is the future.
Thanks very much! That is exactly my view too.

It’s also nice to get out of the command line for doing deep reading.

I have had a few developers try it, and some small number of them use it week after week (as do I): https://smalldocs.org/analytics

I don't think the corporate world is moving away from Word and PowerPoint anytime soon.
This looks neat, but I don't see any examples of the format on the webpage (And no, I am not going to install Node.js just to see examples of the format).
This is really neat! I have been thinking about similar problems.

Is there a way to collaborate with multiple agents or people on the same doc? It is unclear to me.

Multiple agents could write to the doc locally, but for the moment it’s not predominantly could based (only short links). I think I will build a cloud first version/offering/config soon
Great job on this. I can see this being extremely useful for my teams!
Thanks, please could you email me at hi@smalldocs.org. I’m trying to learn how to make this a better experience for teams, so would love to work with you guys to optimise the experience.
I built some scripts to do something similar but all local. It also live updates the document so you can see changes come through. Super useful
Notably the posted project is Apache licensed, and your project is Elastic licensed. Your project looks cool and you've clearly put a lot of thought into making it useful, but the license makes it a non-starter for me.
I’m open for feedback on the license. As you say/notice, I’ve put a lot of work in and I think there is a commercial pathway forward for the product. I don’t want to let someone else - who might be more experienced - take everything I’ve done and build a business with it (I’d really like to do that myself), so wasn’t sure what license to use as MIT didn’t feel right to me at the moment. But open for feedback/maybe I’m being too short sighted…
I find it so amusing that small dev's get it so right, yeh a trillion dollar company can't figure out what copilot is to their ecosystem.
> Elastic License 2.0. The source is public and you may use, copy, modify, and redistribute it. You may not offer SmallDocs to third parties as a hosted or managed service, strip its licensing notices, or circumvent its license-key functionality.

It is not open source unfortunately.

I posted the same thing below, but I’m open for feedback on the license. I’ve put a lot of work in and I think there is a commercial pathway forward for the product. I don’t want to let someone else - who might be more experienced re commercialisation - take everything I’ve done and build a business with it (I’d really like to do that myself), so wasn’t sure what license to use as MIT didn’t feel right to me at the moment. But open for feedback/maybe I’m being too short sighted…
I don’t see why your license should be open source. It’s alright what you have.
> so wasn’t sure what license to use as MIT didn’t feel right to me at the moment

You're onto the right track if you have plans for commercialisation.

Thanks for building this, I've tested it out and it's useful.

This is so cool! Loved your agent instruction snippet too.
(comment deleted)
If you don't need interactive/animated features, I can absolutely recommend to have the agent build slides in HTML and convert it to PDF. Has been a game changer for me.
cool,

im working on something similar. A fine-tuned model for agents to interact with docx over MCP. they wont have to deal with OOXML vespper.com

cool,

im working on something similar. A fine-tuned model for agents to interact with docx over MCP. they wont have to deal with OOXML.

we have a waiting list for beta-users: www.vespper.com

Feel like overnight I suddenly started seeing so much stuff and comments on here concerning generating Office documents with the LLMs. What could be driving this? Doesn't latex or similar seem like a better fit here?
People want to generate corporate content. For years now, it comes and goes.
Most corporate workplaces are super dependent on the Microsoft Office suite.
Office documents have been notoriously difficult to automate for years. I think old .doc files were just a memory dump
The first version of the .doc format was actually a memory dump, which poses security risks and that's why modern Office refuses to open pre-Office '97 .doc files by default.
The idea of Latex being used in business environments could be a meme
Yeah, but it just feels so ridiculous the other way too! The reason people use Word et al instead markup languages is because of the UI, right? Why does that matter here? After you generate a final PDF, no one needs to know how you made it?
Very good and well done. I found immediate use-case for this.
Recently, my experience is that the hardest part of writing Enterprise document by AI is not how to generate a word or excel, but to generate a office document that is accountable. First draft generation is just a small part of the whole wore,more time consuming work is validation: whether citation , number,format, or semantic assume is right.

So i think enterprise office AI suite may need 2 layers: First is document editing, and second is revision / attribution / validation, or an unaccountable document is not applicable for real enterprise usage.

Is there anything like this for OpenOffice/Libreoffice? I have some ideas if there is
That is great.. Only the possibility of minimizing token usage when dealing with Office docs makes this very handy.
(comment deleted)
Is it better than letting claude code use python directly ? Especially on those 3 metrics: 1. better prompt adherence 2. visually more pleasing 3. token consumption

Especially as I think claude code got some reinforcement learning on these use cases ?

Nice! i'm making the same - interesting that so many ideas converge. Hopefully we can soon point an GPT6 at all of them and have a super tool. Or else GPT6 can do it without all our helpers...

https://github.com/odcpw/ooxml-cli

Glad to get feedback on what doesn't work or is missing.

I'm also making one for PowerBI - it's in testing. Drop me a line if you're interested.

an office suite for AI agents. next they'll unionize and demand a ping pong table.