diff --git a/keystore.cabal b/keystore.cabal
--- a/keystore.cabal
+++ b/keystore.cabal
@@ -1,5 +1,5 @@
 Name:                   keystore
-Version:                0.8.0.1
+Version:                0.8.0.2
 Synopsis:               Managing stores of secret things
 Homepage:               http://github.com/cdornan/keystore
 Author:                 Chris Dornan
diff --git a/src/Data/KeyStore/CLI/Command.hs b/src/Data/KeyStore/CLI/Command.hs
--- a/src/Data/KeyStore/CLI/Command.hs
+++ b/src/Data/KeyStore/CLI/Command.hs
@@ -15,6 +15,7 @@
 import           Data.KeyStore.KS.Opt
 import           Data.KeyStore.Types
 import           Data.KeyStore.IO.IC
+import           Data.Monoid
 import           Data.String
 import           Text.Regex
 import qualified Data.Text              as T
diff --git a/src/Data/KeyStore/Types.hs b/src/Data/KeyStore/Types.hs
--- a/src/Data/KeyStore/Types.hs
+++ b/src/Data/KeyStore/Types.hs
@@ -38,6 +38,7 @@
 import           Data.KeyStore.Types.NameAndSafeguard
 import           Data.KeyStore.Types.E
 import           Data.Aeson
+import           Data.Aeson.Encoding
 import qualified Data.Map                       as Map
 import           Data.Monoid
 import qualified Data.Text                      as T
@@ -49,6 +50,7 @@
 import           Data.API.JSON
 import qualified Data.ByteString                as B
 import qualified Data.HashMap.Strict            as HM
+import qualified Data.Text                      as T
 import qualified Data.Vector                    as V
 import           Text.Regex
 import qualified Crypto.PBKDF.ByteString        as P
@@ -294,6 +296,23 @@
 
     same b b' = comparing xf b b' == EQ
 
+instance ToJSONKey Safeguard where
+  toJSONKey = ToJSONKeyText f g
+    where
+      f = T.pack . printSafeguard
+      g = text . T.pack . printSafeguard
+
+instance ToJSONKey Name where
+  toJSONKey = ToJSONKeyText f g
+    where
+      f = T.pack . _name
+      g = text . T.pack . _name
+
+instance ToJSONKey TriggerID where
+  toJSONKey = ToJSONKeyText f g
+    where
+      f = _TriggerID
+      g = text . _TriggerID
 
 $(generateAPITools keystoreSchema
                    [ enumTool
diff --git a/src/Data/KeyStore/Types/NameAndSafeguard.hs b/src/Data/KeyStore/Types/NameAndSafeguard.hs
--- a/src/Data/KeyStore/Types/NameAndSafeguard.hs
+++ b/src/Data/KeyStore/Types/NameAndSafeguard.hs
@@ -85,4 +85,3 @@
 
 sg_sym_chs :: Set.Set Char
 sg_sym_chs = Set.fromList ".-_:'=#$%"
-
diff --git a/src/Data/KeyStore/Types/PasswordStoreModel.hs b/src/Data/KeyStore/Types/PasswordStoreModel.hs
--- a/src/Data/KeyStore/Types/PasswordStoreModel.hs
+++ b/src/Data/KeyStore/Types/PasswordStoreModel.hs
@@ -19,6 +19,8 @@
 module Data.KeyStore.Types.PasswordStoreModel where
 
 import           Data.KeyStore.Types.PasswordStoreSchema
+import           Data.Aeson
+import           Data.Aeson.Encoding
 import qualified Data.Map                                 as Map
 import           Data.API.Tools
 import           Data.API.JSON
@@ -50,6 +52,17 @@
 prj_snmap :: SessionMap -> REP__SessionMap
 prj_snmap mp = REP__SessionMap [ SessionPasswordAssoc snm ssn | (snm,ssn)<-Map.toList mp ]
 
+instance ToJSONKey SessionName where
+  toJSONKey = ToJSONKeyText f g
+    where
+      f = _SessionName
+      g = text . _SessionName
+
+instance ToJSONKey PasswordName where
+  toJSONKey = ToJSONKeyText f g
+    where
+      f = _PasswordName
+      g = text . _PasswordName
 
 $(generateAPITools passwordStoreSchema
                    [ enumTool
