Desktop Manager

The background process that launches RobOS apps, restarts the ones marked keep-alive, owns the tray icon and listens on a Unix socket.

packages/desktop-manager

Desktop Manager is infrastructure that other RobOS apps call. You normally do not open it.

At the current commit node --check packages/desktop-manager/main.js fails: line 571 uses await inside a callback that is not async, so the app cannot start from the repository until that is fixed.

What it does

  • App registry and launcher. main.js lists the apps (id, label, description, category) and how to start each one: electron <APP_BASE>/<id> with --no-sandbox --disable-gpu --disable-dev-shm-usage. APP_BASE defaults to /usr/local/share/robos and can be set with ROBOS_APP_BASE.
  • Watchdog. Every 3 seconds it checks the apps marked keepAlive (notifications, robos-toast, desktop-widgets, git-login-manager and robos-desktop) and restarts any that stopped. A client can pause and resume this per app.
  • Tray icon. The tooltip shows the unread count from ~/.config/robos/notifications.json. Clicking the icon opens the Notifications Center.
  • Config Sync in the background. When a Config Sync backup vault is connected and Sync automatically is on, it syncs the vault about 20 seconds after login, every 5 minutes (the vault’s auto.intervalMinutes), and about 15 seconds after a backed-up file under ~/.config/robos or ~/.robos changes. It applies only plans with no conflicts; a conflict, a missing vault key or a vault it cannot open becomes one sticky “Config Sync needs you” notification that opens Preferences on the Backup vault tab. The logic is robos-lib/config-sync-auto.js.
  • Pass-lock reminder. After onboarding is complete, it checks the GPG agent every 15 seconds and posts a sticky “Pass store locked” notification when the password store locks.
  • Socket server. One JSON message per connection.

Socket protocol

The socket is at $ROBOS_DM_SOCKET if set, otherwise $XDG_RUNTIME_DIR/robos-dm.sock (usually /run/user/<uid>/robos-dm.sock), with /tmp/robos-dm-<uid>.sock as a fallback. It is created with mode 600. Send one JSON object, then close the write side. These keys are handled:

Key Effect
ping Replies {pong: true, time}
getApps, status, getUnread, listDesktops Registry, running processes, unread count, files in ~/.config/robos/desktops/
launch, kill Start or stop an app by id
notify Add a notification (title, body, icon, source, sticky, action, category, tier)
pauseKeepAlive, resumeKeepAlive Control the watchdog for one app id
configSyncNow Run a background Config Sync now; replies with its outcome (synced, up-to-date, conflicts, …)
getVoicePrompts, getAppContext, voiceDictate Hooks used by RobOS Voice

Example, the same call the built-in “Restart RobOS Taskbar” skill uses:

node -e "const s=require('net').connect('/run/user/'+process.getuid()+'/robos-dm.sock',()=>{s.write(JSON.stringify({launch:'robos-desktop'}));s.end();});"

Status window

The window has tabs for Apps & Services, Socket IPC Console, Notifications and Watchdog Supervisor. It is created hidden and only shown when ROBOS_DEMO_SHOW=1 or ROBOS_TEST=1 is set, which is meant for tests and demos.

Source: packages/desktop-manager.

More in Desktop & Command Center

App Launcher

A searchable grid of the desktop applications installed on the machine, including the RobOS apps.

Desktop Customizer

A slash-command console that changes GNOME settings (clock, taskbar, theme, shortcuts, startup apps) and keeps git-backed snapshots to roll back.

Desktop Dashboard

A full-screen window that sits at desktop level and shows a grid of widgets; today it contains one clock and date widget.

Desktop Shell

Full-screen top bar and bottom dock for RobOS on a GNOME/X11 session, replacing the GNOME panel while it runs.

Desktop Widgets

A transparent panel on the right edge of the desktop with five status widgets: active task, system stats, AI agent, work journal and security.

Dev Central

Your daily task list: issues from your task servers as an epic tree, with buttons to start design or implementation agents and to open the related PR.

Dev Discussions

A chat-style view of discussion threads attached to tasks and pull requests, stored in a local cache with optional posting to GitHub.

Icon Manager

Shows the icon of every installed RobOS app, lets you replace one, and rewrites the apps' installed icon.svg and .desktop Icon= lines.

Manager Dashboard

Team metrics for one GitHub repository: open issues, merged PRs, PR cycle time, deploy frequency, approval rate, tasks by stage and PRs per developer.

Notifications Center

Shows the notification history stored in ~/.config/robos/notifications.json, with filters by category, tier and date, and edits the notification preferences.

Package Manager

Prototype screen for listing apps and daemons with start, stop and health-probe buttons. It shows built-in sample data.

RobOS App Manager

Choose, download, launch and remove RobOS apps

RobOS Audio Player

Open-source audio player, custom playlist engine, procedural focus soundscapes, and zero-cloud Google Cast smart speaker streaming.

RobOS Dashboards

Create KGraph graphical dashboards from card layouts where each widget is any RobOS component, embeddable via <robos-dashboard> and castable to Smart TVs

RobOS GNOME Desktop App Installer

Install, manage, and repair GNOME Desktop shortcuts, App Grid launchers, multi-scale icons, and Dock favorites for all RobOS apps.

RobOS Google Calendar

Installs Mozilla Thunderbird if needed and writes Google Calendar, Google Contacts and optional Gmail settings into its profile for a Google account from Cloud Accounts.

RobOS Home for Android

The home screen of the RobOS phone: the time, the date and every app, with the RobOS apps first.

RobOS Home Speaker

Two-way smart speaker intercom, Home Assistant Voice PE (NC-VK-9727) hands-free voice approval, neural TTS broadcast, and soundboard.

RobOS Movie Player

Open-source cinema, TV series & Tablo OTA DVR player sharing the warm theater theme of RobOS Audio Player: 100,000-movie & TV series library, Show & Season Navigator, Tablo 4th Gen OTA DVR live & recorded broadcast streaming, TMDB/TVmaze posters, AI Watchlists, Virtual Cinema Host, synced .srt/.vtt subtitles, and a 3-row visual image-card Roku & Smart TV app.

RobOS Preferences

Settings window for RobOS apps: Config Sync & Sharing (cloud backup and shared configs), optional AI API mode, agent tiers, prompt security, GitHub accounts, IDE, notifications, journal and theme.

RobOS Preferences for Android

Signs in to Google Drive on an Android phone, opens your RobOS Config Sync backups and restores the settings phone apps use.

RobOS Smart TV Studio

Pair Smart TVs, build & sideload Developer Mode TV apps (LG webOS, Samsung Tizen, Google TV/ADB, Roku), serve the 10-foot D-Pad TV Portal (:19210), and stream 4K games.

Search Indexer

Builds plain-text lists of file paths under folders you choose, which RobOS text areas search for @-mentions.

Software Center

Install and manage coding-agent CLIs, IDEs, browsers, game tools and utilities on Windows or Linux.

System Logs Viewer

Viewer for the structured logs that RobOS apps write to ~/.config/robos/logs, with search and level filters.

Toast Daemon

Shows overlay toast windows for new entries in ~/.config/robos/notifications.json, with tiers, categories, do-not-disturb and anti-spam limits.

Workspace Manager

Window showing a sample multi-repo task workspace with sync, teardown and open-in-IDE buttons that return canned results. Discovery helpers exist in the code but are not wired to the window.