Blog

Engineering notes

How cwdio is built and why: the decisions behind the terminal sync, the copy engine, the clipboard, drag and drop, updates. Each note retells one architecture decision record for readers, with the trade-offs left in.

Every substantive change to cwdio starts as an architecture decision record. These are the ones worth reading outside the repo — what the problem was, what was tried, what shipped, and what it deliberately does not do. Subscribe with RSS; the feed also carries every release.

  1. Bytes stay in the host: a fast Electron file manager

    Why cwdio never routes file contents through Electron IPC, keeps providers and the copy queue in one services process, and publishes a copy only once good.

  2. Every build can learn about an update

    How the portable build got an update story: version.json via releases/latest as a publish gate, a passive notice, three states, and the install bug it exposed.

  3. One drag gesture: every row drag is a native OS drag

    Why a hidden Alt+drag export became one native drag serving the other pane, another window and Explorer, how cwdio spots its own drop, and why it only copies.

  4. The OS clipboard is the file clipboard

    Why Ctrl+C in cwdio pastes in Explorer and an Explorer cut pastes here as a move: what a file copy is, why Electron cannot write it, plus a clipboard-wedge bug.

  5. Why the terminal always knows where you are

    How cwdio keeps a file panel and an embedded shell on the same folder both ways: OSC 7 shell integration, an idle-only rule against loops, per-shell snippets.