Desktop App
ThinkWork Spaces Desktop is the installed macOS app for end users who live in Threads, Spaces, agent chat, and generated artifacts all day. It gives the Spaces product a dedicated Dock icon, native window frame, persistent sign-in, and update channel instead of asking users to keep one more browser tab alive.
The Desktop app packages the same Spaces experience served on the web: Spaces navigation, thread lists, agent chat, generated artifacts, side panels, and the command composer. The native shell adds installation, app identity, OAuth callback handling, secure token storage, and release-time updates around that shared Spaces product.
For day-to-day usage guidance, see Work in a Space. This page focuses on the installed macOS app and release behavior.
Why desktop exists
Section titled “Why desktop exists”A browser tab is easy to lose. Desktop gives ThinkWork a stable place in the user’s day: a Dock icon, a Command-Tab target, native window controls, and a window that can sit beside terminals, spreadsheets, browsers, and communication tools.
That identity matters for an agent workspace. Users should be able to return to their threads and artifacts without hunting through tab groups or wondering whether a stale browser session still has the right state. Desktop makes Spaces feel like installed work software while keeping the underlying product model identical to the web app.
Desktop also gives ThinkWork a controlled delivery surface:
- Installed identity. Stable, canary, and development builds have distinct app names, bundle IDs, callback schemes, and user data directories.
- Persistent session restore. Cognito tokens are stored through macOS safe storage instead of browser local storage.
- Native app chrome. The sidebar and main header align with the macOS window frame rather than browser chrome.
- Release-time updates. Web Spaces changes appear on the web when deployed; Desktop receives them when a new Electron build packages the updated Spaces bundle.
What users do there
Section titled “What users do there”Desktop is for end users inside a ThinkWork tenant who want Spaces as their primary work surface.
| Area | What it supports |
|---|---|
| Spaces | Navigate contextual workrooms, workspace files, tools, and agent context |
| Threads | Read and continue durable work records across chat, automations, and integrations |
| Agent chat | Send messages, review responses, and continue work with the tenant platform agent |
| Generated artifacts | Inspect reports, applets, plans, notes, and other thread-generated outputs |
| Side panels | Keep detail, metadata, and supporting views near the active thread |
| Command composer | Start or continue work without switching surfaces |
Operators still configure tenant-level settings in the Admin Web App. Personal mobile workflows, push notifications, and user-scoped integration setup still live in the Mobile App.
Thread notifications
Section titled “Thread notifications”Desktop raises a native macOS notification when a new message lands in a thread you participate in — including when a teammate @-mentions you into a brand-new thread you haven’t opened yet. Notifications fire while the app is running or in the background, and are a desktop-only feature (the web and mobile apps don’t show them).
You’re notified about:
- A new message in any thread you’re a participant in.
- Being mentioned into a new thread (you become a participant, so its opening message notifies you).
- Messages from agents as well as people.
Thinkwork keeps the quiet cases quiet:
- Your own messages never notify you.
- The thread you’re actively viewing stays silent while the app is focused — you’re already looking at it. (If the app is in the background, you’re still notified, even for the open thread.)
- Rapid messages in one thread coalesce into a single notification instead of a burst, so a busy thread won’t flood you.
Clicking a notification focuses the app — restoring it from the background or Dock — and opens that thread, loading it if it isn’t already open.
Turning notifications on or off is done from Settings → General → Thread notifications (shown in the desktop app only). The first time you enable them, macOS asks for notification permission; allow it for ThinkWork. If you’ve blocked notifications at the OS level, the toggle can’t override that — re-enable ThinkWork in macOS System Settings → Notifications. The preference persists across restarts.
Install
Section titled “Install”Download the current macOS desktop build from the ThinkWork GitHub Releases page:
Download ThinkWork Spaces for macOS
Use the arm64.dmg artifact on Apple Silicon Macs. Use an x64.dmg artifact only when a release includes one for Intel Macs. Canary releases install as ThinkWork Spaces (Canary) and can run side by side with the stable app.
After downloading, open the DMG and drag ThinkWork Spaces into Applications. macOS should recognize release builds as signed and notarized by ThinkWork Inc.
Sign in and session restore
Section titled “Sign in and session restore”When the app starts without a saved session, it shows a minimal sign-in screen with a Log in button. Clicking the button opens the tenant’s Cognito hosted sign-in flow in the user’s system browser.
After Google/Cognito sign-in completes, the browser asks to open ThinkWork Spaces. Approving that prompt sends the OAuth callback back to the Desktop app through the channel’s deep-link scheme. The app stores the resulting Cognito tokens through encrypted macOS safe storage and opens the Spaces shell.
If Cognito rejects a login attempt, Desktop returns to the sign-in screen and shows the OAuth error message so the user can retry with a fresh login URL.
Native shell
Section titled “Native shell”The Desktop shell uses native-style app chrome around the shared Spaces product.
| Area | Behavior |
|---|---|
| Sidebar header | Contains the macOS window controls, sidebar toggle, back button, and forward button. Empty space in this header can be dragged to move the app window. |
| Main header | Shows the active page or thread title, plus page actions such as overflow, info, fullscreen, and side-panel controls. |
| Sidebar | Runs all the way to the top of the window so Desktop keeps the same visual frame as the web Spaces sidebar. |
Desktop intentionally removes the post-login product title from the header. Once signed in, the header should focus on the user’s current thread or page.
Desktop and web Spaces
Section titled “Desktop and web Spaces”Most user-facing work belongs in the shared Spaces app first. Updates to thread views, composer behavior, generated artifacts, side panels, sidebar navigation, and shared styling flow into both:
- Web Spaces when
app.thinkwork.aiis deployed - Desktop when a new Electron build packages the updated Spaces bundle
Desktop does not load the production website live at runtime. It packages a built Spaces bundle into the app, so web changes flow into Desktop at build and release time.
Desktop-specific work is limited to native concerns:
- OAuth callback and deep-link handling
- Secure token storage
- App name, icon, signing, notarization, and update channels
- Native window chrome and draggable regions
- Differences between browser APIs and Electron APIs
App channels
Section titled “App channels”Desktop uses separate app identities for stable, canary, and development builds. That separation lets teams test new builds without overwriting the user’s stable install or mixing saved sessions across channels.
| Channel | App name | Callback scheme |
|---|---|---|
| Stable | ThinkWork Spaces | thinkwork://oauth/callback |
| Canary | ThinkWork Spaces (Canary) | thinkwork-canary://oauth/callback |
| Development | ThinkWork Spaces (Dev) | thinkwork-dev://oauth/callback |
Known limits
Section titled “Known limits”- macOS is the supported Desktop target today. The app architecture is Electron-based, but public install guidance should stay macOS-first until Windows or Linux release artifacts are intentionally shipped.
- Desktop follows Spaces releases. A web-only Spaces deployment does not update the packaged app until a Desktop build is released.
- No local-only backend. Desktop talks to the same deployed ThinkWork stack as Web Spaces and Mobile.
Relationship to other apps
Section titled “Relationship to other apps”| App | Primary audience | Purpose |
|---|---|---|
| Desktop App | End users | Installed macOS Spaces app for daily thread and artifact work |
| Mobile App | End users | On-the-go chat, notifications, personal integrations, and task handling |
| Admin Web App | Operators and agent authors | Tenant, agent, guardrail, analytics, and integration configuration |
| CLI | Operators and developers | Deployment, stack inspection, and API-side operations |
Related pages
Section titled “Related pages”- Spaces Guide - practical guide to working in Spaces
- Applications - the full map of ThinkWork application surfaces
- Mobile App - the end-user mobile client
- Admin Web App - the operator-facing control plane
- Threads - the durable work record shared by web, desktop, and mobile
- Spaces - the contextual workroom model Desktop packages