Skip to content

Current limitations

This page distinguishes intentional scope from implementation gaps in the documented release.

  • macOS is the only supported platform.
  • The minimum configured version is macOS 10.15.
  • Installers are not Apple-notarized.
  • There is no App Store, Homebrew, or automatic-update distribution.
  • The release has no Windows or Linux build.
  • LSUIElement removes the Dock icon.
  • The app opens a normal visible main window rather than the tray-anchored panel described in old specifications.
  • No tray icon or menu-bar toggle is constructed.
  • File → Close Window has no companion command that recreates the main window. Quit and relaunch if the window becomes inaccessible.
  • Exactly four tabs are available; tab_count is ignored by the frontend.
  • Tabs cannot be renamed.
  • Markdown cell rendering is not implemented.
  • .ipynb import and export are not implemented.
  • There is no per-notebook file, explicit Save As, history, undo across launches, or synchronization service.
  • Only source and cell structure persist. Output and execution state do not.
  • Clear has no confirmation and can autosave destructive removal of a tab’s source.
  • Native Quit does not wait for a pending debounced save; the frontend unmount flush is best effort.
  • Persistence has no built-in history or backup rotation.
  • Molt is a plain exec/eval environment, not IPython.
  • % magics, ! shell syntax, rich display hooks, widgets, and notebook metadata are unsupported.
  • Interactive input() is unsupported; it reads an empty stream and raises EOFError.
  • Images, HTML, plots, audio, video, and other rich output are not rendered.
  • Stdout and stderr are buffered separately, so their original chronological interleaving is lost.
  • image/png exists only as a reserved frontend type.
  • Molt does not create environments or install packages. Packages already installed in the selected interpreter can be imported.
  • One interpreter is shared by all tabs.
  • Interpreter changes require quitting and relaunching the app, not only restarting a kernel.
  • Native writes directly to process stdout can corrupt the JSON protocol.
  • Captured output is not bounded.
  • Stop requires an explicit Restart before the tab can execute again.
  • Interrupt force-kills the process after two seconds only if the same execution is still busy.
  • Command mode acts on the most recently focused cell; changing tabs clears that target.
  • The UI is light-only with a fixed Primer-derived palette.
  • There is no theme selector or supported user-theme directory.
  • Native glass effects can be toggled, but the live preview must be saved to persist.
  • auto_launch remains a parsed compatibility field, but the settings UI does not expose it and no login-item integration consumes it.
  • Invalid TOML uses logged defaults rather than offering an in-app repair flow.

Molt executes arbitrary Python with the current user’s privileges. It is not a sandbox. Cell code can read or modify accessible files, start processes, use the network, and import native extensions. Run only code you trust.

Tabs isolate Python processes from one another, but they do not isolate operating-system resources. Two tabs can still read and modify the same files or external services.

Kernel cleanup owns direct Python children, not arbitrary descendant processes created by cell code.

Older source files describe several unavailable features, including ephemeral cells, menu-bar toggling, themes, shortcut behavior, and settings timing. This site follows the selected release implementation and tests instead.