July 7th, 2024

Show HN: A modern Jupyter client for macOS

Satyrn is a Jupyter client for Mac with fast startup, context-aware prompts, minimalist design, and a modern command palette. It supports Black code formatting, easy graph/table copying, and seamless virtual environment management. User-friendly, it directly handles ipynb files, detects kernels, and needs no setup.

Read original articleLink Icon
Show HN: A modern Jupyter client for macOS

The text describes Satyrn, a modern Jupyter client designed for Mac users. It offers a faster startup compared to VS Code and JupyterLab, context-aware prompt cells for code generation, a minimalist design for uninterrupted workflow, and a modern command palette for efficient task completion. Satyrn supports Black code formatting for organization, allows easy copying of graphs and tables, and facilitates the addition of new virtual environments through its kernel manager. The client is user-friendly, as it works with all ipynb files directly from the Finder, automatically detects existing kernels, and requires no setup - users can simply download the app and start coding.

Link Icon 48 comments
By @benrutter - 6 months
This looks great! Since jupyter notebooks are used by a lot of people (like scientists, business analysts etc) I think there's a genuine niche for just having a jupyter notebook client for folks to get started with quickly.

Adding something like built in .venv support and even python distribution would be immense (I'm thinking of a dream scenario where installing something like this gives a beginner all the tools to get up and running python notebooks with) any plans for that on the roadmap?

By @ibash - 7 months
Thank you for attempting to use swift first. Electron apps are bloated and overused.

Excited to play around with this!

By @pbronez - 7 months
Cool!

Surprised to hear you started with a native UI and pivoted to electron. What was the major blocker there?

I recently got frustrated with OpenSCAD and decided to try CadQuery and Build123d. The modeling backend is a big step forward, but the GUI is not nearly as good as OpenSCAD. I managed to get it working via VSCode with a plugin, but I’m dreaming of embedding everything in a dedicated MacOS app so I can jump into CAD work without hacking through dev setup.

By @keepamovin - 6 months
I love your website design! How did you put that together? What did you use for the app screenshots and logo graphics?

Is your project related to these two other "Satyrn"s ??

Satyrn: A Notebook alternative that supports branching code and local collaboration. https://github.com/CharlesAverill/satyrn

Satyrn: A Platform for Analytics Augmented Generation https://arxiv.org/abs/2406.12069

By @indrex - 6 months
When I first started coding, I wished there was an “app” for it where I just start writing code. Now there is.
By @mritchie712 - 6 months
This is great. I've wanted to build something similar many times, but like you've mentioned, it's tricky to monetize.

Feature request: If I drag a tabular file (e.g. CSV, parquet, etc.) into the UI, do something like:

    temp1 = pd.read_csv('path_to_file')
    temp1.head()

Good luck with it!
By @cheptsov - 7 months
Can I use it to connect to a remote Jupyter notebook server?
By @spott - 6 months
So, it looks like if you try and add a kernel for a virtualenv that doesn't have ipykernel installed you immediately install it in the virtualenv with `pip`

It would be great if you asked the user before doing this. My environments are usually managed by one of poetry or pipenv or nix, not pip. Which means now my lock files and installed stuff is out of sync.

By @gcr - 7 months
Nice!

Is this loading the same webpage whatever JupyterLab is serving or did you write the JavaScript machinery for cell management etc yourself?

If the latter, are interactive plotly graphs or IPython widgets on your radar?

By @dsp_person - 7 months
Anyone else live in a Jupyter QtConsole?
By @ashu1461 - 7 months
What were your initial thoughts on tradeoffs on making this a vs code extension vs a separate app ?
By @AnonC - 6 months
I do not see a privacy policy nor anything about telemetry, analytics or other data collection by the app. It would be good to clearly state what you’re collecting or not collecting. Without this, running such an app on a desktop OS seems a bit scary.

I also hope you’re able to add something about the business model soon.

By @yboris - 7 months
I hope you consider an open source model: code available freely on GitHub & app available for purchase on your website.

I was scared about doing it this way, but it worked out for me: https://videohubapp.com/ for pay-what-you-want-$5-minimum for my app, and https://github.com/whyboris/Video-Hub-App git-clone-and-build for the code. I currently sell about 60 copies per month (same average across the last 4 years too).

By @kulikalov - 6 months
Looks great! I'd love to get a notification once you add remote servers support. What channel should I use? Besides discord.
By @hpen - 6 months
Anybody interested in a Jupyter notebook like experience for Swift and iOS development ML / data science algorithms. Think write on macOS but run on an actual device but send data back to the host and draw charts, etc. Like run computer vision alogirhtms your developing on actual hardware, cameras, etc but with notebook like cells on macOS
By @alisiddiq - 6 months
My biggest issue with Jupyter is the key bindings, I want to be able to import my Jetbrains keybindings to Jupyter notebooks but havent found a good way. The Jupyter implementation in Pycharm is just terrible so still stuck using jupyter in the browser.

Will your tool allow custom key bindings?

By @remixer-dec - 6 months
Oh god, not another 550mb app... there are a lot of lightweight alternatives to electron that can provide the same frontend experience if you don't need nodejs: tauri, wails, pywebview...
By @mrtranscendence - 6 months
Navigation between cells with j/k doesn't seem to work, unfortunately. I'm used to not having to move my hands to use the mouse when editing a Jupyter notebook.
By @Halan - 7 months
The reason people use an actual IDE instead of Jupyter web is because it allows you to jump in the libraries source code
By @29athrowaway - 7 months
Does it work with Sagemath?
By @magnio - 7 months
To be frank, I don't see any additional features of the app over VSCode, other than it starts up faster, which does not matter much as VSCode starts up faster than the import cell of any notebooks I have. Also, one big reason I use VSCode for notebook is to get the Python LSP.

Good luck to you though, I do think the demographics of scientists who find VSCode confusing is actually sizeable.

By @p5v - 6 months
I am sorry, but "it's built with Electron" is all I need to know at this point. I appreciate the effort you've put in it, and I am sure that it is a great improvement. After all, I am using VS Code on a daily basis, and it's all about Electron, so I don't think that it will be that much slower than a fully native app. However, there is something about the minimal footprint nature of native macOS that I just can't go around. You just feel the snappiness of it, on a sub-nano-second level.
By @oli5679 - 7 months
I use notebooks the whole time, normally in vs-code and with github copilot setup.

I found it quite painful to point it to a couple of environments I have, and confusing how i get it pointing to my gpt4 api keys. Once I did these two I was not sure how to prompt rather than typing a command.

Good luck with this, don't mean this in a critical way, just trying to give some feedback of what I think when I first try it.

By @twarge - 7 months
This sort of high performance minimalism is precisely what makes the Mac app ecosystem great. Not because you can't write the same thing on other platforms, but because everyone who cares about it has condensed on the Mac platform.

Would love to see this adopt the document-based app API and the toolbar API.

By @guesswho_ - 6 months
People are excited for less functional app. This is insane.
By @wiihack - 6 months
Looks great! :)
By @asdf_snar - 7 months
I use Jupyter Lab every day on OSX in scientific/academic work, so I feel I am your target audience. In case it helps you gauge my impression, I spent about two minutes reading the post and scrolling through the website.

I feel I did not understand the main advantages of this notebook aside from the AI integration. I don't understand how "start-up" time is a cost; I have a Jupyter server running at all times and use it as a scratch-pad throughout the day, so it is always available.

I don't understand the "modern command palette". As far as I can tell all the commands are available to regular Jupyter Labs, and either way I always use hotkeys for them.

The code formatting using black isn't bad, but notebooks are for scratchy ideas, not real code. If I'm at the point of formatting code, it's going in an actual IDE. I'd even argue providing formatting inside of a notebook encourages bad habits for scientists, who prefer to stay entirely within a notebook, but are then sometimes unable to reproduce their results.

I don't see the advantage of the copy-paste; I can copy paste directly from Labs to Slack/online editing pages, and certain Latex typesetters.

Pros: it looks pretty, the site has nice demo videos (in terms of quality; I didn't understand the content).

I want to like this but I don't see any benefits for a power user except for the AI integration; if AI is the only selling point then I prefer to get it differently.

By @jackhodkinson - 7 months
Thanks for checking out my project. I'd love your feedback in the comments.

I'm not sure if the post text above is visible (I can't see it on my phone's HN reader) so I'm going to repost it here as a comment too:

I love Jupyter – it's how I learned to code back when I was working as a scientist. But I was always frustrated that there wasn't a simple and elegant app that I could use with my Mac. I made do by wrapping JupyterLab in a chrome app, and then more recently switching to VS Code to make use of Copilot. I've always craved a more focused and lighter-weight experience when working in a notebook. That's why I created Satyrn. It starts up really fast (faster time-to-execution than VS Code or JupyterLab), you can launch notebooks right from the Finder, and the design is super minimalist. It's got an OpenAI integration (use your own API key) for multi-cell generation with your notebook as context (I'll add other LLMs soon). And many more useful features like a virtual environment management UI, Black code formatting, and easy image/table copy buttons.

Full disclosure: it's built with Electron. I originally wrote it in Swift but couldn't get the editor experience to where I wanted it. Now it supports autocomplete, multi-cursor editing, and moving the cursor between cells just like you'd expect from JupyterLab or VS Code.

Satyrn sits on top of the jupyter-server, so it works with all your existing python kernels, Jupyter configuration, and ipynb files. It only works with local files at the moment, but I'm planning to extend it to support remote servers as well.

I'm an indie developer, and I will try to monetize at some point, but it's free while in alpha. If you're interested, please try it out!

I'd love your feedback in the comments, or you can contact me at jack-at-satyrn-dot-app.

By @wenc - 7 months
I used to use Jupyter and Jupyter Lab, but by far the most able Jupyter interface today is actually VS Code (I use this every day).

The interface is sleek, the language server and debugger are built in (so completions, variable renaming, step-by-step debugging etc. all work seamlessly) and it makes Jupyter a pleasure to use.

By @fnoof - 7 months
How does this compare to the “official” Jupyter desktop app: https://github.com/jupyterlab/jupyterlab-desktop
By @madjam002 - 7 months
Is there something like Jupyter for Javascript/Typescript, ideally self hosted? At the moment I just do data science using one off scripts in NodeJS but seeing these notebook style formats recently where different chunks of code appear to be snapshotted and then visualisations can be easily integrated looks quite nice.
By @tomwphillips - 7 months
Why “modern”? I suggest you use more descriptive adjectives.
By @threwaway4392 - 7 months
For vim users, jupyter-vim [0] coupled with a jupyter QtConsole is hard to beat. The short video [1] is maybe self-explanatory, but in short:

- vim on the left half of the screen, a jupyter QtConsole on the right, showing any plots, possibly interactive.

- the kernel on the jupyter QtConsole can be running on a powerful remote host, e.g., with GPU, but the plots are displayed locally

- Focused window is always vim. From vim editing a .py and without ever leaving vim or touching the mouse, one connects once to the jupyter kernel of the QtConsole. Then one can send a selection of lines, or vim text objects, to be evaluated in the QtConsole with a few keystrokes. Code is shown+evaluated and plots are displayed in the QtConsole as if the code sent from vim had been typed there.

One gets the full power of both vim and jupyter kernels with native plots. No more browser based notebooks or other editors with half-baked vim bindings.

[0]: https://github.com/jupyter-vim/jupyter-vim

[1]: https://www.youtube.com/watch?v=h59cbg4HqpY

By @phromo - 7 months
Alternatives and innovation in this space are greatly appreciated! I run Linux and Windows so I keep my eyes fixed on https://github.com/zed-industries/zed/pull/12062#issuecommen... - - zed is a cross platform, gpu rendered, rust-based editor.. Jupyter support should arrive soonish
By @blindriver - 7 months
Can someone explain their views on Jupyter notebooks? As far as I can tell, the instructor/content creators will set up the "notebook" and students can read the notes and click on the "play" button to see it work in action. Is there anything else besides that?

I guess I'm old school and am used to cutting and pasting and running things in my own terminal, so I'm wondering if there are added benefits that I'm not aware of of Jupyter notebooks. It seems to have a very loyal following so I would love to learn their perspective!

By @dkga - 7 months
Congrats! Sorry if you shared here below and I missed it, but I'd love to hear what exactly didn't work out with a pure Swift approach. I'm trying that route for a SQL client based on duckdb (as a side project) and would be very helpful to avoid similar pitfalls for example.
By @rrr_oh_man - 7 months
I’m still hoping for something that is at least 80% as functional and integrated as RStudio is for R.
By @uptownfunk - 7 months
I just want a Python version of rstudio- I bet they probably support Python by now
By @croemer - 6 months
I'm a bit disappointed the code isn't available. I scrolled the landing page for a long time to find the Github button as I strongly expected something that was highly upvoted on hackernews was open source.
By @BaculumMeumEst - 7 months
Dude I just started getting into deep learning and have been flabbergasted getting stuff working. I installed jupyter and torch via homebrew. I can use torch fine from programs, or in venvs, but when I try to use torch in a Jupyter notebook it cannot find the module. Is it a different python environment or something?
By @omerhac - 6 months
Great app. A good example why js apps can never be more than OK, and native apps can really rock. Would be amazing if I could use my sublime bindings here
By @JBGruber - 6 months
A bit off topic, sorry, but: Jupyter is bad for research. The ability to run code out of order, but then save the output, is confusing for the one doing the research and everybody who wants to reproduce it. I don't understand why the decision was made for Jupyter to combine the source code of a notebook and the output. Things like Quarto keep both separate, as essentially all programming languages inteded, while providing an easy-to-use implementation of literate programming.