CaptivelaGITHUB

APACHE-2.0 · FORK OF GENOFFICE · macOS · WINDOWS · LINUX

The office suite that never sees your API key.

Open the .docx, .xlsx and .pptx files you already have, with an AI panel in the editing surface — pointed at an endpoint you own. OpenAI, OpenRouter, Ollama, LiteLLM, DeepSeek, or your own URL. No account, no subscription.

View on GitHub

BRING YOUR OWN KEY · IT STAYS ON YOUR MACHINE

The Captivela Office home screen, showing the sidebar and the four app tiles.

WHERE THE KEY LIVES

The renderer never holds it.

Upstream signs in to a Genspark account and routes every model call through the Genspark service. This fork turns that off. GENSPARK_CLOUD_ENABLED is false, the account status reports signed out, and no AI feature can be gated behind a login.

Your key is encrypted with Electron safeStorage and stays in the main process. The window that renders your document only ever learns that a key exists — never what it is.

Base URLs are validated before they are used: HTTPS everywhere, HTTP only for loopback, credentials embedded in a URL rejected. Any error text travelling back to a window is passed through redaction first.

rendereryour documentmain processsafeStorageyour endpointopenai · ollama · …ai:* IPChttps · http on loopback{ apiKeyPresent }the only thing that comes back

FOUR APPS, ONE ENGINE LAYER

  • Captivela Docs
  • Captivela Sheets
  • Captivela Slides
  • Captivela PDF

Every app embeds the same AI panel: block-granular editing with version snapshots and diffs in Docs, and a tool-calling agent over workbook, slide and PDF state in the others.

TEST CONNECTION

When it fails, you learn which layer failed.

Pick a preset or paste your own URL. The check reports connectivity, authentication, model availability, protocol shape, streaming and tool calling as separate results — not one opaque error you have to guess at.

Ollama and LiteLLM point at loopback, which the URL policy allows over plain HTTP. Point it at a local model and the model call never leaves your machine.

  1. connectivityok
  2. authok
  3. modelok
  4. protocolok
  5. streamingok
  6. tool callingok
  7. configok

AI Settings

Provider

Base URL

https://api.openai.com/v1

OpenAI-compatible endpoint, e.g. https://api.openai.com/v1

API Key

Stored encrypted by the operating system. Never sent to the editor window.

Test ConnectionTest Tool Calling

A REBUILD OF THE DESKTOP APP'S AI SETTINGS DIALOG. THE PROVIDER CHIPS ARE LIVE.

THE ORIGINAL FILE IS THE SOURCE OF TRUTH

Send it back to a Word user and nothing has moved.

Untouched blocks keep their original bytes. Only the paragraphs you actually edited are regenerated — everything else in the file is the file you opened.

OPEN

  1. 01archive the original by hash — never touched again
  2. 02parse the top-level elements into a block tree
  3. 03anchor each block by docxIndex plus its original XML slice

SAVE

  1. 01dirty blocks become OOXML fragments
  2. 02splice them back into the original document.xml
  3. 03repack; every other entry is copied byte-for-byte

The same philosophy holds in Sheets and Slides. Edits are applied as narrow patches, and anything the editor did not touch survives the round trip untouched.

WHAT YOU PAY

No seat. No subscription. No model you didn’t choose.

Captivela bills you nothing, and the AI in it bills you nothing. You pay whichever provider you pointed it at, at that provider’s own API rates — or you point it at Ollama on your own machine and pay nothing at all.

There is no account to create and no seat to license. The model is a field in a settings dialog, not a decision someone else made on your behalf.

Bring your own key.

View on GitHub

APACHE-2.0 · macOS · WINDOWS · LINUX · NO ACCOUNT REQUIRED