Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Meeting Rooms (one-click speed-dial for your meeting links)

A speed-dial for video conferencing links: store your recurring meeting URLs and people's personal room links once, then launch any of them with one click or a keyboard shortcut. Works across Zoom, Google Meet, Teams, Skype, Webex and any other meeting URL, with the platform detected from the link itself.

What it is

What it is

Meeting Rooms is a speed-dial for video conferencing links across multiple platforms: Zoom, Google Meet, Microsoft Teams, Skype, Webex, and any other meeting URL. Store recurring meeting URLs and people's personal room links, then launch them with one click or a keyboard shortcut. There is no API integration or OAuth for any platform; the feature is a local bookmark + launcher that opens links in your default browser via shell.openExternal().

The feature appears as a Video icon entry in the Omniscio sidebar under the agent tools group. It is disabled by default (meetingRoomsEnabled: false in Settings). When the user enables it at Settings → Agent Tools → Meeting Rooms, the sidebar row is created and the Ctrl+Shift+Z palette shortcut becomes active. When disabled, the sidebar entry is hidden and the palette shortcut is suppressed. Stored rooms are preserved across toggles.

Two use cases:

  1. General — store predetermined meeting links (recurring standups, team syncs, one-on-ones) so you don't have to dig through calendar invites or Slack messages.
  2. Personal rooms — store people's standing personal room links ("Sarah's Room" with her personal meeting URL) for instant access. Personal rooms are tagged with a badge so you can tell them apart from one-off meeting links.

All data is local-only — rooms live in the SQLite zoom_rooms table inside mission-control.db. Nothing syncs to any external service.

Where to find it

The Meeting Rooms entry in the sidebar opens the room list; the Ctrl+Shift+Z command palette reaches a room from anywhere. The enable switch is in Settings → Agent Tools → Meeting Rooms.

How it behaves

Supported platforms

Each room has a platform field identifying which conferencing service it belongs to. The platform is auto-detected from the URL when creating or editing a room, and can be overridden manually via a dropdown.

Platform Detection Badge color
Zoom *.zoom.us, zoom.us, *.zoom.com, zoom.com Blue
Google Meet meet.google.com Green
Teams teams.microsoft.com, teams.live.com Purple
Skype *.skype.com, join.skype.com Cyan
Webex *.webex.com Orange
Other Any unrecognized URL Gray

Detection uses new URL(url).hostname matching (not regex) to prevent subdomain spoofing. The detection logic lives in src/shared/meeting-platform.ts.

How to use it

Add a room

  1. Click the Meeting Rooms entry in the sidebar to open the virtual project view.
  2. Click the + Add Room button in the header (or the call-to-action in the empty state).
  3. Fill in the form:
    • Name (required) — a short label like "Daily Standup" or "Sarah's Room".
    • Meeting URL (required) — the full meeting URL. Must start with https:// (the http:// protocol is auto-upgraded).
    • Platform — auto-detected from the URL, shown as a dropdown. Can be overridden manually.
    • Category (optional) — free-text grouping like "Engineering", "1:1s", "All Hands". Rooms with the same category are grouped together in the view.
    • Personal Room (optional) — toggle on if this is someone's standing personal room. Adds a "Personal" badge to the room card.
    • Keyboard Shortcut (optional) — a text label for the shortcut (display-only in v1; per-room global shortcuts are deferred).
  4. Press Ctrl+Enter or click Save.

Launch a room

  • From the view: Click any room card. Omniscio opens the URL in your default browser via shell.openExternal() and records the launch time.
  • From the command palette: Press Ctrl+Shift+Z to open the Meeting Rooms palette. Type to filter by name, URL, or category. Press Enter or click a result to launch. Recently-launched rooms sort first.

Edit or delete a room

Each room card has pencil (edit) and trash (delete) buttons. Edit opens the same form as Add, pre-filled. Delete shows a confirmation dialog before removing the room.

Reorder rooms

Rooms display in display_order within their category group. Drag any room card within its category to reorder it — the new position persists immediately via the meeting-rooms:reorder IPC. Each category group is an independent drag zone (rooms cannot be dragged across categories). The drag interaction uses the standard useDragReorder hook with a Notion-style drop indicator.

Command palette (Ctrl+Shift+Z)

The palette is built on CommandPaletteShell — the same shell used by Super Prompts (Ctrl+Shift+K) and Session Search (Ctrl+K). It:

  • Opens centered at the top of the window with a search input.
  • Filters rooms by name, URL, or category as you type (case-insensitive substring match).
  • Sorts results by most-recently-launched first (rooms never launched sort last, alphabetically).
  • Shows a colored platform badge next to each room name.
  • Launches on Enter or click, then closes.
  • Has a "Manage rooms" footer link that navigates to the Meeting Rooms virtual project.
  • Lazy-loads via MeetingPaletteGate (a CustomEvent-driven gate component mounted in App.tsx) so the palette code is not in the main bundle.

The shortcut is defined in keybindings.ts as openMeetingPalette with default binding Ctrl+Shift+Z. It is suppressed when meetingRoomsEnabled is false.

Settings

Settings → Agent Tools → Meeting Rooms holds a single Enable Meeting Rooms toggle bound to the meetingRoomsEnabled setting (default false). When toggled on, the main process creates the virtual project row in the sidebar and emits PROJECTS_CHANGED. The Ctrl+Shift+Z palette shortcut and MeetingPaletteGate event listener are also gated on this flag. When off, the sidebar entry is hidden and the palette is inactive. Stored rooms are preserved — nothing is deleted.

The setting is searchable via the settings search index with keywords: meeting, zoom, video call, room, standup, quick launch, video conference, google meet, teams, skype, webex.

Data model

The zoom_rooms table (migration v166, platform column added by ledger migration):

Column Type Notes
id TEXT PK UUID, generated on create
name TEXT NOT NULL, room display name
url TEXT NOT NULL, must be https://
platform TEXT NOT NULL, DEFAULT 'zoom', one of the 6 platform ids
category TEXT Nullable, free-text grouping
is_personal_room INTEGER 0 or 1, default 0
shortcut TEXT Nullable, display-only label
display_order INTEGER NOT NULL, sequential within the full list
last_launched_at TEXT Nullable ISO timestamp, updated on launch
created_at TEXT NOT NULL, ISO timestamp
updated_at TEXT NOT NULL, ISO timestamp

Indexes: idx_zoom_rooms_category on category, idx_zoom_rooms_order on display_order.

For agents

How it works

  • Platform detection: src/shared/meeting-platform.ts — MeetingPlatform type, detectPlatformFromUrl(), PLATFORM_DISPLAY config.
  • Queries: src/main/db/meeting-rooms-queries.ts — listMeetingRooms, createMeetingRoom, updateMeetingRoom, deleteMeetingRoom, reorderMeetingRooms, touchLastLaunched. Follows the bookmarks-queries.ts pattern (internal DbRow + camelCase API mapper).
  • Launcher: src/main/services/meeting-launcher.ts — validates https: protocol, calls shell.openExternal(), updates last_launched_at, per-id 200ms debounce.
  • IPC handlers: src/main/ipc/meeting-rooms-handlers.ts — 6 handlers via wrapHandler(), mutations emit MEETING_ROOMS_CHANGED push.
  • IPC channels: meeting-rooms:list, meeting-rooms:create, meeting-rooms:update, meeting-rooms:delete, meeting-rooms:launch, meeting-rooms:reorder, plus meeting-rooms:changed push event.
  • Zustand store: src/renderer/src/stores/meeting-rooms-store.ts — rooms, loading, CRUD actions, push-listener re-fetch.
  • View: src/renderer/src/features/meeting-rooms/MeetingRoomsView.tsx — virtual project panel with category-grouped room cards; each category group is an independent useDragReorder drag zone. Platform badges render next to room names.
  • Utils: src/renderer/src/features/meeting-rooms/meeting-rooms-utils.ts — groupByCategory + buildReorderedIds.
  • Form: src/renderer/src/features/meeting-rooms/MeetingRoomFormModal.tsx — DialogShell-based create/edit form with platform dropdown and URL-based auto-detection.
  • Palette: src/renderer/src/features/meeting-rooms/MeetingPalette.tsx — CommandPaletteShell-based speed-dial with platform badges.
  • Palette gate: src/renderer/src/features/meeting-rooms/MeetingPaletteGate.tsx — lazy-loads MeetingPalette on toggle-meeting-palette CustomEvent.
  • UI registry: src/renderer/src/integrations/ui-registry.ts — Video icon, text-blue-500, lazy panel.
  • Integration manifest: src/shared/integrations/meeting-rooms.ts — id meeting-rooms, parentGroupId: 'agent-tools'.
  • CLI routes: src/main/services/cli/cli-server-meeting-rooms-routes.ts — 6 routes at /meeting-rooms/* for external automation.

Related

Related

  • bookmarks.md — Bookmarks is a general-purpose launcher (URLs, paths, executables, commands). Meeting Rooms is purpose-built for video conferencing links with categories, personal-room badges, platform detection, and a dedicated command palette.
  • keyboard-shortcuts.md — Ctrl+Shift+Z is the Meeting Rooms palette shortcut; rebindable via Settings → Keyboard Shortcuts.

Last verified 2026-10-06