Inspiration

Our inspiration came from ourselves.

Every developer has experienced that moment, including us.

It is late. You are deep into debugging. You switch branches. You fix something unrelated. You step away. When you return, you cannot remember the exact state you were in when everything made sense.

Or you hand off work to a teammate and later realize you cannot reconstruct what the project looked like at that moment.

We realized something important:

Developer context is one of the most valuable resources in software development.

Git tracks code changes. But nothing tracks session state:

  • Which files were open
  • Where the cursor was
  • What branch you were on
  • What errors were present
  • What decisions were captured as notes

We wanted to build the session tracer every developer wishes they had.


The Core Idea

SessionTrace is a Logitech Options+ Plugin and VS Code extension that allows developers to save rich snapshots of their entire working session with a single shortcut.

Each snapshot captures:

  • Open file tabs
  • Cursor positions
  • Git context and branch
  • Changed files
  • Live diagnostics (errors and warnings)
  • Custom notes & reminders
  • Attached code selections

It also includes built-in reminders with priority levels, so developers can track what matters directly alongside their session history.

Developers can later resume any snapshot and instantly restore their workspace to that exact state.

Through a unified Panel and searchable timeline view, they can:

  • Browse session history
  • Review notes
  • Manage reminders
  • Generate AI summaries
  • Generate teammate handoffs
  • Draft PR descriptions

Instead of reconstructing context manually, developers restore it instantly.

If we think about productivity as:

$$ \text{Productivity} = \frac{\text{Focused Work Time}}{\text{Total Work Time}} $$

Then every minute spent reconstructing context reduces productivity.

SessionTrace reduces that reconstruction time toward zero.


Extending to Hardware

We asked a bigger question:

What if saving and restoring context could be physical?

We extended SessionTrace to Logitech hardware using:

  • MX Creative Console
  • MX Action Ring

By integrating SessionTrace with these devices, we turned them into physical control surfaces for developer memory.

With hardware:

  • One button press saves a full session snapshot
  • Another loads a previous checkpoint
  • A key generates an AI summary
  • A dial rotates through contextual actions
  • A button drafts a pull request
  • A button adds a reminder

Instead of opening command palettes or searching through menus, developers act directly.

The hardware becomes the bridge between thought and execution.


How We Built It

VS Code Extension

SessionTrace was built in:

  • TypeScript (strict mode)
  • Using only VS Code APIs
  • Zero third-party dependencies
  • Bundled with esbuild for fast activation

Key systems include:

  • Filesystem-based session storage in .sessiontrace/
  • Git context detection via VS Code Git API (CLI fallback)
  • Diagnostic snapshots via vscode.languages.getDiagnostics()
  • AI generation via vscode.lm.selectChatModels() (GitHub Copilot)
  • Timeline-based session memory panel

Snapshots are stored per user, versioned, and organized for long-term reliability.


Logitech Plugin

On the hardware side, we built a plugin using the Logitech Actions SDK in C#.

The plugin:

  • Registers custom hardware actions
  • Maps hardware triggers to SessionTrace commands
  • Handles cross-platform behavior (Windows and macOS)
  • Sends OS-level shortcut events to VS Code
  • Includes configuration and logging

This created a seamless bridge: Hardware Button → Logitech SDK → SessionTrace Command → Context Restored

No modification of VS Code internals. No firmware changes. No invasive integrations.

Just clean, focused extension + hardware control.


Challenges We Faced

1. Cross-Platform Reliability

We had to carefully handle:

  • Windows vs macOS filesystem differences
  • Git detection edge cases
  • Workspace identity resolution
  • Extension lifecycle behavior

Ensuring consistent behavior across operating systems required disciplined testing.


2. Bridging Two Worlds

The VS Code extension is written in TypeScript. The Logitech plugin is written in C#.

This meant working in two very different development models:

  • Event-driven extension host APIs
  • Logitech’s hardware action registration model
  • OS-level keyboard simulation

We had to think clearly about responsibility boundaries:

  • Extension handles state and logic.
  • Plugin handles physical triggers.

3. Context Is Subtle

Capturing context is not the same as summarizing code.

We learned that restoring:

  • Open files
  • Cursor locations
  • Diagnostics
  • Branch state
  • Notes

is far more powerful than generating a summary alone.

True developer productivity is not just about automation, it is about restoring mental state.


What We Learned

Through this project, we learned that:

  • Restoring context is more valuable than navigating faster.
  • Hardware can meaningfully reduce cognitive friction.
  • Physical interaction reduces micro-interruptions.
  • Developer memory is an underserved problem space.

SessionTrace demonstrates how Logitech’s ecosystem can assist developers by transforming the MX Creative Console and MX Action Ring into interfaces for preserving and acting on knowledge.


Vision Beyond This Project

Our vision goes beyond SessionTrace.

This project shows how Logitech hardware can become a universal control layer for software.

Saving state, triggering AI, and restoring context should not be limited to one IDE.

It could work across:

  • IDEs
  • Design tools
  • Project managers
  • Data science notebooks
  • 3D modeling software
  • Writing environments
  • Any application where meaningful moments matter

SessionTrace is just the first proof of concept.

The larger idea is this:

Hardware should not just control tools.
It should preserve and restore knowledge.

Built With

Share this project:

Updates