Security
Security and local processing
Decks are built on your machine. Theodore's servers hold your account and deliver instructions and updates; they never receive your files.
- Built on your machine
- No files sent to Theodore
- Engine runs offline for up to 7 days
Where each part runs
Decks are built on your machine.
Your templates, source decks and the finished .pptx stay on your laptop. The build, the rendering and the checks run there too. The engine goes online only to fetch an image or media your assistant asks for, by search or by URL; the security notes list the three cases.
- Templates and source decks
- The build
- Rendering and checks
- The finished .pptx
Theodore holds your account and sends instructions and updates.
The client signs in, renews the licence, checks for updates and fetches the design instructions each time they are used. What it sends is versions and system details; no deck content, file names or folder paths.
- Templates and source decks
- The build
- Rendering and checks
- The finished .pptx
- Your account and licence
- Design instructions, per use
- Updates
Your assistant's provider sees what you share with it.
What you share in the conversation goes to the assistant you chose, under the plan and data terms you already have with its provider. Theodore adds no other recipient.
- Templates and source decks
- The build
- Rendering and checks
- The finished .pptx
- Your account and licence
- Design instructions, per use
- Updates
- What you share in the conversation
What Theodore's servers hold
- Your account
- Email address, and the name and company if you gave them; your plan (Beta); your sign-in sessions and the browser each one came from. IP addresses are kept only as one-way hashes, for rate limits and abuse checks.
- Your computers
- For each computer you sign in: its name, operating system and processor type, the assistant, the Theodore versions, and when it was last seen. You can rename or remove each one in your account.
- Preferences you save
- Up to 30 short notes of 280 characters, which your assistant applies to later work. You see, edit and remove them in your account.
- Bug reports
- The technical reports described below.
- Usage counts
- Per account and per day: how many times the design instructions were fetched, how many reports were filed and how often the licence was renewed. Kept for 400 days.
Never: your decks, slide text, images, file names, folder paths or renders.
When the client contacts Theodore
Theodore runs only when your assistant (or you) calls it: no background service, no scheduled task, no hooks. The client is the only part that talks to Theodore.
| When | What for | How often |
|---|---|---|
| Sign-in | An activation code or a browser approval | Once per computer |
| Licence renewal | Renews the signed licence | At most every 12 hours, when you use Theodore |
| Update check | Which engine, client and asset-pack versions are current | At most every 6 hours |
| Design instructions | Fetched each time the deck-design skill is used; never stored on disk | Each use |
| Downloads | Runtime, engine and asset packs | When installing or updating |
| In use | Engine, client and plugin versions and the assistant's name | At most once an hour |
| Reports and preferences | A bug report, or a preference you asked to keep | When filed |
What is sent: the installation credential and id, the computer's name, operating system and processor type, the client, plugin and engine versions, the update channel, the names of the skill and section requested, and the assistant's name when it can be told.
Never sent: deck content, slide text, images, file names, folder paths, renders, or anything else from your work folders.
Hosts: api.theodoreand.ai (the API), dl.theodoreand.ai (downloads) and theodoreand.ai (the installer and sign-in pages). LibreOffice, when Theodore fetches it, comes unmodified from The Document Foundation and is checked against a pinned SHA-256.
When the engine goes online
The engine that builds your decks connects to the network in three cases only, each started by what your assistant asks for, and each sends only a search text or a URL, never deck content:
- an image search: the search text goes to Wikidata, Wikimedia Commons and the Simple Icons CDN (and DuckDuckGo, when an optional package is installed), and the engine downloads the image it picks;
- a download of an image URL your assistant gives it;
- while it writes a deck, PptxGenJS fetching an image or other media that the deck names by URL.
Images given as files, and the asset packs, never reach the network.
Bug reports during the beta
When a Theodore command fails, your assistant may file a technical report by itself. A report holds a title and description written by the assistant, the command and its error code, and the versions and operating system listed above.
Before sending, the client removes paths under your home folder, email addresses, document file names and long tokens; the service removes them again. A report never contains your content.
You can read every report in your account, and switch automatic reporting off there. With it off, your assistant does not ask and sends nothing by itself; it files a report only when you ask it to.
Credentials and the licence
- Each computer gets its own credential at sign-in. It is kept in the macOS Keychain, or a protected file in your user folder when the Keychain is not available (for example over SSH); on Windows, a file protected with DPAPI for your user; on Linux, a file only you can read. It is never printed or logged, and you can revoke it from your account.
- The licence is a signed token the engine checks offline. It lasts 7 days from the last renewal, so Theodore keeps working offline for up to 7 days. The design instructions always need a connection.
- One-time activation codes work once and expire after 10 minutes. The installer redeems the code before it downloads anything large and never prints it.
What protects the downloads
- The first two files the launcher downloads, the Python runtime archive and the client, are checked against SHA-256 values pinned in launcher.json in the public plugin.
- The rest of the runtime, the engine, client updates and the asset packs are listed in a signed manifest (Ed25519), which the client verifies against keys it carries in launcher.json. A file that does not match is deleted and reported.
- The plugin archive the installer fetches is checked against a SHA-256 published beside it, on the same server.
- Connections use your operating system's certificate store, so a company proxy that inspects traffic works when its root certificate is installed, and Theodore stops rather than connect insecurely when it is not.
- Archives are unpacked only inside Theodore's own folder.
What is installed, and where
Everything lives in one folder in your user account, with no admin rights and nothing system-wide. The install page lists every folder, its size, and the few things kept outside it.
See what is installedRemoving everything
One command removes Theodore's folders, the keychain item, the render cache and the plugin from your assistants, and lists what little is left. To cut off a computer you no longer have, remove it in your account: its next call is refused and its stored licence is deleted.
The removal commandReporting a vulnerability
Write to support@theodoreand.ai with "Security" in the subject. Please do not open a public issue for a vulnerability. We answer within five working days.
support@theodoreand.ai