diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.1.6.0
+
+* A missing instance of `At` for `HashMap` has been added.
+
 # 0.1.5.0
 
 * New minor release (microlens-mtl-0.1.6).
diff --git a/microlens-platform.cabal b/microlens-platform.cabal
--- a/microlens-platform.cabal
+++ b/microlens-platform.cabal
@@ -1,5 +1,5 @@
 name:                microlens-platform
-version:             0.1.5.0
+version:             0.1.6.0
 synopsis:            Feature-complete microlens
 description:
   This package exports a module which is the recommended starting point for using <http://hackage.haskell.org/package/microlens microlens> if you aren't trying to keep your dependencies minimal. By importing @Lens.Micro.Platform@ you get all functions and instances from <http://hackage.haskell.org/package/microlens microlens>, <http://hackage.haskell.org/package/microlens-th microlens-th>, <http://hackage.haskell.org/package/microlens-mtl microlens-mtl>, <http://hackage.haskell.org/package/microlens-ghc microlens-ghc>, as well as instances for @Vector@, @Text@, and @HashMap@.
diff --git a/src/Lens/Micro/Platform.hs b/src/Lens/Micro/Platform.hs
--- a/src/Lens/Micro/Platform.hs
+++ b/src/Lens/Micro/Platform.hs
@@ -91,6 +91,13 @@
      Nothing -> pure m
   {-# INLINE ix #-}
 
+instance (Eq k, Hashable k) => At (HashMap k a) where
+  at k f m = f mv <&> \r -> case r of
+    Nothing -> maybe m (const (HashMap.delete k m)) mv
+    Just v' -> HashMap.insert k v' m
+    where mv = HashMap.lookup k m
+  {-# INLINE at #-}
+
 instance Ixed (Vector.Vector a) where
   ix i f v
     | 0 <= i && i < Vector.length v = f (v Vector.! i) <&> \a -> v Vector.// [(i, a)]
