Dispatches
Dispatch 2026-10-05 Product
№18

Python Office Automation That Lands Live, Attributed

Keep your python-pptx, openpyxl and python-docx code. Athena’s drop-in packages point it at a live deck, workbook or document, and every edit lands while your team works in it, attributed to the API key’s owner.

Filed by Taylor Johnson — 10 min
Sepia engraved plate of a seaside terrace: a bronze geared mechanism of interlocking wheels joined by a thin cord to an open wax tablet and an unrolled papyrus scroll, a reed pen, an oil lamp and an olive branch, with a hillside temple, cypresses and a calm sea with one sail behind

The Athena Python SDK is a set of drop-in packages from Athena Intelligence for Python office automation. Install athena-python-pptx, athena-openpyxl or athena-python-docx, keep the same imports, and open a live deck, workbook or document by its asset ID. Edits land in the shared file your team is working in, attributed to the API key's owner.

Most data and engineering teams already have the scripts: a python-pptx job for the Monday pipeline review, an openpyxl job for the regional numbers, a python-docx job for the memo. Each one ends with a file on disk that somebody still has to get in front of the team.

Athena Intelligence, founded in 2022, builds an agent platform for regulated enterprises where people and agents build agents, workflows and applications together. The Python SDK lets existing office code write straight into the live files in Athena's studios. Figure 1 shows the whole idea on one page.

  • The imports stay the same. The code opens a live asset by its ID.
  • Deck edits are sent call by call as the script runs, or grouped with prs.batch(). Workbook edits are buffered until wb.save().
  • Every edit carries the API key owner's email or agent ID, on the shape and in the Activity pane.
  • The launch video runs 30 seconds. Every name and number in it is demo data.
Contents
  1. 01The problem
  2. 02How the SDK works
  3. 03One example, start to finish
  4. 04Workbooks and documents
  5. 05Attribution
  6. 06Security and deployment
  7. 07Getting started
  8. 08Questions teams ask
FIG. 01 / YOUR CODE, A LIVE FILE, A NAME ON EVERY EDITYour Python scriptThe imports stay the samefrom pptx import Presentationfrom openpyxl import Workbookfrom docx import Documentq3_review.pyAthena drop-inspip install, from PyPIathena-python-pptx0.13.1athena-openpyxl0.24.18athena-python-docx0.21.8Rewritten on a CRDT layerOpen sourceLive Athena assetsOpened by asset IDDeckQ3 pipeline reviewWorkbookQ3 pipelineDocumentQ3 pipeline memoYour team works in themEVERY EDIT FROM THE SDKASame importsBEdits land liveCAttributed to the key ownerDHistory in Activity FIG. 01 / A LIVE FILE, A NAME ON EACH EDITYour Python scriptThe imports stay the samefrom pptx import Presentationfrom openpyxl import Workbookfrom docx import DocumentAthena drop-inspip install, from PyPIathena-python-pptx0.13.1athena-openpyxl0.24.18athena-python-docx0.21.8Rewritten on a CRDT layer. Open source.Live Athena assetsOpened by asset ID, with your team in themDeckQ3 pipeline reviewWorkbookQ3 pipelineDocumentQ3 pipeline memoEVERY EDIT FROM THE SDKASame importsBEdits land liveCAttributed to the key ownerDHistory in Activity
FIG. 01Your script keeps its imports (left), Athena’s drop-in packages sit in the middle, and the live files your team works in are on the right. The band lists what every edit from the SDK gets.

01Why does Python office automation stop at a file?

Python office automation stops at a file because python-pptx, openpyxl and python-docx are file libraries. Each one writes to disk, and the shared copy the team works in lives somewhere else.

A typical pipeline-review script ends with prs.save("q3_review.pptx"). Then someone uploads, emails or pastes the result into the deck the team is already editing. If a colleague changed slide 1 that morning, two versions now exist, and one author field covers the whole file. Figure 2 sets the two paths side by side.

That shared copy is usually in the cloud. In 2025, 52.7% of EU enterprises bought cloud computing services, and 71.7% of those used cloud office software. Governance for automated work lags behind: in a 2025 survey of 360 IT application leaders, only 13% strongly agreed they had the right governance structures to manage AI agents. A script writing into a shared file raises the same question: who changed what, and when.

FIG. 02 / THE SAME SCRIPT, TWO DESTINATIONSA SCRIPT THAT WRITES A FILE01Script savesq3_review.pptx to disk02Someone uploads oremails a copy03The team’s edits sitin another version04Who changed slide 1?Hard to tellTHE SAME SCRIPT ON THE ATHENA SDK01Script opens the livedeck asset_7f3c2a9102Each edit lands in theshared deck as it runs03The team keeps workingand watches it land04The Activity pane showsdana@acme.example FIG. 02 / SAME SCRIPT, TWO DESTINATIONSA SCRIPT THAT WRITES A FILE01Script savesq3_review.pptx to disk02Someone uploads oremails a copy03The team’s edits sitin another version04Who changed slide 1?Hard to tellTHE SAME SCRIPT ON THE SDK01Script opens the livedeck asset_7f3c2a9102Each edit lands in theshared deck as it runs03The team keeps workingand watches it land04The Activity pane showsdana@acme.example
FIG. 02The same python-pptx script with two destinations: a file someone must hand off, or the shared deck with each edit recorded. Names and IDs are demo data.

02How does the Athena Python SDK work?

You install Athena's package for the library you already use, keep your imports, and pass an asset ID where the code used to pass a file path. Athena rewrote the three office libraries on a CRDT layer and published them on PyPI.

A CRDT (conflict-free replicated data type) is a data structure that lets several writers change the same document and merges their changes, so a script and a person can work in one deck at once.

terminal
pip install athena-python-pptx athena-openpyxl athena-python-docx

The deck script from the launch video, pointed at a live deck, looks like this. Everything after the Presentation line is ordinary python-pptx.

q3_review.py
from pptx import Presentation
from pptx.util import Inches
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE

prs = Presentation(asset_id="asset_7f3c2a91")  # a live Athena deck
slide = prs.slides[0]

slide.shapes.title.text = "Q3 pipeline review"
box = slide.shapes.add_textbox(
    Inches(0.6), Inches(1.5), Inches(6), Inches(0.5))
box.text_frame.text = "Pipeline up 18% on Q2, led by EMEA"

data = CategoryChartData()
data.categories = ["NA", "EMEA", "APAC", "LATAM"]
data.add_series("Q3", (4.2, 3.1, 1.8, 0.9))
slide.shapes.add_chart(
    XL_CHART_TYPE.COLUMN_CLUSTERED,
    Inches(0.6), Inches(2.5), Inches(12), Inches(4.6), data)

Each call is sent to the live deck as the script runs, so anyone with the deck open sees the title, then the text box, then the chart. To group calls, wrap them in prs.batch():

q3_review.py
with prs.batch():
    slide.shapes.title.text = "Q3 pipeline review"
    box.text_frame.text = "Pipeline up 18% on Q2, led by EMEA"

The script runs with an Athena API key, and the key's owner is the name on every edit. Figure 3 compares the three packages.

FIG. 03 / THREE PACKAGES, ONE PATTERNDecksCode written for python-pptxINSTALLathena-python-pptxOPEN BY ASSET IDPresentation( asset_id="asset_…")WHEN EDITS LANDEach call is sent asthe script runs, orgrouped in prs.batch()WorkbooksCode written for openpyxlINSTALLathena-openpyxlOPEN BY ASSET IDwith Workbook( "asset_…") as wb:WHEN EDITS LANDEdits are bufferedand land together onwb.save()DocumentsCode written for python-docxINSTALLathena-python-docxOPEN BY ASSET IDwith Document( "asset_…") as doc:WHEN EDITS LANDadd_heading andadd_paragraph as usual,then doc.save() FIG. 03 / THREE PACKAGES, ONE PATTERNDecksCode written for python-pptxINSTALLathena-python-pptxOPEN BY ASSET IDPresentation( asset_id="asset_…")WHEN EDITS LANDEach call is sent as the script runs, orgrouped in prs.batch()WorkbooksCode written for openpyxlINSTALLathena-openpyxlOPEN BY ASSET IDwith Workbook( "asset_…") as wb:WHEN EDITS LANDEdits are buffered and land together onwb.save()DocumentsCode written for python-docxINSTALLathena-python-docxOPEN BY ASSET IDwith Document( "asset_…") as doc:WHEN EDITS LANDadd_heading and add_paragraph as usual,then doc.save()
FIG. 03Each package keeps its upstream imports and opens a live asset by ID. The last block in each column shows when edits land.

03What does the launch video show? One example, start to finish

The 30-second video follows one python-pptx script from install to a finished slide, then repeats the pattern for a workbook and a document. Figure 4 lists the six steps with their captions.

VIDEOThe 30-second launch video: the same python-pptx script, pointed at a live deck, with each edit landing under the API key owner’s name. Music and on-screen text, no narration. All names, figures and asset IDs are demo data.
  1. Install. pip install athena-python-pptx ends with "Successfully installed athena-python-pptx-0.13.1". The script, q3_review.py, builds a Q3 pipeline review slide.
  2. Point. The imports stay as they were. One line changes, from Presentation("q3_review.pptx") to Presentation(asset_id="asset_7f3c2a91").
  3. Run. The title, the text box "Pipeline up 18% on Q2, led by EMEA" and a column chart for four regions appear in the deck one after another.
  4. Watch. A teammate, Morgan Lee, is in the deck, and the run's avatar reads "dana@acme.example · dana@acme.example's run".
  5. Attribute. The Timeline tab in the Activity pane lists each change under Dana Ruiz, dana@acme.example.
  6. Extend. The same pattern writes a row to a workbook and a heading and paragraph to a memo.

The end card reads "Keep your python-pptx code. Every edit lands live, attributed."

FIG. 04 / THE VIDEO IN SIX STEPS01 INSTALLInstall Athena’s drop-infor python-pptx.02 POINTSame imports. Point itat a live Athena deck.03 RUNEach edit lands in the deckas the script runs.04 WATCHYour team watchesit land.05 ATTRIBUTEEvery edit is attributed tothe API key’s owner.06 EXTENDThe same works forworkbooks and documents. FIG. 04 / THE VIDEO IN SIX STEPS01 INSTALLInstall Athena’s drop-infor python-pptx.02 POINTSame imports. Point itat a live Athena deck.03 RUNEach edit lands in the deckas the script runs.04 WATCHYour team watchesit land.05 ATTRIBUTEEvery edit is attributed tothe API key’s owner.06 EXTENDThe same works forworkbooks and documents.
FIG. 04The six steps of the launch video, quoted from its on-screen captions.

Table 1 compares the file-based script with the same script on the SDK.

TaskScript that writes a fileSame script on the Athena SDK
Point at the targetA local path, q3_review.pptxAn asset ID, asset_7f3c2a91
Get the result to the teamUpload, email or paste the fileEdits land in the shared deck as the script runs
Keep working during the runWait, then reconcile two versionsTeammates stay in the deck and watch
See who changed a shapeOne author field for the fileA name label on the shape and an Activity entry
Look backFind an older copyTimeline and Time Travel tabs in Activity
TABLE 1Five tasks for a script that writes a file and for the same script on the Athena SDK, as the launch video shows the product.

04Does it work for workbooks and documents?

Yes. athena-openpyxl and athena-python-docx follow the same pattern: install the package, keep from openpyxl import Workbook or from docx import Document, and open the live asset by ID.

q3_numbers.py
from openpyxl import Workbook

with Workbook("asset_9b21e4c0") as wb:
    ws = wb.active
    ws.append(["EMEA", 3.1, 0.18])
    wb.save()

Workbook edits are buffered and land in the shared workbook when the script calls wb.save(). Inside the block, the calls are the ones openpyxl users know, such as wb.active and ws.append(). Athena's sheets have handled 95 sub-agents writing to one sheet without conflicts.

q3_memo.py
from docx import Document

with Document("asset_c4d81f2a") as doc:
    doc.add_heading("Q3 pipeline review", level=1)
    doc.add_paragraph("EMEA led the quarter.")
    doc.save()

The document script adds a heading and a paragraph with the usual python-docx calls, then saves.

05How is each edit attributed?

Every edit made through the SDK is attributed to the owner of the API key that ran the script. The name shown is the key owner's email or an agent ID.

While the script runs, people in the deck see a coloured ring and a name label on each shape as it changes, a pulsing avatar with the tooltip "name · email's run", and a presence dot on the slide. Afterwards, the Activity pane keeps the record in its Attribution, Timeline, Sessions, Audit and Time Travel tabs, and each change reads "Edited by" and the name. Figure 5 draws both views.

Across the platform, Athena can trace cell-level attribution to the exact tool call within seconds, and attribution and rollback cover about 100 data types. Since the name comes from the key, decide who owns the key a scheduled job uses before the job goes live.

FIG. 05 / WHO MADE THE EDIT, ON THE SHAPE AND IN THE LOGQ3 pipeline reviewdana@acme.example · dana@acme.example’s runOn slide 1Q3 pipeline reviewPipeline up 18% on Q2, led by EMEAdana@acme.exampleActivityAttributionTimelineSessionsAuditTime TravelDDana Ruizdana@acme.example1 slide modifiedjust nowCurrentDDana Ruizdana@acme.example1 slide modifiedjust nowDDana Ruizdana@acme.example1 slide modifiedjust nowMMorgan Leemorgan@acme.example1 slide modifiedyesterday FIG. 05 / WHO MADE THE EDITQ3 pipeline reviewdana@acme.example · dana@acme.example’s runOn slide 1Q3 pipeline reviewPipeline up 18% on Q2, led by EMEAdana@acme.exampleActivityAttributionTimelineSessionsAuditTime TravelDDana Ruizdana@acme.example1 slide modifiedjust nowCurrentDDana Ruizdana@acme.example1 slide modifiedjust nowDDana Ruizdana@acme.example1 slide modifiedjust nowMMorgan Leemorgan@acme.example1 slide modifiedyesterday
FIG. 05Attribution on the shape and in the Activity pane, drawn from the launch video. Names are demo data.

06Is Athena secure enough for regulated companies?

Yes. Athena Intelligence's security program includes SOC 2 Type II and HIPAA, third-party penetration tests and zero data retention agreements with frontier model providers, and Athena does not train on customer data.

Athena deploys in a managed cloud, in your own VPC on AWS, Azure or GCP, on-premises, or air-gapped, including US government air-gapped networks and AWS GovCloud. A Big Four audit firm has run Athena in production for over a year, with over 1,000 users.

07How do we get started?

Pick one script your team runs every week, such as the Monday deck builder. Install the matching package, swap the file path for the asset ID of a deck the team already uses, and run the script while someone has the deck open.

The SDK and API page lists Athena's other developer surfaces: the athenaintel Python client, a TypeScript SDK, React components and a public API with run budgets. Dispatch No. 12 covers people and agents editing the same file.

Curious how it would work on your scripts? We're happy to show you.

08Questions teams ask

What is Python office automation?

Python office automation is the use of Python code to create or update decks, workbooks and documents, usually with python-pptx, openpyxl and python-docx, for recurring work such as a weekly pipeline review. The Athena Python SDK points that same code at a live, shared file, so the output lands where the team already works.

Do we have to rewrite our python-pptx code?

No. Install athena-python-pptx with pip and keep imports such as from pptx import Presentation. The change is where the code points: Presentation(asset_id="asset_...") opens a live Athena deck in place of a file path, and the rest of the script keeps its python-pptx calls, such as add_textbox and add_chart.

When do edits appear in the live file?

Deck edits are sent call by call as the script runs, and wrapping calls in prs.batch() groups them. Workbook edits through athena-openpyxl are buffered and land when the script calls wb.save(). The packages are built on a CRDT layer, so people can keep working in the file while the script runs.

Who is each edit attributed to?

Each edit is attributed to the owner of the API key that ran the script, shown as the key owner’s email or an agent ID. People watching see a coloured ring and a name label on each changed shape, and the Activity pane lists the change under that name.

Which packages and versions are available?

Three packages are available at launch from PyPI: athena-python-pptx 0.13.1 for decks, athena-openpyxl 0.24.18 for workbooks and athena-python-docx 0.21.8 for documents. Athena rewrote the three office libraries on a CRDT layer and published them as open source, alongside the athenaintel Python client and a TypeScript SDK.

Where does Athena run?

Athena runs in a managed cloud, in your own VPC on AWS, Azure or GCP, on-premises, or air-gapped, including AWS GovCloud. Athena Intelligence holds SOC 2 Type II and HIPAA, has zero data retention agreements with frontier model providers, and does not train on customer data.