diff --git a/apps/addressbook/java/src/net/i2p/addressbook/package.html b/apps/addressbook/java/src/net/i2p/addressbook/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..cd449065782d81ffe57a6ac6d6defaa5428ee75f
--- /dev/null
+++ b/apps/addressbook/java/src/net/i2p/addressbook/package.html
@@ -0,0 +1,11 @@
+<html>
+<body>
+<p>
+The addressbook application, which fetches hosts.txt files from subscription URLS via
+HTTP and adds new hosts to the local database.
+While implemented as a webapp, this application contains no user interface.
+May also be packaged as a jar, as is done for Android.
+The webapp named 'addressbook' in the console is actually SusiDNS.
+</p>
+</body>
+</html>
diff --git a/apps/i2psnark/java/src/org/klomp/snark/package.html b/apps/i2psnark/java/src/org/klomp/snark/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..a617ebef615673869690df8284ef52b2cd6d0441
--- /dev/null
+++ b/apps/i2psnark/java/src/org/klomp/snark/package.html
@@ -0,0 +1,8 @@
+<html>
+<body>
+<p>
+I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced
+to add a web UI, DHT support, and other features.
+</p>
+</body>
+</html>
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/package.html b/apps/i2psnark/java/src/org/klomp/snark/web/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..56fda906f57d29554381d8bec802b8446c951a52
--- /dev/null
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+The i2psnark user interface, implemented as a webapp in i2psnark.war.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..3e40205e4aea22d5823138e822ede75120e5c37e
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+Filters for the IRC client tunnel, and DCC handlers.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/localServer/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/localServer/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..dc8a69bae5f186b529ca857485689c1e12f45d80
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/localServer/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+A very simple HTTP server, used only for css and images on HTTP client proxy error pages.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..de517ffb4974fa6d39590a68730cf3dd7c0a2648
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/package.html
@@ -0,0 +1,14 @@
+<html>
+<body>
+<p>
+Implementation of preconfigured tunnels, both for clients and servers,
+and a UI for adding more and editing the configuration.
+Includes special-purpose tunnels for IRC, SOCKS, HTTP, and more.
+</p><p>
+The entry point is TunnelControllerGroup, which is started from clients.config.
+Individual tunnel configuration is in i2ptunnel.config.
+The primary API is TunnelControllerGroup and TunnelController.
+Other classes may not be maintained as a stable API.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..a16de8b2513954d6d3e1b27f85135cf1a8743542
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+SOCKS 4, 4a, and 5 client tunnels.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..3f3f8173e47e227052a11bebd68d1ba60584a2d6
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/streamr/package.html
@@ -0,0 +1,9 @@
+<html>
+<body>
+<p>
+Special-purpose client and server tunnels for streaming UDP clients and servers,
+generally for audio and video streaming.
+Extends the base classes in net.i2p.i2ptunnel.udpTunnel.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..0eb89724e6bf98edd7d4f4d1f066e0040ae6c6f5
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/udp/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+A small API used by UDP tunnels.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..93f5dc19c2a5032072012c90a5d3b943601a5bf2
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/package.html
@@ -0,0 +1,8 @@
+<html>
+<body>
+<p>
+Classes for configuring tunnels, used externally by Android.
+Separated out of net.i2p.i2ptunnel.web as a publicly supported API in 0.9.19.
+</p>
+</body>
+</html>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/package.html b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..61d2d3b567d9505f62d666be8e881c53ce461d68
--- /dev/null
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/package.html
@@ -0,0 +1,9 @@
+<html>
+<body>
+<p>
+The UI for adding tunnels and editing their configurations,
+implemented as a webapp packaged in i2ptunnel.war.
+Not be maintained as a stable API.
+</p>
+</body>
+</html>
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/package.html b/apps/routerconsole/java/src/net/i2p/router/web/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..1926aa39441a2ec476b76941f0119c8bd16dc685
--- /dev/null
+++ b/apps/routerconsole/java/src/net/i2p/router/web/package.html
@@ -0,0 +1,9 @@
+<html>
+<body>
+<p>
+The router console user interface, implemented in routerconsole.jar, with these classes
+supporting the webapp in routerconsole.war.
+Entry point is RouterConsoleRunner, started from clients.config.
+</p>
+</body>
+</html>
diff --git a/apps/sam/java/src/net/i2p/sam/package.html b/apps/sam/java/src/net/i2p/sam/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..fc5bbd3c1fc66c808d7358755df387b82f1b8d65
--- /dev/null
+++ b/apps/sam/java/src/net/i2p/sam/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+The SAM client API.
+</p>
+</body>
+</html>
diff --git a/apps/susidns/src/java/src/i2p/susi/dns/package.html b/apps/susidns/src/java/src/i2p/susi/dns/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..065a70ea20bdf8150514032382a83c2d466f128b
--- /dev/null
+++ b/apps/susidns/src/java/src/i2p/susi/dns/package.html
@@ -0,0 +1,9 @@
+<html>
+<body>
+<p>
+The SusiDNS webapp, which is the user interface for the addressbook application
+and the local naming service (hosts database) implemented in net.i2p.client.naming.
+This is the webapp named 'addressbook' in the console.
+</p>
+</body>
+</html>
diff --git a/apps/susimail/src/src/i2p/susi/webmail/package.html b/apps/susimail/src/src/i2p/susi/webmail/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..60ba58cb40ba2660bf801b9e63399d8da04ca042
--- /dev/null
+++ b/apps/susimail/src/src/i2p/susi/webmail/package.html
@@ -0,0 +1,8 @@
+<html>
+<body>
+<p>
+The SusiMail webapp, which implements a webmail interface,
+POP3 and SMTP client-side protocols, and local caching of email.
+</p>
+</body>
+</html>
diff --git a/apps/systray/java/src/net/i2p/apps/systray/package.html b/apps/systray/java/src/net/i2p/apps/systray/package.html
new file mode 100644
index 0000000000000000000000000000000000000000..5698cb171b3b79f4680695ba55ea27aa33858f80
--- /dev/null
+++ b/apps/systray/java/src/net/i2p/apps/systray/package.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<p>
+A system tray control for launching the I2P router console.
+</p>
+</body>
+</html>