SciREPL Pro Privacy Policy
Last updated: September 21, 2026
Who this policy covers
This policy applies to SciREPL Pro on Android and in the Windows/Electron desktop container, developed by s243a. The free SciREPL application has a separate privacy policy.
Summary
SciREPL Pro is designed primarily for on-device use. Notebook language runtimes execute on your device. The current app has no SciREPL-operated account system, analytics service, advertising SDK, crash-reporting service, or server that receives your notebooks.
Some optional features send data off your device. Direct AI sends prompts and notebook context to the AI endpoint you select. Remote MCP, remote-agent chat, and terminal features send data through the broker you configure. Package installation, runtime fallback, external support links, exports, and notebook code can also make network requests. These transfers are described below.
Google Play Data Safety summary
For Google Play's Data Safety disclosure, SciREPL Pro declares the following data as optionally collected and shared for app functionality when you choose to use Direct AI, AI Prompt cells, remote broker, remote-agent or terminal features, permitted workbook or file tools, or an export or sharing destination:
- Other in-app messages: prompts, Direct AI and remote-agent chat, conversation content, and tool exchanges.
- Files and docs: virtual files and complete workbooks when the relevant permission or user action allows them to be sent.
- Other user-generated content: cell source, names, languages, previews, outputs, execution results, and remote-terminal input and output.
These optional transfers go to the AI endpoint, broker, remote agent, model provider, or sharing destination you select. They are not received through a SciREPL-operated account or collection server. Data kept only in the app remains on your device and is not included in these Google Play categories.
Data stored on your device
Depending on the features you use, SciREPL Pro stores the following locally:
- Notebook and workbook cells, names, languages, command history, outputs, and application preferences.
- Files, directories, installed package contents, and Prolog search paths in the app's virtual filesystems.
- Installed-package records, runtime source and version choices, and cached application and runtime assets.
- A temporary draft of the current input while the app reloads.
- AI settings, including the selected provider, model, custom endpoint, permissions, and an API key when you save one.
- Text-only AI Assistant conversations saved separately with each workbook and in a Global conversation. Each conversation is bounded to 200 entries and each entry to 4,000 characters. They remain on the device across restarts.
- Remote-connection settings, including broker URLs, pairing tokens, profile names, and auto-connect preferences.
This information is stored using browser-style localStorage, sessionStorage, IndexedDB, and Cache Storage. Android stores it inside the app's WebView data. The Electron container stores it in its Chromium profile, normally under %APPDATA%\SciREPL-Pro-Electron on Windows. Exported files are written to the destination you select through the operating system.
Credential warning: API keys and broker tokens are stored locally using browser storage. SciREPL Pro does not add application-level encryption to those values. Notebook code—especially JavaScript cells—runs in the app's web environment and may be able to access browser-accessible app data or make network requests. Only run code, packages, and workbooks you trust, and remove credentials when they are not needed.
Retention and deletion
Local data remains on the device until you remove it or clear the platform-specific application profile.
SciREPL's developer does not provide a developer-side deletion-request service because SciREPL has no account or server that stores this content. You can remove local data using the controls below. Data already sent to a third party must be managed under that recipient's deletion practices.
- Menu > Clear History clears saved notebook/session history, including workbook-scoped AI conversations, as well as the installed-package record and virtual-filesystem data. It does not clear the separate Global AI conversation, every preference or cache, an AI API key, or a remote broker credential.
- In Direct mode, AI panel > Clear deletes only the currently selected saved conversation (the active workbook's conversation or Global). If Remote context may exist, Clear requires a second confirmation and acknowledgement from a compatible, updated broker; it then resets that broker session and deletes every workbook and Global conversation. If the broker is old, unavailable, or refuses the reset, the saved conversations stay. Any separate copy previously mirrored into workbook cells remains until you delete those cells or their workbook data.
- AI Settings > Advanced > Reset All removes locally saved Direct AI settings, including the saved AI API key.
- Saved remote profiles can be deleted in Remote bridge settings. Deleting the active profile also removes its live broker URL, pairing token, and auto-connect setting.
On Android, clear the app's storage in Android settings or uninstall the app to remove its local profile. On Windows, quit SciREPL Pro and delete %APPDATA%\SciREPL-Pro-Electron; deleting the portable application directory or uninstalling a future packaged build may leave this separate profile behind. Data already sent to an AI provider, broker, remote agent, download host, backup provider, or sharing destination is governed by that third party's retention and deletion practices; SciREPL's developer cannot delete it for you.
Platform backups
The Android build requests that cloud backup be disabled and declares exclusions for app data in both cloud-backup and device-transfer rules. Android notes that device-to-device behavior can still vary on some manufacturers' devices. The Electron container does not configure Windows Backup or third-party backup tools; those tools may include the Chromium profile if you configure them to back up that location. Platform and backup services are controlled by you and their providers, not by SciREPL's developer.
Local notebook execution
Python, R, Prolog, ClojureScript, Bash, JavaScript, Lua, and TypR notebook code runs on your device through WebAssembly or browser-based runtimes. Local execution does not mean that executed code is unable to use the network or read locally available data. Code you run can make requests to destinations chosen by that code. Remote AI inference, remote-agent sessions, and broker-host terminal sessions are not local notebook execution and are covered separately below.
Direct AI services
Direct AI and AI Prompt cells are optional. They send data only after you configure an endpoint, accept the Direct AI disclosure, and either send a message or explicitly run an AI Prompt cell. SciREPL Pro can connect directly from your device to Anthropic, OpenAI, OpenRouter, an Ollama-compatible endpoint, or another OpenAI-compatible endpoint you enter. SciREPL's developer does not proxy these requests.
When you send a message in the AI Assistant panel, its request can include:
- Your message and the app's system instructions.
- The selected provider, model, model settings, and tool descriptions.
- Automatically, up to the first 500 characters of every cell in the current notebook, together with each cell's number, name when present, and language.
- Earlier bounded, text-only content from the selected saved workbook or Global conversation.
- Results of tools that the model is permitted to use. These results can include full cell source, cell names and types, textual or structured cell output, namespace metadata, execution results, files from permitted virtual-filesystem locations, and—only when the separate Workbook import/export permission is enabled—the complete serialized active notebook.
The 500-character cell preview is added to AI Assistant messages before tool permissions are evaluated. Review mode and other tool permissions govern later tool calls; they do not remove those automatic previews.
An AI Prompt cell instead sends one isolated request containing its prompt and brief app instructions. If you choose cell context, the selected cells' source, names, and languages are shown for review before Run sends them. New context selections also include saved output text by default; use the visible switch to exclude it. Existing saved source-only selections stay source-only. Saved output text can include text extracted from rich HTML or SVG output. No image is attached and no raw rich-output markup is added automatically, although selected source or text may itself contain such data. Configuring context alone sends nothing; Run asks you to review the exact selected context before anything is sent. If you choose to replace a cell, its exact target source is also shown for review before it is sent so the provider can generate a replacement; that source may contain credentials. Canceling the review sends no request. AI Prompt cells do not automatically include previews of every cell, the AI Assistant conversation, or tool calls and results. They currently use the AI Assistant's configured provider, model, and API key; the independent AI Prompt model option is a preview only and does not change requests in this build.
Your saved API key is sent in an authentication header to the selected endpoint. That endpoint also receives ordinary network metadata such as your IP address, request time, and WebView or Electron/Chromium headers. OpenRouter may pass request content to the downstream model provider selected for the request. A custom or Ollama-compatible endpoint may be on your device, on your network, or operated by another party. SciREPL Pro requires non-loopback AI endpoints to use https://; unencrypted http:// is accepted only for loopback hosts, such as localhost, 127.0.0.1, or ::1.
The endpoint operator processes the data to authenticate the request, generate responses, and perform requested tool interactions. Its logging, training, retention, account, billing, and deletion rules are governed by its own terms and privacy policy. See the policies for Anthropic, OpenAI, and OpenRouter. Do not send personal, confidential, regulated, or secret information unless you have reviewed and accepted the selected provider's practices.
AI permission controls and limitations
SciREPL Pro applies its AI tool and kernel settings to requests handled by the in-app agent and the remote MCP bridge. These settings control what the app agrees to do; they do not control data after it has been sent to an AI provider, broker, remote agent, or other third party.
- Full control allows permitted AI tools, project-source browsing, notebook writes, and language-kernel execution without routine prompts. While selected, it overrides the separate source-browsing and Agent writes scope settings. It does not override Review mode, remote-data consent, the global JavaScript-kernel disable, explicit per-tool or per-kernel Ask or Deny rules, or the app's virtual-filesystem path and sensitive-data protections.
- Open allows ordinary notebook tools and kernel execution without routine prompts, but it continues to respect the separate source-browsing and Agent writes scope settings, as well as explicit tool and kernel rules.
- Per-kernel execution rules are available through Menu > Languages & modes > AI Kernel Access and AI Settings > Kernels. Default inherits the overall security level; Allow runs without a kernel prompt; Ask requests confirmation; and Deny blocks AI-initiated execution. TypR compiles to and executes R, so a TypR run requires permission for both the TypR and R kernels; the more restrictive result applies.
- Review mode remains authoritative even when Full control is selected: it blocks kernel execution and ordinary edits or deletion. The separately enabled option to append review notes writes only to the dedicated AI Review worksheet.
- Workbook import/export is a separate permission that starts Off and does not inherit Full control, Open, or Agent writes. Ask requests approval for every call. Review mode always blocks workbook import; explicitly permitted export can still send the complete active notebook.
- Remote-data consent is separate from the security level. The app requires it when opening or restoring a broker connection and again before handling a remote tool request. Selecting Full control does not grant remote consent. Direct AI consent and the AI Assistant's automatic notebook previews described above are also separate from tool permissions.
Browser-context limitation: JavaScript cells execute natively in SciREPL's browser context rather than in a separate language sandbox. Python and ClojureScript code can also use their runtime bridges to reach browser JavaScript APIs. The global JavaScript setting applies to the JavaScript kernel; it does not remove browser access exposed by another allowed kernel. AI kernel rules can block or ask before normal app-controlled execution begins, but code that is allowed to run may be able to access app-held data or make network requests outside later app-level checks. These settings are execution permissions, not capability isolation, and their restrictions are best-effort once such code starts. Android WebView and Electron renderer sandboxing limit the application relative to the wider device or computer; Electron does not expose Node.js, filesystem, shell, or generic native IPC to the page. SciREPL does not guarantee that allowed notebook code is isolated from other browser-accessible data held by the app.
Remote MCP bridge and remote agents
The Remote bridge is optional. You choose the broker URL and pairing token. SciREPL's developer does not provide or operate a default broker service.
When you connect, the app sends the pairing token and the available notebook-tool descriptions to the configured broker. External MCP clients or broker-spawned agents can then request permitted operations. Information sent through the broker can include tool arguments and results, cell lists and previews, full cell source, cell output, virtual files, namespace information, code-execution results, and—only when the separate Workbook import/export permission is enabled—the complete serialized active notebook. A permitted workbook import can replace the active tab or create a new one, but imported code is not executed automatically. Remote-agent chat also sends your chat messages to the broker and returns the agent's responses and activity.
A remote agent such as Claude Code, Codex, Gemini, or another configured agent may forward prompts, notebook data, and tool results to its own model or service provider. The broker operator, external MCP client, remote-agent provider, and model provider may each have separate logging and retention practices.
Review mode, security levels, write scope, and confirmation prompts can restrict tool calls handled by the app, but they do not control data already sent to the broker or the practices of software running on the broker host. Auto-connect, when enabled, reconnects to the selected broker when the app starts or returns to the foreground.
SciREPL Pro requires non-loopback broker connections to use encrypted wss://; unencrypted ws:// is accepted only for loopback hosts, such as localhost, 127.0.0.1, or ::1. Transport encryption protects the connection to the configured broker, but SciREPL cannot guarantee that a user-operated broker, downstream agent, model provider, or private network is securely configured or operated.
Remote terminal
Terminal mode is an optional remote feature. When enabled on the broker, all terminal keystrokes, commands, terminal output, and session-control messages travel between the app and the broker host. The terminal can expose an interactive coding agent or a real shell on that host. Treat the pairing token like a password, use only a broker you trust, and understand that terminal commands can access data and systems outside the notebook. The broker controls terminal-session retention and any shell or agent history.
Runtime, library, package, and workbook downloads
The Pro Android and Electron builds normally include Python, R, Prolog, and ClojureScript runtimes, as well as their local JavaScript, Bash, and TypR components. Lua is normally downloaded when first used. If a bundled runtime is missing, fails to load, is overridden in settings, or requires additional packages, the app may try a configured content-delivery network or package repository.
Other network requests can include:
- Lua runtime files from jsDelivr or unpkg.
- Fallback runtime files and optional Python or R packages from their configured repositories or mirrors.
- After you accept the current network disclosure, opening Languages & modes may query
data.jsdelivr.comfor R and Prolog package-version metadata. If consent has not yet been given, choosing Check latest opens this privacy dialog; no metadata request is sent unless you accept. The lookup does not download or activate a runtime. - When you open Browse after accepting the current disclosure, verified SciREPL Catalog release metadata from the configured static catalogue host (by default
s243a.github.io) and immutable catalogue or workbook bytes fromraw.githubusercontent.com. These requests do not intentionally include notebook content, search text, spoken-language choices, fallback preferences, or kernel filters. Selecting a development branch additionally asksapi.github.comto resolve that branch to an exact commit. - The DOCX export library (docx@9.6.0) from jsDelivr when DOCX export is requested.
- Ko-fi when you choose the external support link.
- Files or URLs explicitly requested by notebook code or file-fetching features.
These services receive ordinary request metadata, including your IP address, request time, device or browser headers, and the requested URL. Runtime and library requests do not intentionally contain notebook content, but URLs or requests created by notebook code may contain whatever information that code supplies.
Optional experimental network guardrail
The network guardrail is experimental, enabled by default, and may be disabled under Menu > Security. Before notebook code may make an external request, you must accept the current privacy disclosure. Hosts on your allowlist may then be contacted without another question; for an unlisted host, requests that can pause ask you before sending, while XMLHttpRequest, WebSocket, and EventSource are blocked until the host is listed. Same-origin and local requests are exempt. Configured runtime downloads have limited built-in host rules but still require the current disclosure.
SciREPL Pro checks network requests it can observe from notebook code and code run through app-mediated agent actions against host rules you control. If only manual notebook code or only an agent has run since the page loaded, the app uses that scope's lists. After both have run, every observed request must satisfy both scopes' lists until the app reloads. Changes to the guardrail and isolated-connection switches apply after reload.
On Android, if you separately enable the isolated connection, eligible approved HTTPS requests can use an app-owned native connection that does not send or store WebView cookies and enforces a response-size limit. Automatic redirects are disabled in that connection; SciREPL Pro rechecks each redirect destination before separately following the next hop.
This feature is a best-effort guardrail against mistakes, not a sandbox or security boundary. Notebook runtimes share parts of the app's browser context, so code that is allowed to run may be able to alter or bypass app-level network checks. The guardrail switches, host lists, and saved answers are stored locally in the app. SciREPL's developer does not receive them.
Exports and sharing
Notebook and workbook exports are created on your device. Workbook-scoped AI conversation text is omitted unless you explicitly select Include AI conversation; the Global conversation is never included in a workbook export. If you use the browser download interface, Android share sheet, Windows file handling, email, cloud drive, or another destination, the receiving application or service receives the file you selected. SciREPL's developer does not choose or monitor that destination.
Analytics, advertising, and developer access
The current version of SciREPL Pro does not include developer-operated analytics, advertising, crash reporting, or behavioral-tracking SDKs. It does not require a SciREPL account. The developer does not receive your notebooks, AI API keys, broker tokens, or AI conversations through a SciREPL-operated server. Third-party services described above may independently log requests made to them.
The current app contains no mechanism by which SciREPL's developer sells your personal or sensitive data.
Children's privacy
SciREPL Pro is not designed to collect personal information from children and does not knowingly operate a service that collects it. Optional AI providers, brokers, package hosts, backup services, and sharing destinations have their own age requirements and privacy practices. A parent or guardian should review those services before a child uses them.
Changes to this policy
This policy may change when SciREPL Pro adds or changes storage, network, AI, remote-agent, or distribution features. The effective date at the top will be updated when the policy changes.
Contact
For privacy questions, contact the developer by opening an issue in the public SciREPL issue tracker. GitHub issues are public. Do not include API keys, pairing tokens, private notebook content, personal information, or other sensitive data in an issue.