Your privacy,
taken seriously.
This policy explains what data Jupyter Express collects when you use our AI-powered coding assistant, how we use it, and the choices you have.
What is Jupyter Express?
Jupyter Express ("we," "us," or "our") is a Python package that integrates an AI coding assistant directly into your Jupyter notebook environment. When you use the ask() function or the %run_jupyter_express magic command, your prompts are sent to our backend API, which relays them to an AI model and returns generated code.
This Privacy Policy applies to all users of the Jupyter Express package and our associated website at jupyter-express.com. By installing or using Jupyter Express, you agree to the practices described here.
Information We Collect
When you install or first use the package:
- A randomly generated, anonymous identifier (UUID) is created and stored in a local configuration file on your device. This identifier is used solely to authenticate your API requests and track your token balance. It contains no personal information and cannot be used to identify you.
When you send a prompt:
- The text of your prompt.
- Your conversation history for the current session (to give the model context for follow-up questions).
- A schema of your notebook's in-memory variables — names and data types only (e.g.,
df: DataFrame, shape (100, 5)). Values of your variables are never transmitted. - Your device key (UUID), used to authenticate the request and track token usage.
Standard server logs:
- IP address and timestamp, retained for security and abuse prevention.
- HTTP request metadata (endpoint, response status).
When you purchase tokens on our website:
- Your email address, used to create your account and send order confirmations.
- Billing information (name, billing address) as required to process your payment through WooCommerce.
- Payment details — card numbers are handled directly by our payment processor and are never stored on our servers.
- Your purchase history and token top-up records, associated with your account.
How We Use Your Information
We use the data we collect solely to:
- Generate accurate, context-aware Python code in response to your prompts.
- Authenticate your requests and track your token balance.
- Process token purchases and manage your account on our website.
- Send transactional emails (order confirmations, receipts) related to your purchases.
- Detect and prevent abuse, fraud, or unauthorized API access.
- Monitor service health and diagnose technical issues.
- Comply with applicable laws and legal obligations.
We do not use your prompts or notebook schemas for advertising, do not sell your data to third parties, and do not use your data to train AI models without your explicit consent.
Who We Share Data With
AI Model Providers. Your prompt and conversation history are forwarded to a third-party AI model provider (currently Anthropic) to generate code completions. Their use of data is governed by their own privacy policy. We encourage you to review it.
Infrastructure & Hosting. Our API is hosted on third-party cloud infrastructure. These providers process data on our behalf under data processing agreements that restrict their use of your data.
Legal Requirements. We may disclose information if required by law, subpoena, or other legal process, or if we believe in good faith that disclosure is necessary to protect our rights, your safety, or the safety of others.
Local Storage & Browser Data
The Jupyter Express UI widget uses your browser's localStorage to persist two types of data entirely within your own browser:
- Prompt History — the prompts you have typed, keyed per notebook path, so you can recall and reuse them.
- Conversation History — the multi-turn dialogue with the AI, used to restore context if you restart the Jupyter kernel.
This data never leaves your browser unless you submit a new prompt (at which point the relevant history is included in the API request as described above). You can clear this data at any time using the "Clear Prompt History" and "Clear Agent Memory" buttons in the widget, or by clearing your browser's localStorage manually.
Your device key (UUID) is stored in a local configuration file on your filesystem at the path managed by platformdirs (typically inside your user config directory). This file contains no personally identifiable information.
How Long We Keep Your Data
- Prompt content: Retained on our servers for up to 30 days for abuse monitoring, then permanently deleted.
- Server logs (IP, timestamps): Retained for up to 90 days for security purposes.
- Token usage records: Retained for the lifetime of your account/key for billing and support purposes.
- Account and purchase data (email, billing info): Retained for as long as your account is active, and for up to 7 years thereafter as required by applicable tax and financial regulations.
- Local browser data: Stored indefinitely in your own browser until you choose to delete it.
How We Protect Your Data
All data transmitted between the Jupyter Express package and our API is encrypted in transit using TLS 1.2+. Requests are authenticated using your unique device key, which is never transmitted in plain text in logs.
We apply the principle of least privilege to internal data access and conduct regular security reviews of our infrastructure. However, no system is perfectly secure. We encourage you to avoid sending sensitive credentials, personal data, or proprietary secrets in your prompts.
Your Choices & Rights
Depending on your jurisdiction, you may have the following rights:
- Access — Request a copy of the data we hold associated with your device key.
- Deletion — Request deletion of your prompt history and associated records from our servers.
- Portability — Request your data in a machine-readable format.
- Objection — Object to certain processing activities.
To exercise any of these rights, contact us at the address in Section 11. We will respond within 30 days. Because we do not collect your name or email at registration, please include your device UUID (found in your local config file) so we can locate your records.
Children's Privacy
Jupyter Express is a developer tool intended for users aged 13 and older (or the applicable age of digital consent in your jurisdiction). We do not knowingly collect personal information from children under 13. If you believe a child has submitted data to our service, please contact us so we can delete it promptly.
Changes to This Policy
We may update this Privacy Policy from time to time. When we do, we will update the "Last Updated" date at the top of this page. For significant changes, we will provide a notice on our website or in the package's release notes.
Continued use of Jupyter Express after a policy update constitutes your acceptance of the revised policy. We encourage you to review this page periodically.