diff --git a/activity/activity-lint/build.gradle b/activity/activity-lint/build.gradle
new file mode 100644
index 0000000..7ae9619
--- /dev/null
+++ b/activity/activity-lint/build.gradle
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import static androidx.build.dependencies.DependenciesKt.*
+import androidx.build.AndroidXExtension
+import androidx.build.CompilationTarget
+import androidx.build.LibraryGroups
+import androidx.build.LibraryVersions
+import androidx.build.SdkHelperKt
+import androidx.build.Publish
+
+plugins {
+    id("AndroidXPlugin")
+    id("kotlin")
+}
+
+dependencies {
+    // compileOnly because we use lintChecks and it doesn't allow other types of deps
+    // this ugly hack exists because of b/63873667
+    if (rootProject.hasProperty("android.injected.invoked.from.ide")) {
+        compileOnly LINT_API_LATEST
+    } else {
+        compileOnly LINT_API_MIN
+    }
+    compileOnly KOTLIN_STDLIB
+
+    testImplementation KOTLIN_STDLIB
+    testImplementation LINT_CORE
+    testImplementation LINT_TESTS
+}
+
+androidx {
+    name = "Android Activity Lint Checks"
+    toolingProject = true
+    publish = Publish.NONE
+    mavenGroup = LibraryGroups.ACTIVITY
+    inceptionYear = "2020"
+    description = "Android Activity Lint Checks"
+    url = AndroidXExtension.ARCHITECTURE_URL
+    compilationTarget = CompilationTarget.HOST
+}
diff --git a/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt b/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
index f56db6d..1b69835 100644
--- a/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
@@ -28,6 +28,7 @@
  * Rule set used to generate public documentation.
  */
 val RELEASE_RULE = docsRules("public", false) {
+    ignore(LibraryGroups.ACTIVITY.group, "activity-lint")
     prebuilts(LibraryGroups.ACTIVITY, "1.2.0-alpha06")
     prebuilts(LibraryGroups.ADS, "1.0.0-alpha04")
     prebuilts(LibraryGroups.ANNOTATION, "annotation", "1.2.0-alpha01")
diff --git a/settings.gradle b/settings.gradle
index 9ae923f..be3e29c 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -59,6 +59,7 @@
 
 includeProject(":activity:activity", "activity/activity")
 includeProject(":activity:activity-ktx", "activity/activity-ktx")
+includeProject(":activity:activity-lint", "activity/activity-lint")
 includeProject(":activity:integration-tests:testapp", "activity/integration-tests/testapp")
 includeProject(":ads-identifier", "ads/ads-identifier")
 includeProject(":ads-identifier:integration-tests:testapp", "ads/ads-identifier/integration-tests/testapp")
