Caleb Kiragu

← Selected Work

02 / Case Study

RemoteDevTools

AI-assisted tooling for working across remote development environments.

Problem

Developers increasingly work on machines they are not sitting in front of — remote workstations, cloud IDEs, always-on build boxes. The editor is there. The phone, the browser and a second laptop are not. Relaying editor state, terminal output, git status and commands across those surfaces is a protocol problem, not a CRUD form.

Context

RemoteDevTools is an agent, editor extension and web interface for monitoring and acting on a remote development environment. I designed the system and implemented the shared protocol, agent layer, extension surface and web client.

What I Owned

Architecture

The first version is a relay, not a peer-to-peer mesh. The extension connects to an agent. Mobile and web clients connect to the same agent. Messages are JSON, with a small set of types: handshake, event, command and response.

Editor events include file changes, cursor movement, terminal chunks, git status, task lifecycle and build completion. Clients can later send commands back — open a file, run a command, inspect git — once execution is enabled.

Technical Decisions

I kept the shared package TypeScript-only, with no runtime dependencies, so every client can speak the same contract. The agent is a Bun WebSocket process. The web client is React and Vite. A React Native client sits on the same protocol. Terminal access is opt-in rather than on by default.

Hard Problems

The interesting work is state across unreliable connections: what the editor knows, what the agent has relayed, and what a client is allowed to do. Build notifications, file trees and git diffs all have to stay coherent without turning the agent into a second source of truth for the repository.

Trade-Offs

A relay is simpler to ship than peer-to-peer, and easier to reason about for auth and permissions. The cost is that the agent is on the path of every session. I deferred persistence and a full API server until the protocol and client surfaces were real, rather than building a SaaS control plane first.

Result / Current Status

The shared protocol, agent relay, extension event stream and web file / git viewers are implemented. Remote command execution and a production multi-tenant backend are still in progress. This is engineering work in active development, not a finished platform.

Stack

TypeScript · Bun · WebSocket · VS Code API · React · Vite · React Native