diff --git a/Cargo.lock b/Cargo.lock
index 3b6340b..90e5186 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -343,6 +343,7 @@ dependencies = [
"crossterm",
"dirs-next",
"globset",
+ "interprocess",
"json5",
"libc",
"portable-pty",
@@ -528,6 +529,12 @@ dependencies = [
"objc2",
]
+[[package]]
+name = "doctest-file"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2db04e74f0a9a93103b50e90b96024c9b2bdca8bce6a632ec71b88736d3d359"
+
[[package]]
name = "document-features"
version = "0.2.12"
@@ -834,6 +841,19 @@ dependencies = [
"syn 2.0.117",
]
+[[package]]
+name = "interprocess"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "069323743400cb7ab06a8fe5c1ed911d36b6919ec531661d034c89083629595b"
+dependencies = [
+ "doctest-file",
+ "libc",
+ "recvmsg",
+ "widestring",
+ "windows-sys",
+]
+
[[package]]
name = "is_terminal_polyfill"
version = "1.70.2"
@@ -1488,6 +1508,12 @@ dependencies = [
"unicode-width",
]
+[[package]]
+name = "recvmsg"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175"
+
[[package]]
name = "redox_syscall"
version = "0.5.18"
@@ -2305,6 +2331,12 @@ dependencies = [
"wezterm-dynamic",
]
+[[package]]
+name = "widestring"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471"
+
[[package]]
name = "winapi"
version = "0.3.9"
diff --git a/crates/coven-cli/Cargo.toml b/crates/coven-cli/Cargo.toml
index 0cbf5f3..7b0eee4 100644
--- a/crates/coven-cli/Cargo.toml
+++ b/crates/coven-cli/Cargo.toml
@@ -35,5 +35,8 @@ textwrap = "0.16"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
+[target.'cfg(windows)'.dependencies]
+interprocess = "2"
+
[dev-dependencies]
tempfile = "3"
diff --git a/crates/coven-cli/src/api.rs b/crates/coven-cli/src/api.rs
index 47535ea..2338e1c 100644
--- a/crates/coven-cli/src/api.rs
+++ b/crates/coven-cli/src/api.rs
@@ -416,6 +416,18 @@ fn conversation_from_payload(payload: &Value) -> Result