07
Full-stack design & development

AgentDeck

Mission Control for AI Coding Agents

A Logitech MX Creative Console plugin and VS Code extension that turns physical hardware into a control surface for AI coding agents. Glance at the LCD to see which agent needs attention, approve or reject with a tap, and launch new sessions without leaving the editor.

What we built
  • LCD dashboard with color-coded status tiles across Claude Code, Gemini CLI, Codex, Aider, and OpenCode
  • Dial-driven diff scrubbing backed by VS Code's Git API
  • Haptic feedback on the MX Master 4 for input-needed, completion, and error events
  • 4-layer status detection combining escape sequences, heuristics, silence detection, and an optional local AI classifier
  • Multi-window and git worktree support with auto-attach for agents launched in any terminal
Stack
VS Code ExtensionTypeScriptWebSocketHardware Integration
Get Started
Prerequisites
macOS (Windows & Linux planned)Logi Options+Logitech MX Creative Console (MX Master 4 optional, adds haptics)VS Code, Windsurf, or CursorAn agent CLI on your PATH — claude, gemini, codex, aider, or opencode
  1. 1

    Install the Logi plugin

    From Logi Options+, search for AgentDeck from the Marketplace. Install the plugin, select your MX Creative Console, and drag the AgentDeck Dynamic Folder (under _APPS_) onto any LCD button.

  2. 2

    Install the VS Code extension

    Install from the VS Code Marketplace, or grab the .vsix directly for Cursor, Devin Desktop, or a manual install. In the Extensions panel: ⋯ → Install from VSIX… and select the file, then reload the window when prompted.

  3. 3

    Try it

    Open a project in your editor and tap the LCD button you assigned. Tap NEW, pick an agent type, and a terminal spawns running it. The tile turns green while it works, yellow when it needs you, red on error.

Running into issues? Email hello@theru.studio and we'll help you sort it out.

Using the Console

Once the Dynamic Folder is on your console, everything happens with taps, a double-tap, and the dial — no need to look anything up mid-session.

Single tap an agent tile

Brings your editor to the front and focuses that agent's terminal.

Double tap an agent tile

Opens its Skills page — Commit, Review, Clear context, Rename, cycle permission mode, Continue/Approve, or End — for any agent, running or idle.

Tap NEW

Pick an agent type — Claude, Codex, Gemini, Aider, OpenCode, or Amp — to launch a fresh session in the current project.

Tap CONFIGS from NEW

Toggle git worktree isolation, or cycle the permission mode and reasoning effort your next launch uses.

Tap MENU

Fleet-wide actions: approve every waiting agent at once, pause or end everything, jump straight to whichever agent needs you next, or sort the dashboard by status.

Turn the dial

Cycle through every running agent, focusing each terminal as you go. Press the dial to refocus whichever one is selected.

Running
Needs input
Idle / ready
Error

You don't need the console to get event-driven status, either — type claude, codex, gemini, aider, or opencode into any terminal and AgentDeck attaches to it automatically.

A few settings worth knowing
agentdeck.autoAttachAuto-attach agents launched by typing their command into any terminal. On by default.
agentdeck.hooks.enabledEvent-driven status via Claude Code's lifecycle hooks instead of parsing terminal output. On by default.
agentdeck.worktree.enabledLaunch each new agent in its own git worktree so parallel agents never collide on the same files. Off by default.
agentdeck.ai.enabledFall back to a local LM Studio model when pattern-matching is uncertain about an agent's status. Off by default.
Next projectIO Tools
Contact

Let's build
something
together.

© 2026 Theru Studio
Sydney, Australia