diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Revision history for pms-domain-model
 
+## 0.1.5.0 -- 2026-04-30
+
+* Support timeout configuration.
+* Add async read/write tools.
+
 ## 0.1.4.0 -- 2026-01-31
 
 * Add file system make-directory tools.
diff --git a/pms-domain-model.cabal b/pms-domain-model.cabal
--- a/pms-domain-model.cabal
+++ b/pms-domain-model.cabal
@@ -20,7 +20,7 @@
 -- PVP summary:     +-+------- breaking API changes
 --                  | | +----- non-breaking API additions
 --                  | | | +--- code changes with no API change
-version:            0.1.4.0
+version:            0.1.5.0
 
 -- A short (one-line) description of the package.
 synopsis:           pms-domain-model
diff --git a/src/PMS/Domain/Model/DM/Type.hs b/src/PMS/Domain/Model/DM/Type.hs
--- a/src/PMS/Domain/Model/DM/Type.hs
+++ b/src/PMS/Domain/Model/DM/Type.hs
@@ -1313,6 +1313,26 @@
 
 -- |
 --
+data ProcReadCommandData =
+  ProcReadCommandData {
+    _jsonrpcProcReadCommandData   :: JsonRpcRequest
+  , _argumentsProcReadCommandData :: RawJsonByteString
+  } deriving (Show, Read, Eq)
+
+makeLenses ''ProcReadCommandData
+
+-- |
+--
+data ProcWriteCommandData =
+  ProcWriteCommandData {
+    _jsonrpcProcWriteCommandData   :: JsonRpcRequest
+  , _argumentsProcWriteCommandData :: RawJsonByteString
+  } deriving (Show, Read, Eq)
+
+makeLenses ''ProcWriteCommandData
+
+-- |
+--
 data ProcMessageCommandData =
   ProcMessageCommandData {
     _jsonrpcProcMessageCommandData   :: JsonRpcRequest
@@ -1328,6 +1348,8 @@
   | ProcRunCommand       ProcRunCommandData
   | ProcTerminateCommand ProcTerminateCommandData
   | ProcMessageCommand   ProcMessageCommandData
+  | ProcReadCommand  ProcReadCommandData
+  | ProcWriteCommand ProcWriteCommandData
   deriving (Show, Read, Eq)
 
 -- |
@@ -1337,6 +1359,8 @@
 getJsonRpcProcSpawnCommand (ProcRunCommand       d) = d^.jsonrpcProcRunCommandData
 getJsonRpcProcSpawnCommand (ProcTerminateCommand d) = d^.jsonrpcProcTerminateCommandData
 getJsonRpcProcSpawnCommand (ProcMessageCommand   d) = d^.jsonrpcProcMessageCommandData
+getJsonRpcProcSpawnCommand (ProcReadCommand  d) = d^.jsonrpcProcReadCommandData
+getJsonRpcProcSpawnCommand (ProcWriteCommand d) = d^.jsonrpcProcWriteCommandData
 
 
 --------------------------------------------------------------------------------
@@ -1545,6 +1569,7 @@
   , _promptsDomainData           :: [String]
   , _invalidCharsDomainData      :: [String]
   , _invalidCmdsDomainData       :: [String]
+  , _timeoutMicrosecDomainData   :: Int
   }
 
 makeLenses ''DomainData
@@ -1590,6 +1615,7 @@
          , _promptsDomainData           = def
          , _invalidCharsDomainData      = def
          , _invalidCmdsDomainData       = def
+         , _timeoutMicrosecDomainData   = 30 * 1000 * 1000
          }
 
 -- |
