Index: django/core/management/commands/adminindex.py
===================================================================
--- django/core/management/commands/adminindex.py	(revision 6783)
+++ django/core/management/commands/adminindex.py	(working copy)
@@ -1,34 +1,8 @@
 from django.core.management.base import AppCommand
-from django.utils.encoding import force_unicode
-from django.utils.text import capfirst
 
-MODULE_TEMPLATE = '''    {%% if perms.%(app)s.%(addperm)s or perms.%(app)s.%(changeperm)s %%}
-    <tr>
-        <th>{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/">{%% endif %%}%(name)s{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</th>
-        <td class="x50">{%% if perms.%(app)s.%(addperm)s %%}<a href="%(app)s/%(mod)s/add/" class="addlink">{%% endif %%}Add{%% if perms.%(app)s.%(addperm)s %%}</a>{%% endif %%}</td>
-        <td class="x75">{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/" class="changelink">{%% endif %%}Change{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</td>
-    </tr>
-    {%% endif %%}'''
-
 class Command(AppCommand):
     help = 'Prints the admin-index template snippet for the given app name(s).'
 
     def handle_app(self, app, **options):
-        from django.db.models import get_models
-        output = []
-        app_models = get_models(app)
-        app_label = app_models[0]._meta.app_label
-        output.append('{%% if perms.%s %%}' % app_label)
-        output.append('<div class="module"><h2>%s</h2><table>' % app_label.title())
-        for model in app_models:
-            if model._meta.admin:
-                output.append(MODULE_TEMPLATE % {
-                    'app': app_label,
-                    'mod': model._meta.module_name,
-                    'name': force_unicode(capfirst(model._meta.verbose_name_plural)),
-                    'addperm': model._meta.get_add_permission(),
-                    'changeperm': model._meta.get_change_permission(),
-                })
-        output.append('</table></div>')
-        output.append('{% endif %}')
-        return '\n'.join(output)
+        from django.contrib.admin.templatetags.admin_list import admin_index
+        return admin_index(app)
Index: django/contrib/admin/templatetags/admin_list.py
===================================================================
--- django/contrib/admin/templatetags/admin_list.py	(revision 6783)
+++ django/contrib/admin/templatetags/admin_list.py	(working copy)
@@ -16,6 +16,35 @@
 
 DOT = '.'
 
+MODULE_TEMPLATE = '''    {%% if perms.%(app)s.%(addperm)s or perms.%(app)s.%(changeperm)s %%}
+    <tr>
+        <th>{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/">{%% endif %%}%(name)s{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</th>
+        <td class="x50">{%% if perms.%(app)s.%(addperm)s %%}<a href="%(app)s/%(mod)s/add/" class="addlink">{%% endif %%}Add{%% if perms.%(app)s.%(addperm)s %%}</a>{%% endif %%}</td>
+        <td class="x75">{%% if perms.%(app)s.%(changeperm)s %%}<a href="%(app)s/%(mod)s/" class="changelink">{%% endif %%}Change{%% if perms.%(app)s.%(changeperm)s %%}</a>{%% endif %%}</td>
+    </tr>
+    {%% endif %%}'''
+
+def admin_index(app):
+    from django.db.models import get_models
+    output = []
+    app_models = get_models(app)
+    app_label = app_models[0]._meta.app_label
+    output.append('{%% if perms.%s %%}' % app_label)
+    output.append('<div class="module"><h2>%s</h2><table>' % app_label.title())
+    for model in app_models:
+        if model._meta.admin:
+            output.append(MODULE_TEMPLATE % {
+                'app': app_label,
+                'mod': model._meta.module_name,
+                'name': force_unicode(capfirst(model._meta.verbose_name_plural)),
+                'addperm': model._meta.get_add_permission(),
+                'changeperm': model._meta.get_change_permission(),
+            })
+    output.append('</table></div>')
+    output.append('{% endif %}')
+    return '\n'.join(output)
+admin_index = register.simple_tag(admin_index)
+
 def paginator_number(cl,i):
     if i == DOT:
         return u'... '
Index: docs/django-admin.txt
===================================================================
--- docs/django-admin.txt	(revision 6783)
+++ docs/django-admin.txt	(working copy)
@@ -83,6 +83,15 @@
 Use admin-index template snippets if you want to customize the look and feel of
 your admin's index page. See `Tutorial 2`_ for more information.
 
+**New in Django development version**
+
+You can also use a template tag to show the admin index in your own templates::
+
+    {% load admin_list %}
+    {% admin_index %}
+
+Just make sure ``django.contrib.admin`` is in your ``INSTALLED_APS`` setting.
+
 .. _Tutorial 2: ../tutorial02/
 
 createcachetable <tablename>
