diff --git a/pygitweb_pytesthtml/README.md b/pygitweb_pytesthtml/README.md
deleted file mode 100644
index 3484995..0000000
--- a/pygitweb_pytesthtml/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# pygitweb_pytesthtml: PyGitWeb Plugin for pytest-html
-
-Do you have a python project with tests and want a test dashboard integrated into pygitweb?
-
-Then this plugin is for you! Possible only thanks to the great work done by the contributors to pytest-html, and of course pytest itself.
-
-This is the inaugural first-party plugin for PyGitWeb and will likely be installed by default... but can always be disabled.
diff --git a/pygitweb_pytesthtml/pygitweb_pytesthtml/__init__.py b/pygitweb_pytesthtml/pygitweb_pytesthtml/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/pygitweb_pytesthtml/pygitweb_pytesthtml/__init__.py
+++ /dev/null
diff --git a/pygitweb_pytesthtml/pygitweb_pytesthtml/action_pytesthtml.py b/pygitweb_pytesthtml/pygitweb_pytesthtml/action_pytesthtml.py
deleted file mode 100644
index 2363401..0000000
--- a/pygitweb_pytesthtml/pygitweb_pytesthtml/action_pytesthtml.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from __future__ import annotations
-
-import subprocess
-from pathlib import Path
-
-from fastapi import Request
-from starlette.responses import Response
-
-from pygitweb.api.action import Action
-from pygitweb.config import settings
-from pygitweb_pytesthtml.constants import PYTESTHTML_ACTION_NAME
-
-
-class ActionPytestHtml(Action):
-	"""
-	ActionPytestHtml: Run pytest and render the results.
-	"""
-
-	def action_name(self) -> str:
-		return PYTESTHTML_ACTION_NAME
-
-	def action(self, project: str, req: Request | None = None) -> Response | None:
-		cwd = Path(settings.PROJECTROOT) / project
-		subprocess.run(
-			["pytest", "--html=.pygitweb/pytest_report.html", "--self-contained-html"],
-			cwd=str(cwd),
-		)
-		return None
diff --git a/pygitweb_pytesthtml/pygitweb_pytesthtml/constants.py b/pygitweb_pytesthtml/pygitweb_pytesthtml/constants.py
deleted file mode 100644
index b4b77b4..0000000
--- a/pygitweb_pytesthtml/pygitweb_pytesthtml/constants.py
+++ /dev/null
@@ -1,3 +0,0 @@
-"""Shared plugin identifiers for pytest-html subpage + action."""
-
-PYTESTHTML_ACTION_NAME = "pytesthtml_run"
diff --git a/pygitweb_pytesthtml/pygitweb_pytesthtml/subpage_pytesthtml.py b/pygitweb_pytesthtml/pygitweb_pytesthtml/subpage_pytesthtml.py
deleted file mode 100644
index d609a0c..0000000
--- a/pygitweb_pytesthtml/pygitweb_pytesthtml/subpage_pytesthtml.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from __future__ import annotations
-
-from pathlib import Path
-from urllib.parse import quote
-
-from pygitweb.api.subpage import Subpage
-from pygitweb.config import settings
-from pygitweb_pytesthtml.constants import PYTESTHTML_ACTION_NAME
-
-
-class SubpagePytestHtml(Subpage):
-	"""
-	SubpagePytestHtml: Render the latest Pytest results for a project.
-	"""
-
-	def subpage_name(self) -> str:
-		return "pytesthtml"
-
-	def link_name(self, project: str) -> str | None:
-		return "Pytest Results"
-
-	def subpage_html(self, project: str) -> str | None:
-		report_path = Path(settings.PROJECTROOT) / project / ".pygitweb" / "pytest_report.html"
-		if not report_path.is_file():
-			return "<p>No pytest report found.</p>"
-		return report_path.read_text(encoding="utf-8")
-
-	def summary_value_suffix_html(self, project: str, project_enc: str) -> str | None:
-		a = quote(PYTESTHTML_ACTION_NAME, safe="")
-		return (
-			f'<a class="btn btn-sm btn-primary ms-2" role="button" href="/project/{project_enc}?a={a}">Run pytest</a>'
-		)
diff --git a/pygitweb_pytesthtml/pyproject.toml b/pygitweb_pytesthtml/pyproject.toml
deleted file mode 100644
index d5c8de1..0000000
--- a/pygitweb_pytesthtml/pyproject.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-[build-system]
-requires = ["setuptools>=61", "wheel"]
-build-backend = "setuptools.build_meta"
-
-[project]
-name = "pygitweb_pytesthtml"
-version = "0.1.0"
-description = "PyGitWeb Plugin: pytest-html dashboard"
-readme = "README.md"
-requires-python = ">=3.11"
-dependencies = [
-    "pygitweb",
-    "pytest-html>=4.2.0",
-]
-
-[project.entry-points."pygitweb.subpages"]
-pytesthtml = "pygitweb_pytesthtml.subpage_pytesthtml:SubpagePytestHtml"
-
-[project.entry-points."pygitweb.actions"]
-pytesthtml_run = "pygitweb_pytesthtml.action_pytesthtml:ActionPytestHtml"
-
-[tool.setuptools.packages.find]
-where = ["."]
-include = ["pygitweb_pytesthtml*"]
-
-[tool.uv.sources]
-pygitweb = { workspace = true }
diff --git a/uv.lock b/uv.lock
index 32c0b0f..2da9452 100644
--- a/uv.lock
+++ b/uv.lock
@@ -14,7 +14,6 @@ members = [
     "pygittools",
     "pygittools-mcp",
     "pygitweb",
-    "pygitweb-pytesthtml",
     "pygitweb-workspace",
 ]
 
@@ -1213,21 +1212,6 @@ requires-dist = [
 ]
 
 [[package]]
-name = "pygitweb-pytesthtml"
-version = "0.1.0"
-source = { editable = "pygitweb_pytesthtml" }
-dependencies = [
-    { name = "pygitweb" },
-    { name = "pytest-html" },
-]
-
-[package.metadata]
-requires-dist = [
-    { name = "pygitweb", editable = "pygitweb" },
-    { name = "pytest-html", specifier = ">=4.2.0" },
-]
-
-[[package]]
 name = "pygitweb-workspace"
 version = "0.0.0"
 source = { virtual = "." }
@@ -1290,32 +1274,6 @@ wheels = [
 ]
 
 [[package]]
-name = "pytest-html"
-version = "4.2.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
-    { name = "jinja2" },
-    { name = "pytest" },
-    { name = "pytest-metadata" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/c4/08/2076aa09507e51c1119d16a84c6307354d16270558f1a44fc9a2c99fdf1d/pytest_html-4.2.0.tar.gz", hash = "sha256:b6a88cba507500d8709959201e2e757d3941e859fd17cfd4ed87b16fc0c67912", size = 108634, upload-time = "2026-01-19T11:25:26.471Z" }
-wheels = [
-    { url = "https://files.pythonhosted.org/packages/84/47/07046e0acedc12fe2bae79cf6c73ad67f51ae9d67df64d06b0f3eac73d36/pytest_html-4.2.0-py3-none-any.whl", hash = "sha256:ff5caf3e17a974008e5816edda61168e6c3da442b078a44f8744865862a85636", size = 23801, upload-time = "2026-01-19T11:25:25.008Z" },
-]
-
-[[package]]
-name = "pytest-metadata"
-version = "3.1.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
-    { name = "pytest" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/a6/85/8c969f8bec4e559f8f2b958a15229a35495f5b4ce499f6b865eac54b878d/pytest_metadata-3.1.1.tar.gz", hash = "sha256:d2a29b0355fbc03f168aa96d41ff88b1a3b44a3b02acbe491801c98a048017c8", size = 9952, upload-time = "2024-02-12T19:38:44.887Z" }
-wheels = [
-    { url = "https://files.pythonhosted.org/packages/3e/43/7e7b2ec865caa92f67b8f0e9231a798d102724ca4c0e1f414316be1c1ef2/pytest_metadata-3.1.1-py3-none-any.whl", hash = "sha256:c8e0844db684ee1c798cfa38908d20d67d0463ecb6137c72e91f418558dd5f4b", size = 11428, upload-time = "2024-02-12T19:38:42.531Z" },
-]
-
-[[package]]
 name = "python-dotenv"
 version = "1.2.2"
 source = { registry = "https://pypi.org/simple" }
