đ€ AI Summary
How can fine-grained, real-time interaction data between developers and code generation tools (CGTs) be collected without disrupting their workflow? This paper proposes a lightweight, non-intrusive clientâserver system: a VS Code extension captures semantically rich editing eventsâincluding code insertion/deletion, copy-paste operations, and focus transitionsâwhile a Python-based RESTful API persistently stores structured telemetry in MongoDB. All components are containerized to ensure scalability and deployment simplicity. The key contribution is the first implementation enabling seamless, session-level behavioral reconstruction and analysisâachieving high-fidelity, low-overhead continuous monitoring of developerâCGT interactions. This infrastructure supports rigorous behavioral modeling, productivity assessment, and responsible AI research in AI-augmented programming environments.
đ Abstract
Understanding how developers interact with code generation tools (CGTs) requires detailed, real-time data on programming behavior which is often difficult to collect without disrupting workflow. We present extit{CodeWatcher}, a lightweight, unobtrusive client-server system designed to capture fine-grained interaction events from within the Visual Studio Code (VS Code) editor. extit{CodeWatcher} logs semantically meaningful events such as insertions made by CGTs, deletions, copy-paste actions, and focus shifts, enabling continuous monitoring of developer activity without modifying user workflows. The system comprises a VS Code plugin, a Python-based RESTful API, and a MongoDB backend, all containerized for scalability and ease of deployment. By structuring and timestamping each event, extit{CodeWatcher} enables post-hoc reconstruction of coding sessions and facilitates rich behavioral analyses, including how and when CGTs are used during development. This infrastructure is crucial for supporting research on responsible AI, developer productivity, and the human-centered evaluation of CGTs. Please find the demo, diagrams, and tool here: https://osf.io/j2kru/overview.