DeskPilot

🖥️ Overview

DeskPilot is a local desktop control panel for managing browser sessions, switching between digital workflows and eventually controlling physical desk-related devices. The project started with a simple problem: my browser is often the central place where work, research, projects and personal activities come together. Over time, these contexts turn into large collections of open tabs that are difficult to organize and even harder to reliably restore. DeskPilot is intended to make these contexts explicit. Instead of rebuilding a workspace manually every time, users should be able to save a browser session, assign it to a category and restore it later as a complete working environment. The long-term goal is to develop DeskPilot into a personal control layer for the digital workplace. Browser sessions are the first area of focus, while desktop actions, application workflows and physical desk controls are planned as later extensions.

🧠 Core Concept

The central concept of DeskPilot is the idea of a reusable workspace context. A context can represent a specific type of activity, such as working on a project, researching a topic, managing a dashboard or collecting pages for later. Each context contains the browser sessions that belong to it and can be reorganized over time. This approach treats browser tabs as part of a larger workflow instead of isolated links. A saved session is not meant to be a permanent archive of everything that was ever open. It is a practical snapshot of a particular way of working. The application should make it easy to switch between these contexts without losing the structure behind them.

👤 My Role

DeskPilot is my product idea and my ongoing development project. I define the direction, the intended use cases and the boundaries of the product. I decide which problems are worth solving, which features belong in the current milestone and which technical risks need to be addressed before expanding the scope. The implementation is developed largely autonomously by Codex. It analyzes the existing project, proposes implementation steps, writes and changes code, creates tests, investigates errors and maintains the technical documentation. My role is to provide the product vision, review the proposed direction and make the final decisions. I remain responsible for the result, the priorities and the trade-offs. This makes DeskPilot both a software project and an experiment in AI-assisted product development.

🧩 Product Structure

DeskPilot is designed as a shell for several specialized areas called Pilots. The BrowserPilot contains the browser-session workflow. A future DesktopPilot is intended to handle digital desktop actions and application-related hotkeys. The EnvironmentPilot is planned for physical or environmental controls such as lighting, desk height or other devices around the workspace. These areas share one control panel, but each Pilot has a clearly defined responsibility. This structure allows DeskPilot to grow beyond browser management without turning the first version into an unfocused collection of unrelated features. The shell also provides a common place for settings, safety functions and future presentation themes.

✨ Features

The first functional area of DeskPilot focuses on browser-session management. Users can create categories for different contexts, save the current browser tab or window, move saved tabs between categories and reorder them manually. A category can later be opened as a separate browser window, restoring the saved context in the order chosen by the user. Sessions can also be archived or recovered instead of being deleted immediately. A Chrome and Edge extension provides a direct way to save the current tab or browser window without manually copying URLs into the desktop application. The purpose of these features is not to replace the browser. DeskPilot adds a layer of organization around the browser that makes larger workflows easier to preserve and switch between.

🗂️ Session Model

export type SessionCategory = {
  id: string;
  name: string;
  description: string;
  icon: CategoryIconName;
  tabCount: number;
};

The data model reflects the core idea that a browser session belongs to a meaningful category instead of existing as an unrelated list of URLs.

🧱 Technical Details

DeskPilot is built as a local Electron application with a React and TypeScript renderer. Electron provides the desktop shell and access to Windows-specific functionality, while React is used for the control-panel interface. Session data is stored locally in SQLite. The application also contains a browser extension and a local bridge that connects Chrome or Edge to the desktop application. This separation is necessary because a normal desktop application cannot reliably inspect the contents of browser windows on its own. The project is structured around a small shared model between the Electron main process, the preload bridge, the React renderer and the browser extension. This keeps the browser-specific integration separate from the user interface and the underlying session data.

🛡️ Data Safety

Because DeskPilot manages personal browser contexts, data safety is part of the product concept rather than an implementation detail. Development and productive use are separated into different data profiles. This prevents tests and prototypes from accidentally modifying real browser-session data. Session deletion uses recoverable flows, and database backups can be created, exported, imported and restored. The application also preserves damaged database files when automatic recovery is necessary. If no valid recovery source exists, DeskPilot does not silently replace the affected data. Instead, it provides a read-only recovery path so the original files can still be exported and investigated. The guiding principle is simple: automation should reduce friction, but the user must remain in control of their data.

🔐 Separate Data Profiles

const profileRoot = path.join(
  userDataPath,
  "profiles",
  profile
);

const databasePath = path.join(
  profileRoot,
  "storage",
  "deskpilot.sqlite"
);

Development data and productive data use separate storage locations. Existing prototype data can be copied into the productive profile once without modifying or repeatedly importing the original source.

🚀 Current State & Roadmap

The browser-session workflow is already implemented as the first productive area of DeskPilot. Categories, saved tabs, session restoration, archiving, recovery, local backups and the browser-extension workflow form the foundation of the application. The surrounding DeskPilot shell is already prepared for additional Pilots, but DesktopPilot and EnvironmentPilot are intentionally still at an early stage. Their purpose and boundaries are defined before their concrete actions are implemented. The next steps focus on expanding the Pilot system, validating the touch-display workflow and gradually connecting DeskPilot to more parts of the physical workspace.

An unhandled error has occurred. Reload 🗙