diff --git a/macos/Sources/Features/Custom App Icon/DockTilePlugin.swift b/macos/Sources/Features/Custom App Icon/DockTilePlugin.swift
index 990cd8b..6cf7031 100644
--- a/macos/Sources/Features/Custom App Icon/DockTilePlugin.swift	
+++ b/macos/Sources/Features/Custom App Icon/DockTilePlugin.swift	
@@ -51,6 +51,15 @@ class DockTilePlugin: NSObject, NSDockTilePlugIn {
             return
         }
 
+        // Custom per-project dock icon: if the enclosing app bundle ships a
+        // Resources/DockIcon.png, use it verbatim and skip the ghost logic.
+        if let appURL = ghosttyAppURL,
+           let img = NSImage(contentsOf: appURL.appendingPathComponent("Contents/Resources/DockIcon.png")) {
+            dockTile.setIcon(img)
+            iconChangeObserver = nil
+            return
+        }
+
         // Try to restore the previous icon on launch.
         iconDidChange(ghosttyUserDefaults.appIcon, dockTile: dockTile)
 
