-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
Problem
On Windows, walkie create fails with:
Error: Failed to start walkie daemon. Check ~/.walkie/daemon.log for details
The daemon starts (PID file is written, log shows Daemon started) but the IPC socket is never created. The client cannot connect.
Root cause: net.createServer().listen(filepath) with a regular file path fails with EACCES on Windows. Unix domain sockets on Windows require either:
- A Named Pipe path (
\.\pipe\walkie-daemon) - Or special permissions
Repro
npm install -g walkie-sh
walkie create test -s secret
# Error: Failed to start walkie daemonVerified on Windows 11, Node.js v22.x, walkie-sh 1.3.0.
Fix
Replace the SOCKET_PATH constant in both src/daemon.js and src/client.js:
// Before
const SOCKET_PATH = path.join(WALKIE_DIR, 'daemon.sock')
// After
const SOCKET_PATH = process.platform === 'win32'
? '\\.\pipe\walkie-daemon'
: path.join(WALKIE_DIR, 'daemon.sock')This uses Windows Named Pipes which are the native equivalent of Unix domain sockets. The fix is backward-compatible — Unix/macOS behavior is unchanged.
Tested
After patching, all commands work on Windows:
$ walkie create test-room -s secret
Channel "test-room" created. Listening for peers...
$ WALKIE_ID=test2 walkie join test-room -s secret
Joined channel "test-room"
$ WALKIE_ID=test1 walkie send test-room "hello"
Sent (delivered to 1 recipient)
$ WALKIE_ID=test2 walkie read test-room
[01:40:20] test1: hello
$ walkie status
Daemon ID: 6ab08093
#test-room — 0 peer(s), 2 subscriber(s), 0 buffered
Happy to open a PR if you'd like.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels