pypi / ipykernel
ipykernel
What changed in ipykernel 6 to 7, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-07.
11 breaking2 security2 deprecations11 new APIs and options5 behavior and defaults13 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initipykernel 729 changes
Breaking changes 4
The minimum supported Python version is now 3.11.
The PUB socket was replaced with an XPUB socket.
By default, thread output routes to the latest cell unless
get_ipython().set_parent()is called explicitly; this behavior is now opt-in.Support for Python 3.9 is dropped.
Security 2
The debugger temporary directory is created with 0o700 permissions.
Supports ZMQ Curve for transport encryption.
New APIs and options 7
Thread-local parent headers can now be set and reset.
Adds register_hook to ZMQShellDisplayHook so developers can register display hooks.
ZMQInteractiveShell supports the new iPython system_raise_on_error flag.
Adds unregister_hook to ZMQShellDisplayHook so developers can unregister display hooks.
The kernelspec now includes kernel_protocol_version, allowing the kernel protocol version to be specified there.
Adds a traitlet to store display outputs in history for
%notebooksaves; it defaults to False.Adds experimental support for kernel subshells, implemented using Tornado event loops.
Behavior and default changes 5
Async cells can now process Comm messages.
psutil is optional at runtime and its import is deferred until needed.
Passes cell_meta from do_execute to run_cell.
The kernel filters internal frames from callstacks.
The kernel now advertises protocol 5.5.
Fixes and other changes 11
The debug handler now validates variable names.
ProactorEventLoop is enabled for ipykernel on Windows.
When a subshell is unknown, replies now follow the busy, error, idle sequence.
supported_encryption now uses a list, matching the latest JEP state.
Cell execution is marked as failing when a formatter errors out.
The IOPubThread constructor is backward compatible, helping existing code continue to work.
A close event was added for the wx timer app.
Fixes ContextVars persisting between cells.
Uses the kernel launching thread instead of assuming the main thread, fixing failures of asserts when kernels launch in new threads.
Fixes keyboard interrupts on Windows by manually resetting the interrupt event.
Fixes display of Matplotlib plots in separate windows.
ipykernel 615 changes
Breaking changes 7
Runs the control channel in a separate thread, which may change the order in which messages are processed.
Removes
find_connection_fileand theprofileargument ofconnect_qtconsoleandget_connection_info.Removes the deprecated module; the notes direct users to import similar functionalities from
ipyparallel.The
isattymethod returns true, which can improve some output such as colored output but may break other output.Updates the Python requirement to 3.7.
Captures stdout and stderr output, including subprocesses and compiled libraries; some frontends may show duplicated output.
Changes the default timeout to 0.0 seconds.
Deprecations 2
Deprecates
Kernel._parent_header; use.get_parent()instead.Multiple shell streams are ignored and
Kernel.shell_streamsis deprecated; useKernel.shell_streaminstead.
New APIs and options 4
Adds the ability to set a cell name.
Adds debugger protocol support, enabling debugger functionality in JupyterLab, RetroLab, and other compatible frontends.
Implements the
inspectVariablesrequest; returned variables also include atypefield.Adds
Kernel.get_parent_header.
Fixes and other changes 2
Adds
Kernel.get_parentto matchset_parent.Returns the length of the item written to
OutStream.