cowork-os 0.3.21 → 0.3.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +372 -10
  2. package/connectors/README.md +20 -0
  3. package/connectors/asana-mcp/README.md +24 -0
  4. package/connectors/asana-mcp/dist/index.js +427 -0
  5. package/connectors/asana-mcp/package.json +15 -0
  6. package/connectors/asana-mcp/src/index.ts +553 -0
  7. package/connectors/asana-mcp/tsconfig.json +13 -0
  8. package/connectors/hubspot-mcp/README.md +35 -0
  9. package/connectors/hubspot-mcp/dist/index.js +454 -0
  10. package/connectors/hubspot-mcp/package.json +15 -0
  11. package/connectors/hubspot-mcp/src/index.ts +562 -0
  12. package/connectors/hubspot-mcp/tsconfig.json +13 -0
  13. package/connectors/jira-mcp/README.md +49 -0
  14. package/connectors/jira-mcp/dist/index.js +588 -0
  15. package/connectors/jira-mcp/package.json +15 -0
  16. package/connectors/jira-mcp/src/index.ts +711 -0
  17. package/connectors/jira-mcp/tsconfig.json +13 -0
  18. package/connectors/linear-mcp/README.md +22 -0
  19. package/connectors/linear-mcp/dist/index.js +402 -0
  20. package/connectors/linear-mcp/package.json +15 -0
  21. package/connectors/linear-mcp/src/index.ts +522 -0
  22. package/connectors/linear-mcp/tsconfig.json +13 -0
  23. package/connectors/okta-mcp/README.md +24 -0
  24. package/connectors/okta-mcp/dist/index.js +411 -0
  25. package/connectors/okta-mcp/package.json +15 -0
  26. package/connectors/okta-mcp/src/index.ts +520 -0
  27. package/connectors/okta-mcp/tsconfig.json +13 -0
  28. package/connectors/salesforce-mcp/README.md +47 -0
  29. package/connectors/salesforce-mcp/dist/index.js +584 -0
  30. package/connectors/salesforce-mcp/package.json +15 -0
  31. package/connectors/salesforce-mcp/src/index.ts +722 -0
  32. package/connectors/salesforce-mcp/tsconfig.json +13 -0
  33. package/connectors/servicenow-mcp/README.md +26 -0
  34. package/connectors/servicenow-mcp/dist/index.js +400 -0
  35. package/connectors/servicenow-mcp/package.json +15 -0
  36. package/connectors/servicenow-mcp/src/index.ts +500 -0
  37. package/connectors/servicenow-mcp/tsconfig.json +13 -0
  38. package/connectors/templates/mcp-connector/README.md +31 -0
  39. package/connectors/templates/mcp-connector/package.json +15 -0
  40. package/connectors/templates/mcp-connector/src/index.ts +330 -0
  41. package/connectors/templates/mcp-connector/tsconfig.json +13 -0
  42. package/connectors/zendesk-mcp/README.md +40 -0
  43. package/connectors/zendesk-mcp/dist/index.js +431 -0
  44. package/connectors/zendesk-mcp/package.json +15 -0
  45. package/connectors/zendesk-mcp/src/index.ts +543 -0
  46. package/connectors/zendesk-mcp/tsconfig.json +13 -0
  47. package/dist/electron/electron/agent/custom-skill-loader.js +31 -1
  48. package/dist/electron/electron/agent/daemon.js +189 -13
  49. package/dist/electron/electron/agent/executor.js +895 -78
  50. package/dist/electron/electron/agent/llm/anthropic-compatible-provider.js +177 -0
  51. package/dist/electron/electron/agent/llm/azure-openai-provider.js +328 -0
  52. package/dist/electron/electron/agent/llm/bedrock-provider.js +49 -9
  53. package/dist/electron/electron/agent/llm/github-copilot-provider.js +97 -0
  54. package/dist/electron/electron/agent/llm/groq-provider.js +33 -0
  55. package/dist/electron/electron/agent/llm/index.js +13 -1
  56. package/dist/electron/electron/agent/llm/kimi-provider.js +33 -0
  57. package/dist/electron/electron/agent/llm/openai-compatible-provider.js +116 -0
  58. package/dist/electron/electron/agent/llm/openai-compatible.js +111 -0
  59. package/dist/electron/electron/agent/llm/openai-oauth.js +2 -1
  60. package/dist/electron/electron/agent/llm/openrouter-provider.js +1 -1
  61. package/dist/electron/electron/agent/llm/provider-factory.js +350 -4
  62. package/dist/electron/electron/agent/llm/types.js +66 -1
  63. package/dist/electron/electron/agent/llm/xai-provider.js +33 -0
  64. package/dist/electron/electron/agent/search/provider-factory.js +38 -2
  65. package/dist/electron/electron/agent/tools/box-tools.js +231 -0
  66. package/dist/electron/electron/agent/tools/builtin-settings.js +28 -0
  67. package/dist/electron/electron/agent/tools/dropbox-tools.js +237 -0
  68. package/dist/electron/electron/agent/tools/file-tools.js +66 -3
  69. package/dist/electron/electron/agent/tools/google-drive-tools.js +227 -0
  70. package/dist/electron/electron/agent/tools/grep-tools.js +90 -10
  71. package/dist/electron/electron/agent/tools/image-tools.js +11 -1
  72. package/dist/electron/electron/agent/tools/notion-tools.js +312 -0
  73. package/dist/electron/electron/agent/tools/onedrive-tools.js +217 -0
  74. package/dist/electron/electron/agent/tools/registry.js +548 -10
  75. package/dist/electron/electron/agent/tools/search-tools.js +28 -10
  76. package/dist/electron/electron/agent/tools/sharepoint-tools.js +243 -0
  77. package/dist/electron/electron/agent/tools/shell-tools.js +12 -3
  78. package/dist/electron/electron/agent/tools/x-tools.js +1 -1
  79. package/dist/electron/electron/agents/agent-dispatch.js +63 -0
  80. package/dist/electron/electron/database/repositories.js +19 -5
  81. package/dist/electron/electron/database/schema.js +8 -0
  82. package/dist/electron/electron/gateway/channels/whatsapp.js +55 -0
  83. package/dist/electron/electron/gateway/index.js +75 -1
  84. package/dist/electron/electron/gateway/router.js +209 -154
  85. package/dist/electron/electron/ipc/canvas-handlers.js +5 -0
  86. package/dist/electron/electron/ipc/handlers.js +763 -267
  87. package/dist/electron/electron/main.js +63 -0
  88. package/dist/electron/electron/mcp/oauth/connector-oauth.js +333 -0
  89. package/dist/electron/electron/mcp/registry/MCPRegistryManager.js +503 -154
  90. package/dist/electron/electron/memory/MemoryService.js +2 -1
  91. package/dist/electron/electron/preload.js +78 -1
  92. package/dist/electron/electron/settings/appearance-manager.js +18 -1
  93. package/dist/electron/electron/settings/box-manager.js +54 -0
  94. package/dist/electron/electron/settings/dropbox-manager.js +54 -0
  95. package/dist/electron/electron/settings/google-drive-manager.js +54 -0
  96. package/dist/electron/electron/settings/notion-manager.js +56 -0
  97. package/dist/electron/electron/settings/onedrive-manager.js +54 -0
  98. package/dist/electron/electron/settings/sharepoint-manager.js +54 -0
  99. package/dist/electron/electron/utils/box-api.js +153 -0
  100. package/dist/electron/electron/utils/dropbox-api.js +144 -0
  101. package/dist/electron/electron/utils/env-migration.js +19 -0
  102. package/dist/electron/electron/utils/google-drive-api.js +152 -0
  103. package/dist/electron/electron/utils/notion-api.js +103 -0
  104. package/dist/electron/electron/utils/onedrive-api.js +113 -0
  105. package/dist/electron/electron/utils/sharepoint-api.js +109 -0
  106. package/dist/electron/electron/utils/validation.js +98 -3
  107. package/dist/electron/electron/utils/x-cli.js +1 -1
  108. package/dist/electron/shared/channelMessages.js +284 -3
  109. package/dist/electron/shared/llm-provider-catalog.js +198 -0
  110. package/dist/electron/shared/types.js +90 -1
  111. package/package.json +14 -3
  112. package/resources/skills/nano-banana-pro.json +4 -4
  113. package/resources/skills/openai-image-gen.json +3 -3
  114. package/resources/skills/scripts/gen.py +163 -0
  115. package/resources/skills/scripts/generate_image.py +91 -0
  116. package/src/electron/agent/custom-skill-loader.ts +34 -1
  117. package/src/electron/agent/daemon.ts +210 -14
  118. package/src/electron/agent/executor.ts +1124 -85
  119. package/src/electron/agent/llm/anthropic-compatible-provider.ts +214 -0
  120. package/src/electron/agent/llm/azure-openai-provider.ts +388 -0
  121. package/src/electron/agent/llm/bedrock-provider.ts +62 -9
  122. package/src/electron/agent/llm/github-copilot-provider.ts +117 -0
  123. package/src/electron/agent/llm/groq-provider.ts +39 -0
  124. package/src/electron/agent/llm/index.ts +6 -0
  125. package/src/electron/agent/llm/kimi-provider.ts +39 -0
  126. package/src/electron/agent/llm/openai-compatible-provider.ts +153 -0
  127. package/src/electron/agent/llm/openai-compatible.ts +133 -0
  128. package/src/electron/agent/llm/openai-oauth.ts +2 -1
  129. package/src/electron/agent/llm/openrouter-provider.ts +2 -1
  130. package/src/electron/agent/llm/provider-factory.ts +459 -6
  131. package/src/electron/agent/llm/types.ts +95 -1
  132. package/src/electron/agent/llm/xai-provider.ts +39 -0
  133. package/src/electron/agent/search/provider-factory.ts +43 -2
  134. package/src/electron/agent/tools/box-tools.ts +239 -0
  135. package/src/electron/agent/tools/builtin-settings.ts +36 -0
  136. package/src/electron/agent/tools/dropbox-tools.ts +237 -0
  137. package/src/electron/agent/tools/file-tools.ts +66 -3
  138. package/src/electron/agent/tools/gmail-tools.ts +240 -0
  139. package/src/electron/agent/tools/google-calendar-tools.ts +258 -0
  140. package/src/electron/agent/tools/google-drive-tools.ts +228 -0
  141. package/src/electron/agent/tools/grep-tools.ts +97 -12
  142. package/src/electron/agent/tools/image-tools.ts +11 -1
  143. package/src/electron/agent/tools/notion-tools.ts +330 -0
  144. package/src/electron/agent/tools/onedrive-tools.ts +217 -0
  145. package/src/electron/agent/tools/registry.ts +794 -10
  146. package/src/electron/agent/tools/search-tools.ts +29 -11
  147. package/src/electron/agent/tools/sharepoint-tools.ts +247 -0
  148. package/src/electron/agent/tools/shell-tools.ts +11 -3
  149. package/src/electron/agent/tools/x-tools.ts +1 -1
  150. package/src/electron/agents/agent-dispatch.ts +79 -0
  151. package/src/electron/database/SecureSettingsRepository.ts +7 -1
  152. package/src/electron/database/repositories.ts +58 -6
  153. package/src/electron/database/schema.ts +8 -0
  154. package/src/electron/gateway/channels/discord.ts +4 -0
  155. package/src/electron/gateway/channels/google-chat.ts +3 -0
  156. package/src/electron/gateway/channels/line.ts +3 -0
  157. package/src/electron/gateway/channels/matrix-client.ts +15 -0
  158. package/src/electron/gateway/channels/matrix.ts +31 -0
  159. package/src/electron/gateway/channels/mattermost.ts +3 -0
  160. package/src/electron/gateway/channels/signal.ts +3 -0
  161. package/src/electron/gateway/channels/slack.ts +9 -4
  162. package/src/electron/gateway/channels/teams.ts +4 -0
  163. package/src/electron/gateway/channels/telegram.ts +2 -0
  164. package/src/electron/gateway/channels/twitch.ts +2 -0
  165. package/src/electron/gateway/channels/types.ts +8 -0
  166. package/src/electron/gateway/channels/whatsapp.ts +66 -0
  167. package/src/electron/gateway/index.ts +95 -2
  168. package/src/electron/gateway/router.ts +231 -161
  169. package/src/electron/gateway/security.ts +21 -9
  170. package/src/electron/ipc/canvas-handlers.ts +10 -0
  171. package/src/electron/ipc/handlers.ts +848 -292
  172. package/src/electron/main.ts +35 -0
  173. package/src/electron/mcp/oauth/connector-oauth.ts +448 -0
  174. package/src/electron/mcp/registry/MCPRegistryManager.ts +343 -12
  175. package/src/electron/memory/MemoryService.ts +7 -1
  176. package/src/electron/preload.ts +200 -5
  177. package/src/electron/settings/appearance-manager.ts +20 -2
  178. package/src/electron/settings/box-manager.ts +58 -0
  179. package/src/electron/settings/dropbox-manager.ts +58 -0
  180. package/src/electron/settings/google-workspace-manager.ts +59 -0
  181. package/src/electron/settings/notion-manager.ts +60 -0
  182. package/src/electron/settings/onedrive-manager.ts +58 -0
  183. package/src/electron/settings/sharepoint-manager.ts +58 -0
  184. package/src/electron/utils/box-api.ts +184 -0
  185. package/src/electron/utils/dropbox-api.ts +171 -0
  186. package/src/electron/utils/env-migration.ts +22 -0
  187. package/src/electron/utils/gmail-api.ts +121 -0
  188. package/src/electron/utils/google-calendar-api.ts +115 -0
  189. package/src/electron/utils/google-workspace-api.ts +228 -0
  190. package/src/electron/utils/google-workspace-auth.ts +109 -0
  191. package/src/electron/utils/google-workspace-oauth.ts +232 -0
  192. package/src/electron/utils/notion-api.ts +126 -0
  193. package/src/electron/utils/onedrive-api.ts +137 -0
  194. package/src/electron/utils/sharepoint-api.ts +132 -0
  195. package/src/electron/utils/validation.ts +128 -1
  196. package/src/electron/utils/x-cli.ts +1 -1
  197. package/src/renderer/App.tsx +119 -8
  198. package/src/renderer/components/ActivityFeedItem.tsx +34 -17
  199. package/src/renderer/components/AgentWorkingStatePanel.tsx +7 -5
  200. package/src/renderer/components/AppearanceSettings.tsx +37 -2
  201. package/src/renderer/components/BlueBubblesSettings.tsx +18 -7
  202. package/src/renderer/components/BoxSettings.tsx +203 -0
  203. package/src/renderer/components/BrowserView.tsx +101 -0
  204. package/src/renderer/components/BuiltinToolsSettings.tsx +105 -0
  205. package/src/renderer/components/CanvasPreview.tsx +68 -1
  206. package/src/renderer/components/ConnectorEnvModal.tsx +116 -0
  207. package/src/renderer/components/ConnectorSetupModal.tsx +566 -0
  208. package/src/renderer/components/ConnectorsSettings.tsx +397 -0
  209. package/src/renderer/components/ControlPlaneSettings.tsx +2 -0
  210. package/src/renderer/components/DiscordSettings.tsx +18 -7
  211. package/src/renderer/components/DropboxSettings.tsx +202 -0
  212. package/src/renderer/components/EmailSettings.tsx +18 -7
  213. package/src/renderer/components/FileViewer.tsx +21 -13
  214. package/src/renderer/components/GoogleChatSettings.tsx +17 -7
  215. package/src/renderer/components/GoogleWorkspaceSettings.tsx +332 -0
  216. package/src/renderer/components/ImessageSettings.tsx +22 -11
  217. package/src/renderer/components/LineIcons.tsx +376 -0
  218. package/src/renderer/components/LineSettings.tsx +18 -7
  219. package/src/renderer/components/MCPSettings.tsx +56 -0
  220. package/src/renderer/components/MainContent.tsx +740 -76
  221. package/src/renderer/components/MatrixSettings.tsx +18 -7
  222. package/src/renderer/components/MattermostSettings.tsx +18 -7
  223. package/src/renderer/components/NodesSettings.tsx +58 -99
  224. package/src/renderer/components/NotificationPanel.tsx +25 -11
  225. package/src/renderer/components/NotionSettings.tsx +231 -0
  226. package/src/renderer/components/Onboarding/Onboarding.tsx +13 -1
  227. package/src/renderer/components/OnboardingModal.tsx +70 -1
  228. package/src/renderer/components/OneDriveSettings.tsx +212 -0
  229. package/src/renderer/components/RightPanel.tsx +141 -28
  230. package/src/renderer/components/ScheduledTasksSettings.tsx +10 -62
  231. package/src/renderer/components/SearchSettings.tsx +118 -114
  232. package/src/renderer/components/Settings.tsx +1425 -651
  233. package/src/renderer/components/SharePointSettings.tsx +224 -0
  234. package/src/renderer/components/Sidebar.tsx +94 -19
  235. package/src/renderer/components/SignalSettings.tsx +18 -7
  236. package/src/renderer/components/SkillHubBrowser.tsx +144 -185
  237. package/src/renderer/components/SlackSettings.tsx +18 -7
  238. package/src/renderer/components/TaskQuickActions.tsx +11 -6
  239. package/src/renderer/components/TaskTimeline.tsx +58 -26
  240. package/src/renderer/components/TeamsSettings.tsx +18 -7
  241. package/src/renderer/components/TelegramSettings.tsx +18 -7
  242. package/src/renderer/components/ThemeIcon.tsx +16 -0
  243. package/src/renderer/components/TwitchSettings.tsx +18 -7
  244. package/src/renderer/components/VoiceSettings.tsx +30 -74
  245. package/src/renderer/components/WhatsAppSettings.tsx +48 -37
  246. package/src/renderer/components/WorkingStateHistory.tsx +7 -5
  247. package/src/renderer/components/WorkspaceSelector.tsx +42 -13
  248. package/src/renderer/hooks/useOnboardingFlow.ts +21 -0
  249. package/src/renderer/styles/index.css +2333 -209
  250. package/src/shared/channelMessages.ts +367 -4
  251. package/src/shared/llm-provider-catalog.ts +217 -0
  252. package/src/shared/types.ts +251 -2
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="screenshots/cowork-os-logo.png" alt="CoWork OS Logo" width="120">
2
+ <img src="screenshots/cowork-oss-logo-new.png" alt="CoWork OS Logo" width="120">
3
3
  </p>
4
4
 
5
5
  <div align="center">
@@ -26,11 +26,38 @@ Your AI needs a secure home. CoWork OS provides the runtime, security layers, an
26
26
 
27
27
  | | |
28
28
  |---|---|
29
- | **6 AI Providers** | Claude, GPT-4, Gemini, Bedrock, OpenRouter, Ollama (free/local) |
29
+ | **20+ AI Providers** | Claude, OpenAI, Gemini, Bedrock, OpenRouter, Ollama (free/local), Groq, xAI, Kimi, Mistral, Cerebras, MiniMax, Qwen, Copilot, and more |
30
30
  | **14 Messaging Channels** | WhatsApp, Telegram, Discord, Slack, Teams, Google Chat, iMessage, Signal, Mattermost, Matrix, Twitch, LINE, BlueBubbles, Email |
31
- | **Security-First** | 1800+ unit tests, configurable guardrails, approval workflows |
31
+ | **8 Enterprise Connectors** | Salesforce, Jira, HubSpot, Zendesk, ServiceNow, Linear, Asana, Okta |
32
+ | **6 Cloud Storage** | Notion, Box, OneDrive, Google Workspace (Drive/Gmail/Calendar), Dropbox, SharePoint |
33
+ | **Security-First** | 2350+ unit tests, configurable guardrails, approval workflows |
32
34
  | **Local-First** | Your data stays on your machine. BYOK (Bring Your Own Key) |
33
35
 
36
+ ### Feature Comparison (CoWork OS vs OpenClaw vs Claude Cowork)
37
+
38
+ | Feature | CoWork OS | OpenClaw | Claude Cowork |
39
+ |---|---|---|---|
40
+ | Model providers / BYOK | 20+ providers (Claude, OpenAI, Gemini, Bedrock, OpenRouter, Ollama, Groq, xAI, Kimi, Mistral, Cerebras, MiniMax, Qwen, Copilot, and more); BYOK | Any model supported; OAuth + API keys (Anthropic/OpenAI listed) | Claude plans (Pro/Max/Team/Enterprise); other providers not mentioned |
41
+ | Local-first data control | Data stays on your machine; BYOK | Run on your own devices; local-first gateway | Runs locally in an isolated VM; choose folders/connectors; local history for Team/Enterprise |
42
+ | Desktop platforms | macOS (cross-platform planned) | macOS, Linux, Windows (via WSL2) | macOS only (research preview) |
43
+ | Messaging channels | 14 channels: WhatsApp, Telegram, Discord, Slack, Teams, Google Chat, iMessage, Signal, Mattermost, Matrix, Twitch, LINE, BlueBubbles, Email | Multi-channel inbox: WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, BlueBubbles, iMessage, Teams, Matrix, Zalo, WebChat, macOS, iOS/Android | Not stated (desktop app + connectors) |
44
+ | Enterprise connectors | Salesforce, Jira, HubSpot, Zendesk, ServiceNow, Linear, Asana, Okta | Not stated | Connectors supported; examples include Slack, Notion, GitHub, Linear |
45
+ | Cloud storage connectors | Notion, Box, OneDrive, Google Workspace, Dropbox, SharePoint | Not stated | Not stated |
46
+ | Mobile companions | iOS + Android companion apps (local network) | iOS/Android nodes + macOS menu bar app | Not stated (macOS only) |
47
+ | Scheduling / cron | Recurring tasks via cron expressions | Cron + wakeups | Not stated |
48
+ | Remote access | Tailscale or SSH tunnels | Tailscale Serve/Funnel or SSH tunnels | Not stated |
49
+ | WebSocket API / control plane | WebSocket API for custom integrations | Gateway WebSocket control plane | Not stated |
50
+ | Browser automation | Playwright automation | Browser control (Chrome/Chromium) | Browser access via Chrome connector |
51
+ | Skills / plugins | 75+ bundled skills | Skills platform (bundled, managed, workspace skills) | Not stated |
52
+ | MCP support | Yes | Not stated | Not stated |
53
+ | Guardrails (token/cost/iteration limits) | Configurable guardrails | Not stated | Not stated |
54
+ | Approval workflows | Required for destructive operations | Not stated | Human approval before significant actions |
55
+ | Access control (pairing/allowlists) | Pairing codes + per-channel allowlists | DM pairing + allowlists | Folder/connector access controls |
56
+ | Sandbox isolation | macOS sandbox-exec or Docker | Not stated | Runs locally in an isolated VM |
57
+ | Encrypted credential storage | OS keychain + AES-256 fallback | Not stated | Not stated |
58
+
59
+ _Sources: [OpenClaw README](https://github.com/openclaw/openclaw), [OpenClaw docs](https://docs.openclaw.ai), and the [Claude Cowork product page](https://claude.com/product/cowork). “Not stated” means not documented in public materials._
60
+
34
61
  > **Status**: macOS desktop app (cross-platform support planned)
35
62
 
36
63
  ---
@@ -40,7 +67,7 @@ Your AI needs a secure home. CoWork OS provides the runtime, security layers, an
40
67
  <p align="center">
41
68
  <img src="screenshots/ZeroLeaks-result-010226.png" alt="ZeroLeaks Security Assessment Result" width="600">
42
69
  <br>
43
- <em>CoWork OS achieves one of the highest security scores on <a href="https://zeroleaks.ai/">ZeroLeaks</a> — outperforming solutions like OpenClaw in prompt injection resistance</em>
70
+ <em>CoWork OS achieves one of the highest security scores on <a href="https://zeroleaks.ai/">ZeroLeaks</a> — outperforming many commercial solutions in prompt injection resistance</em>
44
71
  <br>
45
72
  <a href="ZeroLeaks-Report-jn70f56art03m4rj7fp4b5k9p180aqfd.pdf">View Full Security Assessment Report</a>
46
73
  </p>
@@ -63,7 +90,7 @@ Your AI needs a secure home. CoWork OS provides the runtime, security layers, an
63
90
  - **Dangerous command blocking**: Built-in patterns + custom regex rules
64
91
  - **Approval workflows**: User consent required for destructive operations
65
92
  - **Pairing & allowlists**: Control who can access your AI via messaging channels
66
- - **1800+ tests**: Comprehensive test coverage for access control and policies
93
+ - **2350+ tests**: Comprehensive test coverage for access control and policies
67
94
 
68
95
  ### Your Data, Your Control
69
96
 
@@ -158,6 +185,34 @@ CoWork OS is **free and open source**. To run tasks, configure your own model cr
158
185
  | OpenAI (ChatGPT OAuth) | Sign in with ChatGPT account | Uses your ChatGPT subscription |
159
186
  | AWS Bedrock | AWS credentials in Settings | Pay-per-token via AWS |
160
187
  | Ollama (Local) | Install Ollama and pull models | **Free** (runs locally) |
188
+ | Groq | API key in Settings | Pay-per-token |
189
+ | xAI (Grok) | API key in Settings | Pay-per-token |
190
+ | Kimi (Moonshot) | API key in Settings | Pay-per-token |
191
+
192
+ ### Compatible / Gateway Providers
193
+
194
+ | Provider | Configuration | Billing |
195
+ |----------|---------------|---------|
196
+ | OpenCode Zen | API key + base URL in Settings | Provider billing |
197
+ | Google Vertex | Access token + base URL in Settings | Provider billing |
198
+ | Google Antigravity | Access token + base URL in Settings | Provider billing |
199
+ | Google Gemini CLI | Access token + base URL in Settings | Provider billing |
200
+ | Z.AI | API key + base URL in Settings | Provider billing |
201
+ | GLM | API key + base URL in Settings | Provider billing |
202
+ | Vercel AI Gateway | API key in Settings | Provider billing |
203
+ | Cerebras | API key in Settings | Provider billing |
204
+ | Mistral | API key in Settings | Provider billing |
205
+ | GitHub Copilot | GitHub token in Settings | Subscription-based |
206
+ | Moonshot (Kimi) | API key in Settings | Provider billing |
207
+ | Qwen Portal | API key in Settings | Provider billing |
208
+ | MiniMax | API key in Settings | Provider billing |
209
+ | MiniMax Portal | API key in Settings | Provider billing |
210
+ | Xiaomi MiMo | API key in Settings | Provider billing |
211
+ | Venice AI | API key in Settings | Provider billing |
212
+ | Synthetic | API key in Settings | Provider billing |
213
+ | Kimi Code | API key in Settings | Provider billing |
214
+ | OpenAI-Compatible (Custom) | API key + base URL in Settings | Provider billing |
215
+ | Anthropic-Compatible (Custom) | API key + base URL in Settings | Provider billing |
161
216
 
162
217
  **Your usage is billed directly by your provider.** CoWork OS does not proxy or resell model access.
163
218
 
@@ -188,6 +243,18 @@ All channels support:
188
243
  - Session management
189
244
  - Rate limiting
190
245
 
246
+ ### Visual Theme System
247
+
248
+ Customize the app appearance with multiple theme options.
249
+
250
+ | Theme | Description |
251
+ |-------|-------------|
252
+ | **System** | Follows your macOS light/dark mode preference |
253
+ | **Light** | Clean light interface |
254
+ | **Dark** | Dark mode for reduced eye strain |
255
+
256
+ Configure in **Settings** > **Appearance**.
257
+
191
258
  ### Agent Capabilities
192
259
 
193
260
  - **Task-Based Workflow**: Multi-step execution with plan-execute-observe loops
@@ -196,6 +263,7 @@ All channels support:
196
263
  - **75+ Built-in Skills**: GitHub, Slack, Notion, Spotify, Apple Notes, and more
197
264
  - **Document Creation**: Excel, Word, PDF, PowerPoint with professional formatting
198
265
  - **Persistent Memory**: Cross-session context with privacy-aware observation capture
266
+ - **Workspace Recency**: Workspaces ordered by last used time for quick access
199
267
 
200
268
  ### Voice Mode (NEW)
201
269
 
@@ -340,7 +408,7 @@ Customize agent behavior via Settings or conversation:
340
408
  ┌─────────────────────────────────────────────────────────────────┐
341
409
  │ Execution Layer │
342
410
  │ File Operations | Document Skills | Browser Automation │
343
- │ LLM Providers (6) | Search Providers (4) | MCP Client
411
+ │ LLM Providers (20+) | Search Providers (4) | MCP Client
344
412
  └─────────────────────────────────────────────────────────────────┘
345
413
 
346
414
  ┌─────────────────────────────────────────────────────────────────┐
@@ -401,7 +469,7 @@ This is a good option for:
401
469
 
402
470
  - Node.js 18+ and npm
403
471
  - macOS 12 (Monterey) or later
404
- - One of: Anthropic API key, Google Gemini API key, OpenRouter API key, OpenAI API key, AWS Bedrock access, or Ollama installed locally
472
+ - One of: any supported LLM provider credentials (API key/token or AWS credentials) or Ollama installed locally
405
473
 
406
474
  ### Installation
407
475
 
@@ -1347,7 +1415,13 @@ Access CoWork OS from your iPhone, iPad, or Android device via the local network
1347
1415
 
1348
1416
  ## Web Search Integration
1349
1417
 
1350
- Multi-provider web search for research tasks.
1418
+ Multi-provider web search for research tasks with automatic retry and fallback.
1419
+
1420
+ ### Features
1421
+
1422
+ - **Automatic Retry**: Transient errors (rate limits, timeouts) trigger automatic retry with exponential backoff
1423
+ - **Provider Fallback**: If one provider fails, automatically tries the next configured provider
1424
+ - **Graceful Degradation**: Returns helpful error messages instead of failing silently
1351
1425
 
1352
1426
  ### Supported Providers
1353
1427
 
@@ -1380,6 +1454,8 @@ Claude Code-style tools for developers.
1380
1454
  → grep pattern="TODO:" glob="*.ts"
1381
1455
  ```
1382
1456
 
1457
+ **Smart Document Detection**: Automatically detects document-heavy workspaces (PDF/DOCX) and provides helpful guidance to use `read_file` instead, since grep only searches text files.
1458
+
1383
1459
  ### edit_file - Surgical Editing
1384
1460
 
1385
1461
  ```
@@ -1411,6 +1487,213 @@ Full HTTP client for API calls (curl-like).
1411
1487
 
1412
1488
  ---
1413
1489
 
1490
+ ## Notion Integration
1491
+
1492
+ Configure in **Settings > Integrations > Notion**. Use `notion_action` to search, read, and update Notion content. Write actions (create, update, append, delete) require approval.
1493
+
1494
+ ### Search pages or data sources
1495
+
1496
+ ```ts
1497
+ notion_action({
1498
+ action: "search",
1499
+ query: "Roadmap"
1500
+ });
1501
+ ```
1502
+
1503
+ ### Query a data source with filters and sorts
1504
+
1505
+ ```ts
1506
+ notion_action({
1507
+ action: "query_data_source",
1508
+ data_source_id: "YOUR_DATA_SOURCE_ID",
1509
+ filter: {
1510
+ property: "Status",
1511
+ select: { equals: "Active" }
1512
+ },
1513
+ sorts: [
1514
+ { property: "Updated", direction: "descending" }
1515
+ ],
1516
+ page_size: 25
1517
+ });
1518
+ ```
1519
+
1520
+ ### Paginate a data source query
1521
+
1522
+ ```ts
1523
+ notion_action({
1524
+ action: "query_data_source",
1525
+ data_source_id: "YOUR_DATA_SOURCE_ID",
1526
+ start_cursor: "NEXT_CURSOR_FROM_PREVIOUS_RESPONSE",
1527
+ page_size: 25
1528
+ });
1529
+ ```
1530
+
1531
+ ### Update or delete a block
1532
+
1533
+ ```ts
1534
+ notion_action({
1535
+ action: "update_block",
1536
+ block_id: "BLOCK_ID",
1537
+ block_type: "paragraph",
1538
+ block: {
1539
+ rich_text: [{ text: { content: "Updated text" } }]
1540
+ }
1541
+ });
1542
+
1543
+ notion_action({
1544
+ action: "delete_block",
1545
+ block_id: "BLOCK_ID"
1546
+ });
1547
+ ```
1548
+
1549
+ ---
1550
+
1551
+ ## Box Integration
1552
+
1553
+ Configure in **Settings > Integrations > Box**. Use `box_action` to search, read, and manage Box files and folders. Write actions (create, upload, delete) require approval.
1554
+
1555
+ ### Search for files
1556
+
1557
+ ```ts
1558
+ box_action({
1559
+ action: "search",
1560
+ query: "Q4 report",
1561
+ type: "file",
1562
+ limit: 25
1563
+ });
1564
+ ```
1565
+
1566
+ ### Upload a file
1567
+
1568
+ ```ts
1569
+ box_action({
1570
+ action: "upload_file",
1571
+ file_path: "reports/summary.pdf",
1572
+ parent_id: "0"
1573
+ });
1574
+ ```
1575
+
1576
+ ---
1577
+
1578
+ ## OneDrive Integration
1579
+
1580
+ Configure in **Settings > Integrations > OneDrive**. Use `onedrive_action` to search, read, and manage OneDrive files and folders. Write actions (create, upload, delete) require approval.
1581
+
1582
+ ### Search for files
1583
+
1584
+ ```ts
1585
+ onedrive_action({
1586
+ action: "search",
1587
+ query: "Roadmap"
1588
+ });
1589
+ ```
1590
+
1591
+ ### Upload a file
1592
+
1593
+ ```ts
1594
+ onedrive_action({
1595
+ action: "upload_file",
1596
+ file_path: "reports/summary.pdf"
1597
+ });
1598
+ ```
1599
+
1600
+ ---
1601
+
1602
+ ## Google Workspace Integration
1603
+
1604
+ Configure in **Settings > Integrations > Google Workspace**. Unified access to Gmail, Google Calendar, and Google Drive with shared OAuth authentication.
1605
+
1606
+ ### Available Tools
1607
+
1608
+ | Service | Tool | Actions |
1609
+ |---------|------|---------|
1610
+ | **Drive** | `google_drive_action` | list_files, search, upload_file, download_file, delete_file |
1611
+ | **Gmail** | `gmail_action` | list_messages, search, send_email, read_email, create_draft |
1612
+ | **Calendar** | `google_calendar_action` | list_events, create_event, update_event, delete_event |
1613
+
1614
+ ### Gmail - Send an email
1615
+
1616
+ ```ts
1617
+ gmail_action({
1618
+ action: "send_email",
1619
+ to: "recipient@example.com",
1620
+ subject: "Weekly Report",
1621
+ body: "Please find the attached report..."
1622
+ });
1623
+ ```
1624
+
1625
+ ### Calendar - Create an event
1626
+
1627
+ ```ts
1628
+ google_calendar_action({
1629
+ action: "create_event",
1630
+ title: "Team Standup",
1631
+ start_time: "2025-02-10T09:00:00",
1632
+ end_time: "2025-02-10T09:30:00",
1633
+ attendees: ["team@example.com"]
1634
+ });
1635
+ ```
1636
+
1637
+ ### Drive - List files
1638
+
1639
+ ```ts
1640
+ google_drive_action({
1641
+ action: "list_files",
1642
+ page_size: 20
1643
+ });
1644
+ ```
1645
+
1646
+ ---
1647
+
1648
+ ## Dropbox Integration
1649
+
1650
+ Configure in **Settings > Integrations > Dropbox**. Use `dropbox_action` to search, read, and manage Dropbox files and folders. Write actions (create, upload, delete) require approval.
1651
+
1652
+ ### List folder contents
1653
+
1654
+ ```ts
1655
+ dropbox_action({
1656
+ action: "list_folder",
1657
+ path: "/Reports"
1658
+ });
1659
+ ```
1660
+
1661
+ ### Upload a file
1662
+
1663
+ ```ts
1664
+ dropbox_action({
1665
+ action: "upload_file",
1666
+ file_path: "reports/summary.pdf",
1667
+ path: "/Reports/summary.pdf"
1668
+ });
1669
+ ```
1670
+
1671
+ ---
1672
+
1673
+ ## SharePoint Integration
1674
+
1675
+ Configure in **Settings > Integrations > SharePoint**. Use `sharepoint_action` to search sites and manage drive items. Write actions (create, upload, delete) require approval.
1676
+
1677
+ ### Search sites
1678
+
1679
+ ```ts
1680
+ sharepoint_action({
1681
+ action: "search_sites",
1682
+ query: "Marketing"
1683
+ });
1684
+ ```
1685
+
1686
+ ### Upload a file
1687
+
1688
+ ```ts
1689
+ sharepoint_action({
1690
+ action: "upload_file",
1691
+ file_path: "reports/summary.pdf"
1692
+ });
1693
+ ```
1694
+
1695
+ ---
1696
+
1414
1697
  ## Personality & Customization
1415
1698
 
1416
1699
  Tell the agent what you want:
@@ -1494,6 +1777,35 @@ Sign in with your ChatGPT subscription to use without additional API costs.
1494
1777
 
1495
1778
  ---
1496
1779
 
1780
+ ## Additional LLM Providers
1781
+
1782
+ Configure these in **Settings** > **LLM Provider** by entering API keys/tokens, model IDs, and base URLs when required.
1783
+
1784
+ | Provider | Compatibility |
1785
+ |----------|---------------|
1786
+ | OpenCode Zen | OpenAI-compatible |
1787
+ | Google Vertex | OpenAI-compatible |
1788
+ | Google Antigravity | OpenAI-compatible |
1789
+ | Google Gemini CLI | OpenAI-compatible |
1790
+ | Z.AI | OpenAI-compatible |
1791
+ | GLM | OpenAI-compatible |
1792
+ | Vercel AI Gateway | Anthropic-compatible |
1793
+ | Cerebras | OpenAI-compatible |
1794
+ | Mistral | OpenAI-compatible |
1795
+ | GitHub Copilot | OpenAI-compatible |
1796
+ | Moonshot (Kimi) | OpenAI-compatible |
1797
+ | Qwen Portal | Anthropic-compatible |
1798
+ | MiniMax | OpenAI-compatible |
1799
+ | MiniMax Portal | Anthropic-compatible |
1800
+ | Xiaomi MiMo | Anthropic-compatible |
1801
+ | Venice AI | OpenAI-compatible |
1802
+ | Synthetic | Anthropic-compatible |
1803
+ | Kimi Code | OpenAI-compatible |
1804
+ | OpenAI-Compatible (Custom) | OpenAI-compatible |
1805
+ | Anthropic-Compatible (Custom) | Anthropic-compatible |
1806
+
1807
+ ---
1808
+
1497
1809
  ## Built-in Skills (75+)
1498
1810
 
1499
1811
  | Category | Skills |
@@ -1522,6 +1834,47 @@ Browse and install servers from a catalog with one-click installation.
1522
1834
 
1523
1835
  ---
1524
1836
 
1837
+ ## Enterprise MCP Connectors
1838
+
1839
+ Pre-built MCP server connectors for enterprise integrations. Install from **Settings > MCP Servers > Browse Registry**.
1840
+
1841
+ ### Available Connectors
1842
+
1843
+ | Connector | Type | Tools |
1844
+ |-----------|------|-------|
1845
+ | **Salesforce** | CRM | `health`, `list_objects`, `describe_object`, `get_record`, `search_records`, `create_record`, `update_record` |
1846
+ | **Jira** | Issue Tracking | `health`, `list_projects`, `get_issue`, `search_issues`, `create_issue`, `update_issue` |
1847
+ | **HubSpot** | CRM | `health`, `list_contacts`, `get_contact`, `search_contacts`, `create_contact`, `update_contact` |
1848
+ | **Zendesk** | Support | `health`, `list_tickets`, `get_ticket`, `search_tickets`, `create_ticket`, `update_ticket` |
1849
+ | **ServiceNow** | ITSM | `health`, `list_incidents`, `get_incident`, `search_incidents`, `create_incident`, `update_incident` |
1850
+ | **Linear** | Product/Issue | `health`, `list_issues`, `get_issue`, `search_issues`, `create_issue`, `update_issue` |
1851
+ | **Asana** | Work Management | `health`, `list_tasks`, `get_task`, `search_tasks`, `create_task`, `update_task` |
1852
+ | **Okta** | Identity | `health`, `list_users`, `get_user`, `search_users`, `create_user`, `update_user` |
1853
+
1854
+ ### Setup
1855
+
1856
+ 1. Go to **Settings > MCP Servers > Browse Registry**
1857
+ 2. Find the connector you need (e.g., Salesforce)
1858
+ 3. Click **Install**
1859
+ 4. Configure credentials when prompted (API keys, OAuth tokens, etc.)
1860
+ 5. The connector tools become available to the agent
1861
+
1862
+ ### Building Custom Connectors
1863
+
1864
+ Use the connector template to build your own:
1865
+
1866
+ ```bash
1867
+ cp -r connectors/templates/mcp-connector connectors/my-connector
1868
+ cd connectors/my-connector
1869
+ npm install
1870
+ # Edit src/index.ts to implement your tools
1871
+ npm run build
1872
+ ```
1873
+
1874
+ See [docs/enterprise-connectors.md](docs/enterprise-connectors.md) for the full connector contract and conventions.
1875
+
1876
+ ---
1877
+
1525
1878
  ## WebSocket Control Plane
1526
1879
 
1527
1880
  Programmatic API for external automation and mobile companion apps.
@@ -1580,7 +1933,7 @@ Users must comply with their model provider's terms:
1580
1933
 
1581
1934
  ### Completed
1582
1935
 
1583
- - [x] Multi-provider LLM support (6 providers)
1936
+ - [x] Multi-provider LLM support (20+ providers including Groq, xAI, Kimi, GitHub Copilot, OpenAI/Anthropic-compatible)
1584
1937
  - [x] Multi-channel messaging (14 channels)
1585
1938
  - [x] Configurable guardrails and security
1586
1939
  - [x] Browser automation with Playwright
@@ -1591,13 +1944,22 @@ Users must comply with their model provider's terms:
1591
1944
  - [x] Tailscale and SSH remote access
1592
1945
  - [x] Personality system
1593
1946
  - [x] 75+ bundled skills
1594
- - [x] 1800+ unit tests
1947
+ - [x] 2350+ unit tests
1595
1948
  - [x] Docker-based sandboxing (cross-platform)
1596
1949
  - [x] Per-context security policies (DM vs group)
1597
1950
  - [x] Enhanced pairing code UI with countdown
1598
1951
  - [x] Persistent memory system with privacy protection
1599
1952
  - [x] Mobile Companions with LAN access support
1600
1953
  - [x] Voice Mode with ElevenLabs and OpenAI integration
1954
+ - [x] Enterprise MCP Connectors (Salesforce, Jira, HubSpot, Zendesk, ServiceNow, Linear, Asana, Okta)
1955
+ - [x] Cloud Storage Integrations (Notion, Box, OneDrive, Google Drive, Dropbox, SharePoint)
1956
+ - [x] Visual Theme System (Light/Dark/System modes)
1957
+ - [x] Workspace recency ordering
1958
+ - [x] Web search retry with exponential backoff
1959
+ - [x] Google Workspace Integration (Gmail, Calendar, Drive with shared OAuth)
1960
+ - [x] Gateway channel cleanup and enhanced security (Matrix direct rooms, Slack groups)
1961
+ - [x] Agent transient error retry logic for improved reliability
1962
+ - [x] Smart parameter inference for document creation tools
1601
1963
 
1602
1964
  ### Planned
1603
1965
 
@@ -0,0 +1,20 @@
1
+ # Connectors
2
+
3
+ This folder contains connector templates and reference implementations.
4
+
5
+ Connectors are MCP servers that expose enterprise APIs (Salesforce, Jira, etc.) to CoWork OS via tools. They are designed to run outside the desktop app so they can be deployed locally or as a managed service.
6
+
7
+ Templates:
8
+ - `connectors/templates/mcp-connector`
9
+
10
+ Reference implementations:
11
+ - `connectors/salesforce-mcp`
12
+ - `connectors/jira-mcp`
13
+ - `connectors/hubspot-mcp`
14
+ - `connectors/zendesk-mcp`
15
+ - `connectors/servicenow-mcp`
16
+ - `connectors/linear-mcp`
17
+ - `connectors/asana-mcp`
18
+ - `connectors/okta-mcp`
19
+
20
+ See `docs/enterprise-connectors.md` for the Phase 1 connector contract.
@@ -0,0 +1,24 @@
1
+ # Asana MCP Connector (MVP)
2
+
3
+ This connector exposes Asana APIs to CoWork OS through MCP tools.
4
+
5
+ ## Requirements
6
+
7
+ - `ASANA_ACCESS_TOKEN` (required)
8
+
9
+ ## Build & Run
10
+
11
+ ```bash
12
+ npm install
13
+ npm run build
14
+ npm start
15
+ ```
16
+
17
+ ## Tools
18
+
19
+ - `asana.health`
20
+ - `asana.list_projects`
21
+ - `asana.get_task`
22
+ - `asana.search_tasks`
23
+ - `asana.create_task`
24
+ - `asana.update_task`