diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for bytelog
 
+## 0.1.1.0 -- 2020-10-21
+
+* Add `cstring#`.
+
 ## 0.1.0.0 -- 2020-03-09
 
 * Initial release.
diff --git a/bytelog.cabal b/bytelog.cabal
--- a/bytelog.cabal
+++ b/bytelog.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name: bytelog
-version: 0.1.0.0
+version: 0.1.1.0
 synopsis: Fast logging
 bug-reports: https://github.com/byteverse/bytelog
 license: BSD-3-Clause
diff --git a/src/Logger.hs b/src/Logger.hs
--- a/src/Logger.hs
+++ b/src/Logger.hs
@@ -15,6 +15,7 @@
   , bytes
   , byteArray
   , cstring
+  , cstring#
     -- * Flush
   , flush
   ) where
@@ -30,7 +31,7 @@
 import Data.Primitive (MutablePrimArray,ByteArray)
 import Foreign.C.Error (eINTR,eWOULDBLOCK,eAGAIN,eBADF)
 import Foreign.C.String (CString)
-import GHC.Exts (RealWorld)
+import GHC.Exts (Ptr(Ptr),RealWorld,Addr#)
 import GHC.IO (IO(IO))
 import Posix.File (uninterruptibleWriteByteArray,uninterruptibleGetStatusFlags)
 import System.IO (Handle)
@@ -106,6 +107,17 @@
 -- | Log a @NUL@-terminated C string.
 cstring :: Logger -> CString -> IO ()
 cstring g str = builder g (Builder.cstring str)
+
+-- | Log a @NUL@-terminated C string. Takes the unboxed equivalent of @CString@.
+-- This improves legibility in a common case:
+--
+-- > cstring logger (Ptr "Initializing..."#)
+--
+-- This can be written more succinctly as:
+--
+-- > cstring# logger "Initializing..."#
+cstring# :: Logger -> Addr# -> IO ()
+cstring# g str = builder g (Builder.cstring (Ptr str))
 
 -- | Log the chunks that result from executing the byte builder.
 builder :: Logger -> Builder -> IO ()
