diff --git a/dev-python/qtconsole/Manifest b/dev-python/qtconsole/Manifest
index 85c428944cd64..ffbb623452733 100644
--- a/dev-python/qtconsole/Manifest
+++ b/dev-python/qtconsole/Manifest
@@ -1,2 +1,3 @@
DIST qtconsole-5.5.2.tar.gz 439219 BLAKE2B f354d3e6132142a3da52a1cb6b290d0a07b13920bc9f33f7fb29eb307cc5b653beccc5d28e53f7cbe7483147adb6e34ffc584718a79b814c9ce2c37b57a768fc SHA512 f79e51903fe5a1164a90c0905c308d2bce066bef2c61fed2b5bb7e757a9cf56875cdd14665df9284317497cd73bb544ae09e0b23c63b527bbd4bc90b874009f6
DIST qtconsole-5.6.1.tar.gz 435808 BLAKE2B 74476bfa85e08dfdd3bb0595531253638957024a2a5c9ec16e5eefa3677cf57756ddacdbf21405e93da1b5101bb4a354970ef86c786db02c52ca92e40877bbc0 SHA512 1bc2cf75019186ad439033ca7e262fb0e3172336b15573fec1da4925830c26f33117229f7552cdd26a3691b0c9facaf0073c640aea8098c3599aed38e7621392
+DIST qtconsole-5.7.0.tar.gz 436635 BLAKE2B fac7cff969337f4f2d7f7450e91f15761512017e209a1a61f38fbc1da5007a7df0e48f801336002ee123889dc1af41fdc001b4ed579ac4264c1dc1ae4219da3e SHA512 597d977d0dcd4895fc1ad0adfdfde6acad8a50ee0d94a9747b5cdfef5b9a43af5aa105c866a06ccddf059b67ec09bbb963f6189aa0336e56e41d918950c030c8
diff --git a/dev-python/qtconsole/metadata.xml b/dev-python/qtconsole/metadata.xml
index 95f60d11a8f1f..8d18cb5f0750c 100644
--- a/dev-python/qtconsole/metadata.xml
+++ b/dev-python/qtconsole/metadata.xml
@@ -16,6 +16,6 @@
qtconsole
- jupyter/qtconsole
+ spyder-ide/qtconsole
diff --git a/dev-python/qtconsole/qtconsole-5.7.0.ebuild b/dev-python/qtconsole/qtconsole-5.7.0.ebuild
new file mode 100644
index 0000000000000..1542bfbbfa654
--- /dev/null
+++ b/dev-python/qtconsole/qtconsole-5.7.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Qt-based console for Jupyter with support for rich media output"
+HOMEPAGE="
+ https://spyder-ide.org/
+ https://github.com/spyder-ide/qtconsole/
+ https://pypi.org/project/qtconsole/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/ipykernel-4.1[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-4.1.1[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.2.2_p1[${PYTHON_USEDEP}]
+ >=dev-python/qtpy-2.4.0[${PYTHON_USEDEP},gui,printsupport,svg]
+"
+BDEPEND="
+ test? (
+ dev-python/qtpy[${PYTHON_USEDEP},svg,testlib]
+ )
+"
+
+PDEPEND="
+ dev-python/ipython[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=( pytest-{asyncio,qt} )
+EPYTEST_RERUNS=10
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # remove upstream marks to let us override rerun count
+ # (this test suite is extremely flaky)
+ # https://github.com/pytest-dev/pytest-rerunfailures/issues/306
+ sed -i -e '/pytest\.mark\.flaky/d' qtconsole/tests/*.py || die
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO; expects exact HTML, so perhaps fragile
+ qtconsole/tests/test_jupyter_widget.py::TestJupyterWidget::test_other_output
+ )
+ local -x QT_API
+ for QT_API in pyqt5 pyqt6 pyside2 pyside6; do
+ if has_version "dev-python/qtpy[${QT_API}]"; then
+ local -x PYTEST_QT_API=${QT_API}
+ einfo "Testing with ${QT_API}"
+ nonfatal epytest ||
+ die "Tests failed with ${EPYTHON} / ${QT_API}"
+ fi
+ done
+}