diff --git a/build.gradle.kts b/build.gradle.kts
index 2cbe0cc..fa133cb 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -21,6 +21,8 @@ dependencies {
 intellij {
 	version.set("2023.1")
 	updateSinceUntilBuild.set(false)
+	
+	plugins.add("tanvd.grazi")
 }
 
 tasks.patchPluginXml {
diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt
new file mode 100644
index 0000000..425da33
--- /dev/null
+++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/compatibility/GrazieSupport.kt
@@ -0,0 +1,15 @@
+package com.chylex.intellij.inspectionlens.compatibility
+
+import com.chylex.intellij.inspectionlens.editor.LensSeverity
+import com.intellij.grazie.ide.TextProblemSeverities
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.startup.ProjectActivity
+
+class GrazieSupport : ProjectActivity {
+	override suspend fun execute(project: Project) {
+		LensSeverity.registerMapping(TextProblemSeverities.GRAMMAR_ERROR, LensSeverity.ERROR)
+		LensSeverity.registerMapping(TextProblemSeverities.STYLE_ERROR, LensSeverity.GRAZIE)
+		LensSeverity.registerMapping(TextProblemSeverities.STYLE_WARNING, LensSeverity.GRAZIE)
+		LensSeverity.registerMapping(TextProblemSeverities.STYLE_SUGGESTION, LensSeverity.GRAZIE)
+	}
+}
diff --git a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt
index c4aaa9e..c19dd36 100644
--- a/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt
+++ b/src/main/kotlin/com/chylex/intellij/inspectionlens/editor/LensSeverity.kt
@@ -1,10 +1,12 @@
 package com.chylex.intellij.inspectionlens.editor
 
 import com.intellij.lang.annotation.HighlightSeverity
+import com.intellij.spellchecker.SpellCheckerSeveritiesProvider
 import com.intellij.ui.ColorUtil
 import com.intellij.ui.JBColor
 import java.awt.Color
 import java.awt.Font
+import java.util.Collections
 
 /**
  * Determines properties of inspection lenses based on severity.
@@ -15,6 +17,8 @@ enum class LensSeverity(baseColor: Color, lightThemeDarkening: Int, darkThemeBri
 	WARNING        (Color(190, 145,  23), lightThemeDarkening = 4, darkThemeBrightening = 1),
 	WEAK_WARNING   (Color(117, 109,  86), lightThemeDarkening = 3, darkThemeBrightening = 3),
 	SERVER_PROBLEM (Color(176,  97,   0), lightThemeDarkening = 4, darkThemeBrightening = 2),
+	GRAZIE         (Color( 53, 146, 196), lightThemeDarkening = 2, darkThemeBrightening = 1),
+	TYPO           (Color( 73, 156,  84), lightThemeDarkening = 3, darkThemeBrightening = 1),
 	OTHER          (Color(128, 128, 128), lightThemeDarkening = 1, darkThemeBrightening = 2);
 	
 	val colorAttributes: LensSeverityTextAttributes
@@ -28,12 +32,23 @@ enum class LensSeverity(baseColor: Color, lightThemeDarkening: Int, darkThemeBri
 	}
 	
 	companion object {
-		fun from(severity: HighlightSeverity) = when (severity) {
-			HighlightSeverity.ERROR                           -> ERROR
-			HighlightSeverity.WARNING                         -> WARNING
-			HighlightSeverity.WEAK_WARNING                    -> WEAK_WARNING
-			HighlightSeverity.GENERIC_SERVER_ERROR_OR_WARNING -> SERVER_PROBLEM
-			else                                              -> OTHER
+		private val mapping = Collections.synchronizedMap(mapOf(
+			HighlightSeverity.ERROR                           to ERROR,
+			HighlightSeverity.WARNING                         to WARNING,
+			HighlightSeverity.WEAK_WARNING                    to WEAK_WARNING,
+			HighlightSeverity.GENERIC_SERVER_ERROR_OR_WARNING to SERVER_PROBLEM,
+			SpellCheckerSeveritiesProvider.TYPO               to TYPO,
+		))
+		
+		/**
+		 * Registers a mapping from a [HighlightSeverity] to a [LensSeverity]. Does not refresh existing editors.
+		 */
+		internal fun registerMapping(severity: HighlightSeverity, lensSeverity: LensSeverity) {
+			mapping[severity] = lensSeverity
+		}
+		
+		fun from(severity: HighlightSeverity): LensSeverity {
+			return mapping.getOrDefault(severity, OTHER)
 		}
 	}
 }
diff --git a/src/main/resources/META-INF/compatibility/InspectionLens-Grazie.xml b/src/main/resources/META-INF/compatibility/InspectionLens-Grazie.xml
new file mode 100644
index 0000000..71fe702
--- /dev/null
+++ b/src/main/resources/META-INF/compatibility/InspectionLens-Grazie.xml
@@ -0,0 +1,5 @@
+<idea-plugin>
+  <extensions defaultExtensionNs="com.intellij">
+    <postStartupActivity implementation="com.chylex.intellij.inspectionlens.compatibility.GrazieSupport" />
+  </extensions>
+</idea-plugin>
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index e357d43..abf0e63 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -39,6 +39,7 @@
   ]]></change-notes>
   
   <depends>com.intellij.modules.platform</depends>
+  <depends optional="true" config-file="compatibility/InspectionLens-Grazie.xml">tanvd.grazi</depends>
   
   <extensions defaultExtensionNs="com.intellij">
     <applicationService serviceImplementation="com.chylex.intellij.inspectionlens.InspectionLensPluginDisposableService" />