Releases: donvito/coworker
Release list
Coworker v0.5.1
Dark mode is here, with quick appearance controls in your workspace and coworker chats.
Dark mode and themes
- Choose Light, Dark, or System independently of your color theme. System mode follows your device's appearance as it changes.
- All five themes — Graphite, Forest, Ocean, Plum, and Clay — work in both light and dark mode.
- Native menus and controls follow the selected mode, and your saved appearance is restored when the app opens.
Switch without leaving your work
- Open Appearance at the bottom of the workspace, coworker chat, or channel sidebar to change your theme and mode in place.
- Keep your current page, conversation, and unsent draft while switching.
- The same controls remain available under Settings → General → Appearance.
Upgrading
Existing installations keep their selected theme and default to Light mode until you choose another mode. No database migration is required.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.5.0
Coworkers can now remember facts and preferences across conversations, with your approval before every model-proposed memory change.
Memory
- Ask a coworker to remember, review, update, or forget a fact. Each coworker keeps its own local
MEMORY.md, available in new conversations, scheduled work, and after app restarts. - Review, edit, approve, or reject proposed changes in the desktop app or paired Telegram chat. Nothing is saved while approval is pending.
- Manage saved memory directly in coworker settings or with the CLI's
memory show,memory set, andmemory clearcommands. - Memory stays separate for each coworker and data profile. Current requests take precedence over saved preferences.
See the memory guide for examples, approval controls, and storage details. Saved memory is plaintext and included in the configured model's context; avoid storing credentials.
Documents and tool results
- Document authoring guidance now lives in a selectable skill, including suggestions based on a saved format preference and the option to choose a different format.
- Document exports accept supported format names regardless of letter case, including
PDFandDOCX. - Failed tools show their actual error. When a matching retry successfully creates a file, the earlier error collapses under Succeeded after retry, with details available to expand.
- File actions require a confirmed artifact, reducing misleading export success displays.
Profile and runtime fixes
- Updated coworker names, roles, and descriptions now reach the model as its current profile, taking precedence over stale identity details in operating instructions.
- Improved recovery when settings change during work, and handling of worker shutdowns, interrupted tasks, and late events.
Document-format confirmation remains model-dependent. Explicitly requesting a format is the most reliable option when a model skips clarification.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.4.1
Coworker v0.4.1
Run Coworker from your terminal, keep it working without a window, and start it automatically when you sign in.
Terminal and headless mode
- Start, stop, restart, and check Coworker from the bundled CLI. Headless mode keeps workers, schedules, and configured Telegram connections running without a window or tray.
- Chat with coworkers and manage models, skills, schedules, approvals, and Telegram from your terminal. Inspect live logs or export diagnostics, including while the app is stopped.
- Desktop and CLI share one running instance per profile, with the same saved credentials and approval requirements.
coworker start --uiopens the existing headless instance's window. - Readable terminal output and
--jsonsupport both interactive use and scripts. API keys and bot tokens use hidden prompts or stdin.
Start at login
Installed macOS and Windows apps can register the selected profile for automatic startup:
coworker start
coworker startup enable --headless
coworker startup statusUse startup enable --ui for desktop startup or startup disable to turn it off. The existing Launch at login switch controls the same registration and preserves your chosen mode.
Startup runs when you sign in. One profile can be registered per installed app identity; Linux and development-build login registration are not supported in this version. Headless mode still requires a desktop session and access to OS credential storage.
Fixes and guides
- Improved model, Telegram pairing, approval, and log output in the CLI.
- Added activity-limit validation and more reliable handling of interrupted terminal requests.
- Added administration guidance and a Pi session export skill for requested task-checkpoint exports.
- Added a terminal and headless guide covering CLI installation, commands, profile selection, and startup testing.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.4.0
A coworker can now operate a website for you. Browser control opens a real, visible browser that the coworker drives while you watch, under an approval you grant for one task at a time.
Browser control
- Ask a coworker to complete a task on a website. It navigates, reads the page, fills fields, clicks, selects, uploads, and downloads, one action at a time, checking the resulting page before continuing.
- The browser is visible. You see every step as it happens, and you can take over the window yourself at any point.
- Targets are chosen semantically — by role, label, text, placeholder, or test id — so the coworker acts on the control it named rather than on a guessed position.
You grant control one task at a time
- Starting a session requires your approval, and the request names the site and the goal in a sentence: Allow browser control at https://example.com for "…".
- The grant belongs to that task. When the task ends the permission ends with it, even if the window stays open, so the next piece of work asks again.
- Deny the request and the coworker gets nothing. There is no way to reach the browser without a grant.
Passwords and other human-only steps
- A coworker cannot type into a password field. It stops and asks you to enter the password yourself in the visible window.
- The same applies to payment details, recovery codes, and one-time verification codes, and a coworker will not work around CAPTCHAs, consent prompts, or security warnings.
What is kept, and what is not
- Each coworker keeps its own browser profile, so a site you log into once stays logged in for that coworker's later tasks. Profiles are per coworker and are never shared between them.
- Clear browser data… in coworker settings closes the browser and erases its cookies, logins, and history. Removing a coworker erases its profile too.
- Values typed into a page are redacted from durable tool logs, and page text and screenshots are kept out of logs and checkpoints. Browser profiles are excluded from backups and exported data.
- Downloads are saved into the coworker's workspace and returned as artifacts.
Turning it on
Browser control is off by default, including for coworkers you already have. Enable the browser-control skill in a coworker's settings to give it the four browser tools; leave it off and nothing changes.
Approvals hold their place
- Answering an approval no longer blocks the rest of the thread. Sending another message after a decision used to fail until the window was reloaded.
- A decided approval stays where it was raised, above the answer it authorized, instead of moving once the reply finished streaming.
Notes
No data migration is required. Installers are larger in this release because they now carry the browser the coworker drives.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.3.3
Coworker v0.3.3
Schedules are set in plain language instead of cron, approvals are answered in the conversation that raised them, and folder access and skills are two clicks under the message box.
Schedules in plain language
- Pick a frequency from plain choices — every few minutes, hourly, daily, weekdays, weekly, monthly — with a live preview that names the next run.
- Edit an existing schedule's frequency, including one a coworker created for you. A stored expression is read back into the same choices, so
*/2 * * * *opens as "every 2 minutes" rather than raw cron. - Schedule cards, approval summaries, and the schedule tool card all read as sentences. Cron appears only in the custom field, kept for expressions the plain choices cannot express.
- A coworker's schedules live in a tab in the side rail beside Files and Approvals, with pause, run now, and edit on each one.
Approvals in the conversation
- An approval raised by a conversation now appears in that conversation, in the order it happened, with Approve, Reject, and Review on the card.
- Once decided, it collapses to a one-line record so the thread keeps its history.
- The side rail stays the shared inbox across every conversation.
A schedule replies where you made it
- A schedule remembers the conversation it was created in and posts its runs there, instead of always landing in the coworker's main thread.
- Every schedule card names its destination and opens it in one click, including the main thread for schedules that have none.
- New work restores an archived destination, so a run can never be written into a conversation the roster hides.
Folder access and skills under the composer
- Grant or remove a read-only folder without leaving the conversation.
- Turn skills on and off from a plain list under the message box.
- Granted folders are named in the coworker's prompt. Asked what files it can see, a coworker now includes them instead of answering only from its workspace.
Migration
One additive migration adds a conversation to schedules. Existing schedules read as unbound and keep posting to the coworker's main thread, exactly as before.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.3.2
Telegram replies stream cleanly now: no full-screen flash when a coworker starts answering, one bubble for the whole reply, and tables you can actually read on a phone.
Highlights
- Telegram no longer wipes the chat white as a reply begins streaming.
- A single draft covers an entire reply, including the tool calls in the middle of it, instead of restarting part-way through.
- Stop a working coworker from Telegram with
/stop, keeping the partial reply in both Telegram and the desktop conversation. - Markdown tables arrive as readable labelled lines instead of raw pipe characters.
Reliability
- Streaming drafts refresh on a timer, so a reply survives a long tool call instead of vanishing after Telegram's 30-second draft lifetime.
- The first words of a reply appear immediately; only the stream behind them is throttled.
- Replies past Telegram's message limit keep streaming instead of freezing part-way.
- A failed draft update is retried rather than dropping the reply to a plain typing indicator.
- Approval notices and desktop message mirrors no longer clear the reply being written.
Known issue
Telegram's native Stop button on streamed drafts is turned off in this release. Creating a draft that carries it wipes the chat area white on Telegram for iOS and crashes Telegram for macOS 12.9 — both in the can_stop parameter added to the Bot API on 2026-08-24. /stop replaces it until Telegram fixes their clients.
No data migration is required for this release.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.3.1
Coworker replies now appear as they are generated, including work started from Telegram, schedules, and other background entry points.
Highlights
- Stream live responses in open direct and group conversations regardless of where the run started.
- Stream Telegram replies with Telegram's native animated message drafts while preserving the final formatted message.
- Stop generation from Telegram and keep the partial response in both Telegram and the desktop conversation.
Reliability
- Telegram draft updates are throttled and coalesced to stay within platform rate limits.
- Long replies, Markdown formatting, conversation topics, and final-message fallback continue to use the existing durable delivery path.
- Draft failures fall back to normal final delivery without losing the completed response.
No data migration is required for this release.
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.3.0
Your coworkers now reach you on your phone. Connect a Telegram bot and a coworker becomes something you can message from anywhere — it replies in the same conversation, sends you files, and asks for approval with buttons you can tap from the chat. The rest of the release is quality-of-life work on the desktop app.
Highlights
Telegram integration
Connect a bot token in Settings → Integrations and pair your chat with a deep link or a pairing code. The bot is private to the one chat you pair — messages from anywhere else are refused. Message a coworker from your phone and it answers in the same conversation you see on the desktop; replies mirror out automatically with markdown rendered as Telegram formatting and long answers split across messages.
Approvals from the chat
When a coworker needs permission for a tool call, the approval arrives in Telegram with Approve, Reject, and Always allow buttons. Tapping one decides it on the desktop, and the notice retires itself once the approval has been answered.
Files both ways
Send photos and documents to a coworker from Telegram (up to 20 MB) and it can send them back — photos up to 10 MB, any other file up to 50 MB. The new telegram.send tool and its bundled telegram-messaging skill let a coworker deliver a report or a finished file to you on purpose, so a scheduled task can hand you its results on your phone instead of leaving them on the desktop.
A topic per conversation
With Threaded Mode enabled on your bot, each Telegram topic maps to its own desktop conversation and replies thread back to the right one. New topics create a conversation titled from the first message. The bot can also be moved to a different coworker without re-pairing — the chat stays put and both sides are told about the handover.
PowerPoint export
documents.export now writes .pptx alongside PDF, DOCX, XLSX, and CSV. Structured markdown becomes a 16:9 deck with a cover slide, bullet slides, and tables.
Improvements
- Coworkers get a user-chosen avatar, picked when you create one and shown everywhere the coworker appears
- A model picker chip sits under the chat composer, opening the same provider, search, and pricing picker as the quick switcher
- Copy buttons on messages, with confirmation feedback
- Conversations can be archived, with a confirmation step before it happens
- The conversation side rail can be hidden to give the transcript the full window
- Dispatching a task from the home composer opens the conversation it created, rather than the coworker's last one
Fixes
- Switching conversations no longer shows the previous transcript while the new one loads
- The conversation history menu closes on an outside click instead of staying open over the page
Upgrading
Three SQLite migrations run automatically on first launch, adding Telegram integration storage, conversation archiving, and coworker avatars. Existing conversations, coworkers, and workspaces are preserved — but these builds are unsigned, so back up anything you can't lose before upgrading.
Full changelog: v0.2.0...v0.3.0
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-0.3.0-mac-arm64.dmg |
| macOS (Intel) | Coworker-0.3.0-mac-x64.dmg |
| Windows (x64) | Coworker-0.3.0-win-x64-setup.exe |
| Windows (Arm) | Coworker-0.3.0-win-arm64-setup.exe |
| Linux (AppImage) | Coworker-0.3.0-linux-x86_64.AppImage |
| Linux (Debian/Ubuntu) | Coworker-0.3.0-linux-amd64.deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.2.0
Coworkers can now read the folders you point them at, talk to each other in group channels, and run against any number of named OpenAI-compatible endpoints. The home screen was rebuilt as a team room you can dispatch work from.
Highlights
Read-only shared folder access
Grant a coworker read access to specific folders on your machine through folders.list and folders.read, configured per coworker with a native picker. Traversal, symlink escapes, and app-data paths are rejected, and no write tool can address a granted folder — reads only, by construction. PDF, Word DOCX, and Excel XLSX files have their text extracted on read, and a bundled folder-access skill teaches the workflow.
Group channels and turn-based discussions
Channels with two or more coworkers become turn-based discussions: each one sees the latest shared transcript, decides whether it has something to add, and passes quietly when it doesn't. Discussions end on their own once everyone passes, with a safety check-in on unusually long ones. Reply mid-discussion to interject, or stop it outright. @mentions narrow a request to specific members.
Multiple named OpenAI-compatible endpoints
Register any number of OpenAI-compatible servers — each with its own name, base URL, and encrypted key — as first-class providers instead of a single generic slot. Endpoint names replace the generic provider label everywhere a model is shown. Removal is blocked while a coworker still uses the endpoint, and clears a global default pointing at it. An existing openai-compatible credential is surfaced on startup as a manageable legacy entry.
The team room
Home is now a floor overview: a stats strip (coworkers, running now, waiting decisions, last activity), coworker cards, an approvals strip, and an activity log rail. A "Put someone to work" composer dispatches a task to any coworker, reachable with Cmd/Ctrl+K.
Improvements
- Conversation roster is resizable and the files/approvals rail can be hidden
- Model badges stack the model name over its provider, left-aligned across cards, home, and the roster
- Provider and default-model selection merged into one credential form, with links out of no-model states
- App version shown in the sidebar; diagnostics unified into a single ZIP export that embeds the provider report
- Folder grants save before a model is chosen
- Bundled skills now ship inside packaged builds
Fixes
- Modals render fullscreen through a body portal, so page transforms no longer clip backdrops
- The frameless window is draggable from a top strip across the main content, not just the sidebar
- A conversation's transcript reloads when background runs persist new messages, so composer and scheduled replies appear without streaming
- Native provider
<select>replaced with a styled dropdown that lists named endpoints alongside built-in providers
Upgrading
Five SQLite migrations run automatically on first launch. Existing conversations, coworkers, and workspaces are preserved — but these builds are unsigned, so back up anything you can't lose before upgrading.
Full changelog: v0.1.1...v0.2.0
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-0.2.0-mac-arm64.dmg |
| macOS (Intel) | Coworker-0.2.0-mac-x64.dmg |
| Windows | Coworker-0.2.0-win-x64-setup.exe (or arm64) |
| Linux | Coworker-0.2.0-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
Coworker v0.1.1
Downloads
| Platform | File |
|---|---|
| macOS (Apple silicon) | Coworker-*-mac-arm64.dmg |
| macOS (Intel) | Coworker-*-mac-x64.dmg |
| Windows | Coworker-*-win-x64-setup.exe (or arm64) |
| Linux | Coworker-*-linux-x64.AppImage / .deb |
These builds are not code-signed.
- macOS: the first launch is blocked by Gatekeeper. Right-click the app and
choose Open, or runxattr -dr com.apple.quarantine "/Applications/Coworker.app". - Windows: SmartScreen shows "Windows protected your PC" — choose
More info → Run anyway. - Linux:
chmod +x Coworker-*.AppImagebefore running it.
What's Changed
Full Changelog: v0.1.0...v0.1.1