Privacy
Privacy policy
Effective October 20, 2026. Updated October 29, 2026: ShadowDroid is now Olef; nothing else changed.
In short
Olef runs on your computer and your Android devices. The CLI and the plugins have no accounts and no telemetry, and send nothing about you or your apps to us unless you choose to submit a problem report.
If you choose to use Olef Cloud, the code you upload and what your cloud devices produce are stored and processed in Google Cloud to run that service for you, as described in the Olef Cloud section.
The olef CLI
The CLI works locally. What it reads from your devices and apps (screens, UI trees, logs, crashes, captured network traffic, debugger values) stays on your computer, in its output and in files you ask it to write.
It connects to the internet only to:
- GitHub (github.com, api.github.com, and GitHub's download hosts): to download the on-device service and runtime agent matching its version, the first time they are needed; and to check for a newer release. It checks when you run
olef update, and on its own once a day: after an ordinary command it fetches the latest release's details and the list of known issues published with it in the background, and saves them in~/.olef/update-check.jsonand~/.olef/known-issues.json. They drive the notice that a new version is available and tell problem reports apart from issues that are already fixed. SetOLEF_NO_UPDATE_CHECK=1to turn this daily check off; it is also skipped whenCIis set. - Google Maven (dl.google.com): to download the Compose inspector matching your app's Compose version, when you inspect a layout.
These requests carry no information about you beyond what any download does (your IP address and the file requested), under GitHub's and Google's own privacy policies. The network proxy, when you start it, handles your app's traffic on your computer; its certificate authority's private key is generated and kept locally.
Usage log. olef usage enable turns on a log of which commands ran, how long they took and their error codes. It is off by default, stays on your computer, and is never sent anywhere.
Problem reports. olef feedback lets you, or your AI agent with your approval, report a problem with Olef. A report is drafted on your computer and sent only when you submit it, either through a prefilled GitHub issue form you review and submit yourself, or with your own GitHub CLI login. It becomes a public GitHub issue. It contains your Olef version and install method, your operating system, which agent you use, the device's Android version and model (unless you leave it out), the description you or your agent wrote, and, if included, Olef's last error. It never contains screen contents, logs, network traffic, screenshots or app data, and it goes through Olef's redaction rules. To report something privately, email us instead. To help with reports, the CLI keeps Olef's own most recent error in ~/.olef/feedback/last-error.json on your computer; it is never sent unless you include it in a report, and OLEF_NO_LAST_ERROR=1 turns it off.
The Claude Code and Codex plugins
The plugins run the CLI on your computer. Their note about a new Olef release reads the CLI's saved update check and makes no network request of its own. The device viewer is served on a local port that only your computer can reach. When you use Olef with an AI coding agent, the agent sends what it reads (screenshots, UI text, logs, your annotations and recorded steps) to its model provider as part of your conversation, under that provider's terms; for the Claude Code plugin, that is Anthropic. Avoid signing in to personal accounts on a device an agent is driving.
When you link a project to Olef Cloud (olef cloud link), or connect an AI client to the Olef Cloud server at mcp.shadowdroid.dev, the commands run on a cloud device instead of your computer, as described in the Olef Cloud section. Nothing is sent to Olef Cloud unless you sign in and approve it.
This website
olef.dev (and shadowdroid.dev, which redirects to it) is a static site on Firebase Hosting. It sets no cookies and runs no analytics. Its hosting provider and Google Fonts receive standard request data (such as your IP address) when you load the site.
Olef Cloud
This section of the Olef privacy policy covers Olef Cloud. The rest of the policy, for the CLI, the plugins and this website, still applies.
Who we are
Olef Cloud is operated by Andrii Olefirenko, an individual ("we", "us"). Contact: contact@olef.dev. To report abuse: abuse@olef.dev.
Olef Cloud builds and runs your Android app on a virtual machine and Android emulator in the cloud, so you need no Android tooling on your computer. It's an invite-only alpha. This section covers app.shadowdroid.dev, the Olef Cloud API (api.shadowdroid.dev), the remote MCP server (mcp.shadowdroid.dev), the cloud viewer (view.shadowdroid.dev), the session connection (connect.shadowdroid.dev) and the olef cloud commands of the CLI.
Your account
- Sign-in. When you sign in with GitHub or Google, we receive your email address, whether it's verified, your name and your account ID with that provider. Reviewer and test accounts sign in with an email address and a password that we create. Passwords are stored only by our sign-in provider, Firebase Authentication, as salted hashes.
- Invites. We keep which invite you used and when you accepted it.
- Apps and devices. For each computer and app you approve (the CLI on your computer, Codex, ChatGPT or another MCP client) we keep its name, the device name it reports (usually your computer's hostname), its scopes, and when it signed in and was last used, so you can see and revoke it under Apps and devices. Refresh tokens are stored only as hashes.
Your code and workspaces
- Linked workspaces are a copy of a folder on your computer. The CLI uploads the files in the folder you approved, skipping what its ignore rules and your
.olefignoreexclude. Before the first upload it shows you the folder, the number and size of the files, the largest files, and files that look sensitive (such as.env, keystores andlocal.properties). Your computer stays the source of truth. - Hosted workspaces are created through the remote MCP server, and the code your AI client writes lives only in Olef Cloud. We take a daily snapshot of a hosted workspace's disk and keep each snapshot for 7 days, so a fault on our side doesn't lose your only copy.
- Exports. When you export a hosted workspace, we put a zip of it in private storage and give you a download link. The link works for one hour, and the zip is deleted within a day.
- Where it's stored. On a disk that belongs to that workspace, in Google Cloud's us-west1 region (Oregon, USA), encrypted at rest and in transit. Each session runs on its own virtual machine that no other account ever uses.
- Build output. Gradle caches, build output and the emulator's saved state live on the same disk so the next session starts quickly.
- We never use your code to train AI models, and we don't look at it except as described under Abuse prevention, or when you ask us to help with a problem.
Screenshots and device data
- On the device. The cloud emulator holds whatever your app stores and shows: screens, the UI tree, logs, crashes, files and, when you turn on Olef's network proxy, your app's captured network traffic. This data lives on your workspace disk, including the emulator snapshot saved when a session stops, and is deleted with the workspace.
- Screenshots and command results are produced on the session's VM and sent to the client that asked for them: your CLI, or your MCP client. We don't keep a separate copy. Olef's redaction rules run on the VM before results leave it. Where screenshots, results or exported files pass through our service logs or storage, they're kept no longer than 30 days.
- The live viewer streams the emulator's screen to your browser, and we don't record it. A viewer link is a secret URL that works for at most 12 hours. Anyone with a control link can see and use the device, so share links only with people you trust.
- Your AI client. What your agent reads (screenshots, UI text, logs) goes to its model provider under that provider's terms: for ChatGPT and Codex, OpenAI; for Claude, Anthropic. Don't sign in to personal accounts or enter real payment details on a cloud device an agent drives.
Usage, cost and security data
To run the service, enforce its limits and stop abuse, we record:
- Usage. Session start and stop times and why they stopped, VM time, disk and snapshot size, network egress, CPU use, and whether there was recent command, MCP, file or viewer activity. These enforce the limits on your dashboard and estimate what your usage costs.
- Commands. The name of each Olef command run in a session (for example
app applyorui tap), never its arguments or output. - Installed apps. The package name and a hash of each APK installed on your cloud device, and whether it was built in your workspace.
- Network and device signals. The IP address and basic browser or client details of sign-ins and API requests, and connection metadata (not content) of the VMs' network traffic.
- Audit events. Security-relevant actions on your account: sign-ins, approvals, uploads, workspace and session changes, and admin actions.
Accounts we run ourselves to test the service are flagged as test accounts so they can be left out of cost reports.
Abuse prevention
Automated checks look for patterns such as sustained full CPU with no activity (mining), unusual egress, many accounts from one network, bursts of failed sign-ins, apps that weren't built in your workspace, and heavy command use in a hosted workspace with no Android project. A match may throttle or stop sessions or suspend the account automatically, and we review every match. To investigate a report or a match we may look at the account's records listed above and, only when that's needed to confirm abuse, the workspace's contents. See the Acceptable Use Policy.
Cookies and local storage
app.shadowdroid.dev keeps your sign-in in your browser's storage (Firebase Authentication uses IndexedDB). The cloud viewer sets a short-lived HttpOnly cookie when you open a viewer link. There are no analytics or advertising cookies.
Service providers
| Provider | What for | Where |
|---|---|---|
| Google Cloud and Firebase (Google LLC) | VMs, workspace disks and snapshots, database, API and MCP servers, export storage, key management, logs, billing data; sign-in (Firebase Authentication) and hosting app.shadowdroid.dev | USA (us-west1, Oregon) and Google's global network |
| GitHub and Google | Sign-in, when you choose that provider | Under their own privacy policies |
| ImprovMX | Forwarding email sent to @olef.dev and @shadowdroid.dev addresses to our inbox | Under ImprovMX's privacy policy |
| Stripe | Payments and invoices, when billing is enabled (it isn't during the alpha) | Under Stripe's privacy policy |
We don't sell your data or share it for advertising.
How long we keep it
| Data | Kept |
|---|---|
| Workspace code, build caches, emulator state | Until you delete the workspace or your account; then deleted within 7 days |
| Hosted-workspace snapshots | 7 days each |
| Idle workspaces | We may delete a workspace after 90 days without use; we email you first |
| Exported zip files | Download link: 1 hour; the file: deleted within a day |
| Screenshots, command results and service logs that contain them | Up to 30 days |
| Operational logs and VM network flow logs | 30 days |
| Account, apps and devices | Until you delete your account; then deleted within 30 days |
| Audit events | 1 year |
| Usage and cost records | As long as needed for accounting; when you delete your account, your email and name are removed from them |
Deleting your data
- Delete a workspace from your dashboard, or have your agent do it, at any time. Its running session stops, and its disk, snapshots and caches are deleted.
- Delete your account on app.shadowdroid.dev under Account. That stops any session, deletes every workspace, revokes every device and app, and removes your account and your sign-in. Everything is gone within 30 days. Folders on your computer aren't touched.
- To ask what we hold about you, to correct it, or for a copy, email contact@olef.dev from your account's address. Depending on where you live, you may have more rights over your data; tell us which you want to use and we'll answer within 30 days.
Security
Each session gets its own VM. Your workloads run as an unprivileged user and can't read the VM's credentials. VMs have no public IP address, can't reach our internal network, and can't send email (port 25 is blocked). Tokens are short-lived. No system is perfectly secure; if you find a problem, tell us at contact@olef.dev.
Children
Olef Cloud is for software developers aged 18 or older and isn't directed at children.
Changes
We'll update this section as Olef Cloud changes, with a new date, and tell signed-in users before material changes take effect.
Email and issues
If you email contact@olef.dev, we use your message and address only to reply. Issues and discussions on GitHub are public.
Children
Olef is a tool for software developers and is not directed at children.
Changes
We will update this page when this changes, with a new effective date.