A snapshot of what the OpenWork desktop app already does today, grounded in the current code. The autonomous feature loop diffs Claude Code Desktop / Codex desktop features against this baseline to find genuine gaps — so a candidate that maps to anything below is not a gap.
Scope: the Electron frontend/shell only. The qwen-code backend (vendored from npm) is out of scope and must not be modified. Paths are representative anchors, not exhaustive.
Maintenance: refresh this when a
loop-botPR ships a new capability, or periodically re-survey. Treat it as a fast index, not a contract.
- Multi-session per workspace; create/delete/archive/flag; status (
todo,in_progress,needs_review,done,cancelled); search & filter. - Persisted history with message-level streaming, token-usage tracking, read/unread.
- Session export/import + cross-workspace resource bundles.
apps/electron/src/renderer/atoms/sessions.ts,packages/core/src/types/session.ts
- Message bubbles (user/system), turn cards with actions, inline execution progress.
- Plan accept/reject UI; streaming incremental updates; token display.
- Auth-request cards for OAuth flows; tool-execution approval dialogs.
- Permission modes (4):
explore/ask/execute/auto-edit. - Thinking levels (6): off / low / medium / high / xhigh / max, with per-workspace defaults.
packages/ui/src/components/chat/*,packages/shared/src/agent/mode-types.ts
- Code (Shiki highlight), diffs, JSON tree, HTML (sandboxed), Mermaid, LaTeX.
- PDF viewer, spreadsheet/Excel table (sort/filter/export), DOCX, PPTX, image gallery.
- Rich markdown: collapsible sections, table export (CSV/Excel), link preview overlay.
packages/ui/src/components/markdown/*,apps/electron/src/renderer/components/files/FileViewer.tsx
- Workspace types:
conversation/project; multi-workspace; per-workspace config. - File read (text/binary), directory listing/search, file watching, allowed-dir enforcement.
- Shell command execution with output capture, kill/terminate, shell-env loading (nvm/Homebrew).
- Worktree creation; per-session modified/new-file tracking; notes.
apps/electron/src/main/handlers/workspace.ts,apps/electron/src/main/shell-env.ts
- MCP servers: HTTP MCP connections, workspace-scoped OAuth / bearer auth, tool listing & execution.
- Native OAuth: Google, Slack, Microsoft (PKCE, refresh); plus a generic OAuth 2.0 client for any provider.
- Local folder sources as agent data sources; encrypted per-workspace credential store with health tracking.
- Messaging adapters: WhatsApp, Telegram (pairing/linking, inbound event fanout).
packages/shared/src/mcp/*,packages/shared/src/auth/*,packages/messaging-gateway/src/adapters/*
SKILL.md(YAML frontmatter) format; metadata (name, description, icon, required sources, alwaysAllow tools).- Multi-tier sourcing: global (
~/.agents/), workspace, project (.agents/), provider. - File-glob auto-trigger; tool allow-listing; enable/disable; marketplace discovery.
packages/shared/src/skills/*
- Model selection per session/workspace; multiple LLM connections per provider; custom endpoints.
- Default + per-session permission mode; per-workspace thinking level.
- Theme (light/dark/system + presets), language (i18next), keep-awake, keyboard shortcuts.
- Network proxy (HTTP/HTTPS/SOCKS + auth).
apps/electron/src/main/handlers/settings.ts,packages/shared/src/config/*
- Multi-window (per-workspace), window-state persistence, close confirmation, deep links (
craftagents://). - Pet window: floating companion overlay, click-through, activity animations, notifications.
- Embedded browser pane: Chromium pane (dockable/floating) with navigate/back/forward/reload, JS eval, screenshot, form interaction, a11y snapshot, CDP integration, console/network logging.
- Theme system with per-workspace override; i18n; command palette / action registry; global shortcuts.
apps/electron/src/main/window-manager.ts,apps/electron/src/main/browser-pane-manager.ts
- Providers: Qwen (ModelStudio) primary; OpenAI-compatible custom endpoints; multi-connection.
- Model metadata (capabilities, context window, pricing) with lazy-load/caching.
- Auth: API key / OAuth / bearer / custom headers. Runtime proxy changes.
packages/shared/src/config/llm-connections.ts,packages/shared/src/config/model-fetcher.ts
- electron-updater: macOS (DMG/zip + signature validation), Windows (NSIS), Linux (AppImage).
- Download progress, update notification, install-on-quit, skip-version, dev-build exclusion.
- macOS code-signing checks; brand-configurable update sources.
- Platforms: macOS (arm64/x64), Windows (x64/arm64), Linux (AppImage).
apps/electron/src/main/auto-update.ts
- Native OS notifications (focus-suppressed, click-to-navigate, workspace routing).
- macOS dock badge unread count (instance-aware); in-app Sonner toasts.
apps/electron/src/main/notifications.ts
- Deep linking / URL scheme actions (new-chat, resume/delete/flag session, navigate to settings/sources/skills).
- Session resource export/import; remote workspace support (WebSocket-proxied handlers, chunked RPC).
- Power management (keep-awake during runs); Sentry error tracking with redaction; onboarding/setup flow.
apps/electron/src/main/deep-link.ts,apps/electron/src/main/onboarding.ts
Generated as a baseline survey. Verify against current code before relying on any single line — the app evolves and this index can lag.