NoteRun Known Limitations
Version 1.0 · Last updated: 4 October 2026
NoteRun runs Python 3.13 on your iPhone or iPad, with the packages that come with the app. Most notebooks for learning and data analysis work unchanged. These are the known limits of version 1.0.
Python and packages
- Only the packages that come with the app are available.
pip installrecognizes them and explains why for any other; nothing is installed from the internet. The list is in Settings › Python and packages. - Packages load the first time they are imported. This takes a few seconds; the largest ones can take up to half a minute.
- Code that uses the internet isn’t supported:
urllib,requestsand sockets don’t work. Read your data from files. This includes data that libraries download, such asseaborn.load_dataset(),nltk.download()and scikit-learn’sfetch_functions: put the files next to your notebook instead. - Threads and subprocesses aren’t available: starting a thread,
subprocessandmultiprocessingfail.sslandlzmaaren’t included. - There is no GPU support; TensorFlow, PyTorch and OpenCV aren’t available.
- Only Python runs; R, Julia and other kernels aren’t supported.
Running code
- Stop halts Python code right away. A long calculation inside a library’s native code may not stop; NoteRun then offers to restart Python, which clears the variables.
- If NoteRun stays in the background for a long time, iOS may stop Python. The variables are lost; the notebook and its outputs stay.
- Supported magics:
%matplotlib(plots appear automatically),%pylab,%runfor.pyfiles, and%pip installor!pip installfor the included packages. Other magics and shell commands such as!lsaren’t supported; NoteRun says so before you run the cell and can turn the line into a comment. - NoteRun was tested on devices with 4 GB of memory or more. On devices with less, it shows a notice at first launch. Very large data can exceed the device’s memory.
- Code written for Google Colab (
google.colab,drive.mount) doesn’t run in notebooks opened from files or links; NoteRun points it out before you run the cell and can turn those lines into comments. Notebooks received with AirCode are the exception (below). - NoteRun can update common outdated code in one tap: Python 2
print, names removed from NumPy, pandas.ix, old matplotlib style names. Changes whose result depends on your data, such as Python 2 integer division orDataFrame.append, are left to you. - From
IPython.display, NoteRun providesdisplay,HTML,Image,Markdown,Latexandclear_output. The rest of IPython, such asget_ipython()and widgets, isn’t available.
Outputs
- A cell shows up to 1 MB of text output; the rest isn’t shown.
- Terminal colors (ANSI codes) aren’t drawn; the text appears without them.
- Tables show their first 200 rows in the notebook. Open table shows the whole table full screen and shares it as a CSV file; the viewer draws up to 100 columns, the CSV file has all of them.
- When pandas shortens a long table, the whole table is available while the session that produced it is running and the data has not changed since. After the notebook is reopened or the kernel is restarted, the preview in the output is shown and exported until the cell is run again.
- In the full-screen table, tapping a column sorts or filters it, and Add to code writes the same steps into the notebook as pandas code. This works for pandas tables while their session is running. It is not offered for tables with repeated or multi-level column names, and a column with mixed value types can only be filtered by empty or not empty. Filters are combined with and; sorting uses one column.
- A column’s summary shows its counts, the rows of describe and either a histogram of ten ranges for numbers or the ten most frequent values for other columns. Date columns have no chart. The summary follows the filters, not the sort.
- Grouping uses one column and one calculation: the number of rows, or the sum, mean, minimum or maximum of a number column. Rows whose group value is empty are left out, as pandas does. A grouped table can be sorted but not filtered; filters apply before grouping.
- In the full-screen table a column is as wide as its longest value, up to 40 characters; longer values are shortened there and are complete in the CSV file.
- Add to code needs a way to refer to the table: a variable name, or a last line of the cell that fits on one line. A table shown with display has neither.
- Open from link downloads a notebook from GitHub, a gist, Kaggle, or a Colab or Google Drive link shared with anyone who has the link, together with the data files its code names. On GitHub, data files come from the notebook’s folder and from folders above it inside the repository (
../data/x.csv); in gists only from next to the notebook; Drive has no data files. A file named through a variable or a pattern (data/*.csv) isn’t downloaded and the summary says so. Private files aren’t opened. - A GitHub repository or folder link lists the notebooks under it and you choose one. GitHub allows 60 such listings an hour per network without an account; when that runs out, or the repository is too large to list, NoteRun offers to download the repository as a ZIP (up to 100 MB). A notebook’s own link is not affected.
- Download the whole folder (after a GitHub download) brings the rest of the notebook’s folder: up to 300 files, 50 MB each, 200 MB in all. Git LFS files and symbolic links aren’t downloaded.
- A ZIP with a notebook and its data opens from Files, from another app’s share menu or from a GitHub archive link. It is extracted into NoteRun’s folder with its folders kept: up to 2,000 files, 50 MB each, 300 MB in all; files over the limit are skipped and named. Encrypted and multi-part archives aren’t opened.
- Code can read folders above the notebook (
../data) only for notebooks inside NoteRun’s own folder that sit in a subfolder of a downloaded repository or an extracted ZIP. For a notebook opened from Files or iCloud Drive, code sees the notebook’s folder, or the work folder you choose. - Share › NoteRun (in Safari or another app’s share menu) hands the page’s link to Open from link and starts the download. iOS may ask whether to open NoteRun. If NoteRun doesn’t open, open it yourself: the link is waiting and the download starts. A link left waiting for more than ten minutes isn’t downloaded on its own; the page opens with the link filled in.
- From Kaggle, the files the code reads from open datasets are downloaded; a small dataset comes whole when the code doesn’t name its files. Competition data, other notebooks' outputs and models aren’t downloaded: competition data needs a Kaggle account, so download it on kaggle.com and add it with Add file. Downloading from Kaggle doesn’t always work, because Kaggle sometimes asks for a sign-in.
- Kaggle’s paths work without changing the code: /kaggle/input and ../input point to the input folder next to the notebook, /kaggle/working to the notebook’s folder. Limits: 25 MB for the notebook, 50 MB per file, 200 MB and 50 files in total.
- AirCode needs the NoteRun AirCode extension for Chrome on a computer and works with Google Colab only. It sends the notebook open in Colab, including unsaved changes, and the data files its code names that are in Colab’s /content folder: up to 10 MB in all. A file named through a variable or a pattern isn’t found, and files in Drive are sent only if Drive is mounted in that Colab session. Both devices need the internet.
- An AirCode QR code works once and for 10 minutes. You can send a notebook back to Colab for 7 days after it was sent from Colab; after that, send it from Colab again.
- In notebooks received with AirCode, Colab code runs as it is: /content is the notebook’s folder,
drive.mountandfiles.uploaduse the files that came with the notebook, andfiles.downloadsays where the file is. Other!and%lines and cells such as%%bashare skipped and NoteRun says so;%timeand%timeitrun the code without timing it. - Sending back sends the cells' code and text and the data files that changed or were added; outputs aren’t sent. To apply it, open the same notebook in Colab in Chrome; the extension shows it, and Apply writes the cells and saves the notebook. Data files are written when Colab is connected to a runtime, and only into folders that exist there. A notebook that can’t be saved in Colab (opened in playground mode or without edit access) can be downloaded as a new copy instead.
- Tables in HTML output are drawn natively. Other HTML, JavaScript and interactive widgets (such as ipywidgets or Plotly) appear as their plain-text version; the HTML source can be shown.
Markdown
- Headings, emphasis, links, lists, code blocks and
<br>are drawn. Math (LaTeX), tables, images and quotes appear as their source text.
Files
- NoteRun opens and saves
.ipynbfiles where they are, and it can share a notebook as a.pyscript. Exporting to PDF or HTML isn’t available. - To read data files next to a notebook, give access to its folder when NoteRun asks.
- If a file your code reads isn’t in the work folder, NoteRun says so before you run the cell and lets you add the file. It can only check a folder it has access to.
Interface
- NoteRun is in English, Turkish, Japanese and Brazilian Portuguese; on a device set to another language it uses English.
- Search on the first screen finds recently opened notebooks, the sample notebooks and notebooks inside NoteRun’s own folder, by name. Notebooks elsewhere in Files or iCloud Drive aren’t searched; open them with Open from Files.
- Swiping a recent notebook removes it from the list only; the file stays where it is.
If a notebook doesn’t work and the reason isn’t listed here, write to the developer with a diagnostic report.