https://github.com/nilp0inter/jupyter-tincan
Jupyter-TinCan: A Jupyter kernel proxy that transforms sensitive text in cell outputs into images.
https://github.com/nilp0inter/jupyter-tincan
Last synced: 7 months ago
JSON representation
Jupyter-TinCan: A Jupyter kernel proxy that transforms sensitive text in cell outputs into images.
- Host: GitHub
- URL: https://github.com/nilp0inter/jupyter-tincan
- Owner: nilp0inter
- License: mit
- Created: 2023-12-01T21:04:05.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-23T08:45:28.000Z (10 months ago)
- Last Synced: 2025-10-27T21:41:47.338Z (9 months ago)
- Language: Jupyter Notebook
- Size: 2.07 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Welcome to Jupyter-TinCan!

In the realm of data science and software development, safeguarding sensitive information is paramount. Traditional approaches, such as using remote desktop interfaces to access Jupyter notebooks, offer security but at a cost to user experience. These methods typically involve a cumbersome 'browser within a browser' setup, leading to ergonomic challenges like conflicting keyboard shortcuts, noticeable latency, and a disconnect from local development tools like VSCode. Often, developers find themselves forced into less efficient workflows, such as committing code remotely instead of locally.
Jupyter-TinCan changes the game by offering a simpler, more intuitive solution. It transforms sensitive text in notebook cells into images, maintaining data security while enhancing user experience. No more cumbersome setups or workflow disruptions – just smooth, secure, and efficient development.
## What does it do?
Here's a snapshot of Jupyter-TinCan in its element:

1. **Spot the TinCan**: That tiny tin can icon next to the kernel name? That's your cue that Jupyter-TinCan is on duty, turning your notebook into a secure data haven.
2. **Data in Disguise**: Check out the DataFrame output. It's not just plain data; it's been TinCanned into an image. Good luck trying to copy text from that.
3. **Shell Outputs, Secured**: Even the outputs from shell commands are getting the image treatment. That's right – no more worrying about accidentally leaking sensitive information.
With Jupyter-TinCan, your sensitive data stays under wraps, and your notebook remains as usable as ever. It's the kind of security that fits right into your workflow without a fuss.
## Installation
```console
$ pip install jupyter-tincan
```
You also need nodejs and have text2svg available.
```console
$ npm install -g text2svg
```
## Usage
You can configure any pre-existing Jupyter kernel to use Jupyter-TinCan. First let's list the kernels we have installed:
```console
$ jupyter kernelspec list
Available kernels:
python3 /usr/local/share/jupyter/kernels/python3
```
Now let's put the python3 kernel into TinCan mode:
```console
$ mkdir python3-tincan
$ jupyter tincan create-kernel /usr/local/share/jupyter/kernels/python3 > python3-tincan/kernel.json
```
This will create a new kernel spec file called `kernel.json` in the `python3-tincan` directory.
You can now install this kernel spec into Jupyter:
```console
$ jupyter kernelspec install python3-tincan
```
or
```console
$ jupyter kernelspec install --user python3-tincan
```
### Acknowledgments
"Jupyter" and the Jupyter logos are trademarks of the NumFOCUS foundation. Our use of these trademarks does not imply any endorsement by Project Jupyter or NumFOCUS. Jupyter-TinCan is an independent project developed to integrate with Jupyter software.
This project is not affiliated with Project Jupyter but is designed to be compatible with and enhance the Jupyter notebook experience.
### Disclaimer
Jupyter-TinCan is experimental software provided 'as-is' without any express or implied warranties. By using this software, users acknowledge the potential risks, such as data loss or incorrect data transformations, and agree to bear full responsibility for any consequences arising from its use. The developers are not liable for any damages or losses incurred from the software's operation or failure.