diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ae742ca4d..9de5d8401 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,16 @@
                     android:scheme="bitwarden" />
             </intent-filter>
         </activity>
+
+        <service
+            android:name=".autofill.BitwardenAutofillService"
+            android:label="Bitwarden"
+            android:permission="android.permission.BIND_AUTOFILL_SERVICE"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.service.autofill.AutofillService" />
+            </intent-filter>
+        </service>
     </application>
 
 </manifest>
diff --git a/app/src/main/java/com/x8bit/bitwarden/autofill/BitwardenAutofillService.kt b/app/src/main/java/com/x8bit/bitwarden/autofill/BitwardenAutofillService.kt
new file mode 100644
index 000000000..84c278bfc
--- /dev/null
+++ b/app/src/main/java/com/x8bit/bitwarden/autofill/BitwardenAutofillService.kt
@@ -0,0 +1,31 @@
+package com.x8bit.bitwarden.autofill
+
+import android.os.CancellationSignal
+import android.service.autofill.AutofillService
+import android.service.autofill.FillCallback
+import android.service.autofill.FillRequest
+import android.service.autofill.SaveCallback
+import android.service.autofill.SaveRequest
+import dagger.hilt.android.AndroidEntryPoint
+
+/**
+ * The [AutofillService] implementation for the app. This fulfills autofill requests from other
+ * applications.
+ */
+@AndroidEntryPoint
+class BitwardenAutofillService : AutofillService() {
+    override fun onFillRequest(
+        request: FillRequest,
+        cancellationSignal: CancellationSignal,
+        fillCallback: FillCallback,
+    ) {
+        // TODO: parse request and perform dummy autofill (BIT-1314)
+    }
+
+    override fun onSaveRequest(
+        saverRequest: SaveRequest,
+        saveCallback: SaveCallback,
+    ) {
+        // TODO: add save request behavior (BIT-1299)
+    }
+}
diff --git a/app/src/test/java/com/x8bit/bitwarden/autofill/BitwardenAutofillServiceTests.kt b/app/src/test/java/com/x8bit/bitwarden/autofill/BitwardenAutofillServiceTests.kt
new file mode 100644
index 000000000..e780fa3d7
--- /dev/null
+++ b/app/src/test/java/com/x8bit/bitwarden/autofill/BitwardenAutofillServiceTests.kt
@@ -0,0 +1,54 @@
+package com.x8bit.bitwarden.autofill
+
+import android.os.CancellationSignal
+import android.service.autofill.FillCallback
+import android.service.autofill.FillRequest
+import android.service.autofill.SaveCallback
+import android.service.autofill.SaveRequest
+import io.mockk.mockk
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.Nested
+import org.junit.jupiter.api.Test
+
+class BitwardenAutofillServiceTests {
+    private lateinit var bitwardenAutofillService: BitwardenAutofillService
+
+    @BeforeEach
+    fun setup() {
+        bitwardenAutofillService = BitwardenAutofillService()
+    }
+
+    @Nested
+    inner class OnFillRequest {
+        @Test
+        fun `nothing happens`() {
+            // Setup
+            val cancellationSignal: CancellationSignal = mockk()
+            val fillCallback: FillCallback = mockk()
+            val fillRequest: FillRequest = mockk()
+
+            // Test
+            bitwardenAutofillService.onFillRequest(
+                cancellationSignal = cancellationSignal,
+                fillCallback = fillCallback,
+                request = fillRequest,
+            )
+        }
+    }
+
+    @Nested
+    inner class OnSaveRequest {
+        @Test
+        fun `nothing happens`() {
+            // Setup
+            val saverRequest: SaveRequest = mockk()
+            val saveCallback: SaveCallback = mockk()
+
+            // Test
+            bitwardenAutofillService.onSaveRequest(
+                saveCallback = saveCallback,
+                saverRequest = saverRequest,
+            )
+        }
+    }
+}