OfficeCLI: Office suite for AI agents to read and edit Microsoft Office files

213 points
1/21/1970
2 days ago
by maxloh

Comments


rcarmo

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. :)

2 days ago

nojito

Your tools don't render the file though and python-pptx hasn't been updated in 2 years.

a day ago

rcarmo

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.

a day ago

maxloh

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.

a day ago

rcarmo

That’s probably because you have (or implicitly created) a skill that does that. My agents know how to check bounding boxes.

a day ago

doctorpangloss

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

a day ago

wongarsu

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

a day ago

rcarmo

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.

a day ago

wongarsu

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

19 hours ago

rcarmo

People overestimate what LLMs can see vs what they tell you they can “see”

a few seconds ago

wizzwizz4

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.

17 hours ago

all2

It's an open source project. Maybe he'll accept PRs?

a day ago

FailMore

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”

a day ago

wonderwallaus

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.

a day ago

FailMore

Thanks!

a day ago

maxloh

> 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.

a day ago

FailMore

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…

a day ago

Semaphor

Personally, I like the elastic (and similar) license… as long as, as you did, it’s chosen upfront. Being open source as a marketing strategy and later switching to source available licenses is what I find highly [0] problematic.

[0]: With a bit of an understandable carve out if it turns out no one else ever contributed anything of significance.

21 hours ago

tchalla

I don’t see why your license should be open source. It’s alright what you have.

a day ago

8cvor6j844qw_d6

> 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.

20 hours ago

philips

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.

a day ago

FailMore

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

a day ago

anduril22

This is super cool - so many uses. Does it work well with Excel formulae?

a day ago

FailMore

Yep, it does. If you open https://smalldocs.org/s/tUWdfKLKBcnhnrYsoFMn4W#k=7SC6KGg-Fye... And scroll to the business model area, you’ll see it supports multi tab functionality + connected formulas.

a day ago

keithnz

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

a day ago

lelanthran

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).

a day ago

FailMore

Does this link not work? https://smalldocs.org/blogs/what-is-a-smalldoc

If you’re talking about the README, you are right, but I think the homepage has a lot of examples you can click: https://smalldocs.org/#learn

a day ago

lelanthran

I don't see a description of the format in that.

What does a human write to (for example) create the diagram mentioned in "A diagram, drawn from a description rather than dragged into place."?

To me this looks like AI-writes-everything and human-reads-everything.

a day ago

FailMore

It is mostly that pattern yes, but you can see the underlying formats in https://smalldocs.org/docs

a day ago

lelanthran

Right, thanks.

I looked at the format. I think you're mostly on the right track, but I also think that a better candidate might be to simply use (and augment, where necessary, such as for styles) the org mode format: It can do all the stuff you have, but also things like checkboxes, calendars, and more.

As a bonus, both people and agents already know the format so there is no need to have a skills file. For example, the following prompt on Gemini WebChat (hardly a good model):

    Give me an org mode file to show a PERT (Project evaluation and Review Technique) diagram, with a calendar below the diagram allowing me to see the current year. Create a hierarchy of tasks that have to be done using  checkboxes and collapsible sections to mark tasks/subtasks as done. Below that, give me a table of all the terminal tasks that need to be completed with task/subtask name, starting date, estimated ending date and the resource assigned to it.

    Finally, at the end, produce a gantt chart as a mermaid diagram for the sample project.
Produced a working file with tables[1], diagrams, calendar, checkboxes in a single file that Emacs rendered properly. Org mode can export to every format I ever needed (LaTeX, html, pdf). I once even had the resulting HTML conversion contain animations written in Javascript :-)

Maybe all you need to code for agents to write is a web-based viewer for Org Mode syntax?

Look at it this way: right now if I wanted what smalldocs does (i.e. ask the agent to generate any of your examples), I can ask the agent "do $FOO, generate org mode", and without a single additional skill/claude.md/agents.md file, get exactly the result you got from smalldocs.

I think maybe testdrive Emacs daily for a month; it would open your mind to the possibilities available[2]. If anything more is needed (like I wanted to put in JS in the HTML output), it can do it. If Emacs cannot do it, my agent can write an EmacsLisp function that will do it.

At the end of the day, when even a poor LLM can do what smalldocs does but without any additional .md files or context, I think maybe your solution might be over-engineered.

----------

[1] Org mode tables work exactly like spreadsheets, in that they can contain formulas.

[2] Think of it this way - when I needed multimodal documents, because I already knew Emacs, I just used that. When you needed multimodal documents, you vibed a whole new product into existence.

a day ago

philips

I have been thinking about the problem of collaborating with AI in spreadsheets a bit. I think I want a few things solved:

- Revision control with attribution so I can double check LLMs edits

- Online collaboration with other humans and LLMs

- Schema and validation of column and row data

- Excel and Gdocs interoperability

One path I think you could go to accomplish this would be DuckDB which creates a programming interface that LLMs could use and interoperability with Excel and Google Docs via plugins.

Not sure if it is better to create from scratch rebuilds of the spreadsheet UX or rely on existing spreadsheet apps for that.

All that being said for any work I do I think I would want my data an LLM is operating on to be more structured and constrained than a text file or even a spreadsheet without cell validation.

a day ago

nimonian

Neat! I think agents making Word docs and PowerPoints is going to go away. I think something like small docs is the future.

a day ago

SoftTalker

I don't think the corporate world is moving away from Word and PowerPoint anytime soon.

a day ago

FailMore

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

a day ago

dumbmachine

This is so cool! Loved your agent instruction snippet too.

a day ago

etothet

Great job on this. I can see this being extremely useful for my teams!

a day ago

FailMore

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.

a day ago

Zambyte

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.

a day ago

FailMore

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…

a day ago

neilv

> 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.

2 days ago

janalsncm

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.

a day ago

allan_s

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 ?

18 hours ago

jbgt

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.

16 hours ago

StahlGuo

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.

a day ago

pietz

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.

a day ago

dayone1

I’m having trouble having it take reference PowerPoint slides and converting them to html, chart and labels misplaced, the charts don’t look drawn properly, etc. how did you solve this?

a day ago

pietz

I don't have a great solution here. I rebuilt our PPT master fully in HTML and I'm using a modified version of Google's DESIGN.md to store the references.

a day ago

luciana1u

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

7 hours ago

umutm

That is great.. Only the possibility of minimizing token usage when dealing with Office docs makes this very handy.

a day ago

_pdp_

Very good and well done. I found immediate use-case for this.

a day ago

miketery

How does this do for processing formulas or macros in excel?

a day ago

jbgt

I'm making a similar tool that tries to do macros as well

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

16 hours ago

topaztee

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

a day ago

aussieguy1234

Is there anything like this for OpenOffice/Libreoffice? I have some ideas if there is

a day ago

topaztee

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

a day ago

ohadkr

Great work

a day ago

beepbooptheory

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?

a day ago

karado

Most corporate workplaces are super dependent on the Microsoft Office suite.

a day ago

charlieyu1

Office documents have been notoriously difficult to automate for years. I think old .doc files were just a memory dump

a day ago

reddalo

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.

a day ago

nbevans

The idea of Latex being used in business environments could be a meme

a day ago

beepbooptheory

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?

15 hours ago

rcarmo

People want to generate corporate content. For years now, it comes and goes.

a day ago