mirror of
https://github.com/andrewyng/openworker.git
synced 2026-09-03 04:49:26 +00:00
README: Minor updates.
This commit is contained in:
@@ -4,9 +4,7 @@
|
||||
|
||||
> **Beta** - OpenWorker is in open beta: fully usable, updates itself, and we're actively polishing rough edges. [Issues](https://github.com/andrewyng/openworker/issues) welcome.
|
||||
|
||||
OpenWorker is an open-source AI coworker that delivers **finished work**, not just chat: a polished document, a Slack reply with the numbers, an updated calendar, a triaged inbox.
|
||||
|
||||
Ask it to prepare a customer brief, untangle your week, draft a report, or check where a release stands across Jira and GitHub. It works across your files and everyday tools, produces the deliverable, and **checks in before doing anything consequential**.
|
||||
**AI that gets your everyday tasks done.** OpenWorker is an open-source AI coworker that lives on your desktop and delivers **finished work**, not just chat: a polished document, a Slack reply with the numbers, an updated calendar, a triaged inbox.
|
||||
|
||||
It runs on your machine and doesn't lock you into any model: bring your own API key for OpenAI, Anthropic, Google, or an open-weight provider, or run fully local with Ollama. Your data leaves your machine only through the model and integrations *you* choose.
|
||||
|
||||
@@ -14,32 +12,23 @@ It runs on your machine and doesn't lock you into any model: bring your own API
|
||||
|
||||
## Download
|
||||
|
||||
[**⬇ macOS (Apple Silicon)**](https://github.com/andrewyng/openworker/releases/latest/download/OpenWorker-macos-arm64.dmg)
|
||||
[**⬇ macOS (Apple Silicon)**](https://download.openworker.com/mac)
|
||||
<sub>macOS 12+ · signed & notarized · auto-updates</sub>
|
||||
|
||||
[**⬇ Windows 10/11 (x64)**](https://github.com/andrewyng/openworker/releases/latest/download/OpenWorker-windows-setup.exe)
|
||||
[**⬇ Windows 10/11 (x64)**](https://download.openworker.com/windows)
|
||||
<sub>builds are not yet code-signed, so SmartScreen will warn; signing is in progress</sub>
|
||||
|
||||
Open the app, add a model key (or point it at Ollama), and ask for something real.
|
||||
|
||||
## What it can do
|
||||
|
||||
- **Produce real deliverables** - documents, spreadsheets, reports, and web pages land as files you can open and share, not text in a chat window.
|
||||
- **Work from Slack** - mention `@OpenWorker` in a channel; a session opens on your desktop, the work happens with your tools, and the answer comes back as a thread reply.
|
||||
- **Use your everyday tools** - 25+ integrations including GitHub, Slack, Jira, Notion, Linear, HubSpot, Outlook, monday.com, Gmail, and Google Calendar, plus your **terminal and local files**. Remote MCP servers plug in too, with per-tool control.
|
||||
- **Run on a schedule** - automations for recurring work: a morning brief, a weekly report, a standing watch over a channel. Runs land in the app with full transcripts.
|
||||
- **Ask before acting** - writes, sends, and shell commands are approval-gated. Unattended runs park their asks in an inbox instead of acting on their own.
|
||||
|
||||
## Bring your own model
|
||||
|
||||
Model access is yours: pick a provider, paste your key, switch anytime. Supported out of the box:
|
||||
|
||||
**OpenAI · Anthropic · Google Gemini · GLM (Z.ai) · DeepSeek · Kimi (Moonshot) · Qwen · MiniMax · Mistral · Grok (xAI)** - plus open-weight models via **Together** and **Fireworks**, and fully local models via **Ollama**.
|
||||
|
||||
A curated model list marks what we've verified for tool-calling work; any model string works at your own risk. Keys are stored locally and are only ever sent to the vendor they belong to.
|
||||
|
||||
## How it works
|
||||
|
||||
1. Tell OpenWorker the outcome you want - "prepare a customer brief," "untangle my calendar," "draft a report," "check where the release stands across Jira and GitHub."
|
||||
2. It breaks the task into steps and works across your desktop, files, and connected apps.
|
||||
3. Before anything consequential - sending a message, changing a calendar, running a command - it checks in and you approve or redirect.
|
||||
4. You get the finished deliverable, not a to-do list.
|
||||
|
||||
Under the hood:
|
||||
|
||||
```text
|
||||
┌────────────────────────────────────────────────┐
|
||||
│ OpenWorker desktop app │ native shell + GUI
|
||||
@@ -51,23 +40,62 @@ A curated model list marks what we've verified for tool-calling work; any model
|
||||
└───────────────┴────────────────┴───────────────┘
|
||||
```
|
||||
|
||||
Everything lives on your machine: the agent loop, your conversations, connector tokens, and model keys. A small cloud service exists only to make connector OAuth one-click; the tokens it brokers are handed straight back to your device and stored locally. No account is required: every connector also accepts manually-created credentials, and the app is fully usable signed out.
|
||||
## What it can do
|
||||
|
||||
- **Produce real deliverables** - documents, spreadsheets, reports, and web pages land as files you can open and share.
|
||||
- **Work from Slack** - mention `@OpenWorker` in a channel; a session opens on your desktop, the work happens with your tools, and the answer comes back as a thread reply.
|
||||
- **Use your everyday tools** - 25+ integrations including GitHub, Slack, Jira, Notion, Linear, HubSpot, Outlook, monday.com, Gmail, and Google Calendar, plus your **terminal and local files**. Any tool reachable over [MCP](https://modelcontextprotocol.io/) plugs in too, with per-tool control.
|
||||
- **Run on a schedule** - automations for recurring work: a morning brief, a weekly report, a standing watch over a channel. Runs land in the app with full transcripts.
|
||||
- **Ask before acting** - writes, sends, and shell commands are approval-gated. Unattended runs park their asks in an inbox instead of acting on their own.
|
||||
|
||||
## Bring your own model
|
||||
|
||||
Model access is yours: pick a provider, paste your key, switch anytime. Supported out of the box:
|
||||
|
||||
**OpenAI · Anthropic · Google Gemini · Inkling (Thinking Machines) · GLM (Z.ai) · DeepSeek · Kimi (Moonshot) · Qwen · MiniMax · Mistral · Grok (xAI)** - plus open-weight models via **Together** and **Fireworks**, and fully local models via **Ollama**.
|
||||
|
||||
A curated model list marks what we've verified for tool-calling work. Adding any model string works at your own risk.
|
||||
|
||||
## Privacy
|
||||
|
||||
OpenWorker is local-first. Everything lives on your machine: the agent loop, your conversations, connector tokens, and model keys - all in the app's local secret store. The only cloud piece is a small service that brokers OAuth handshakes for connectors. You can always use the App without signing-in - use the connectors via manually-created credentials/API-keys.
|
||||
|
||||
## Run from source
|
||||
|
||||
Prerequisites: Python 3.10+, Node 20+, and (for the desktop shell) the Rust toolchain via [rustup](https://rustup.rs/).
|
||||
|
||||
```shell
|
||||
git clone https://github.com/andrewyng/openworker
|
||||
cd openworker
|
||||
bash packaging/setup_dev_env.sh # creates .venv and installs the package
|
||||
|
||||
# terminal 1 - the local agent server
|
||||
# 1. One-time bootstrap - creates the Python venv at .venv
|
||||
# (on Windows, run from Git Bash or WSL)
|
||||
bash packaging/setup_dev_env.sh
|
||||
|
||||
# 2. Start the local agent server
|
||||
.venv/bin/openworker-server --cwd ~/some/project --port 8765
|
||||
# (Windows: .venv\Scripts\openworker-server.exe)
|
||||
|
||||
# terminal 2 - the GUI (browser dev mode)
|
||||
cd surfaces/gui && npm install && npm run dev
|
||||
# 3. In a second terminal, start the UI
|
||||
cd surfaces/gui
|
||||
npm install
|
||||
npm run dev # browser UI on the Vite dev port
|
||||
```
|
||||
|
||||
Tests: `.venv/bin/pytest` (server), `npm test` and `npm run e2e` in `surfaces/gui` (GUI unit + hermetic end-to-end). Desktop bundles are built with `packaging/build_dmg.sh` / `packaging/build_windows.ps1`. Design notes and specs live in [`docs/`](docs/).
|
||||
To run the full desktop app instead of the browser UI, replace step 3 with `npm run tauri dev` (from `surfaces/gui/`) - the Tauri shell launches the window and supervises the server itself.
|
||||
|
||||
Tests: `.venv/bin/pytest` (server), `npm test` and `npm run e2e` in `surfaces/gui` (GUI unit + hermetic end-to-end). Desktop bundles are built with `packaging/build_dmg.sh` / `packaging/build_windows.ps1`.
|
||||
|
||||
## Repository layout
|
||||
|
||||
| Directory | What's in it |
|
||||
|---|---|
|
||||
| `coworker/` | Python backend - agent engine, model providers, connectors, MCP client, memory, automations |
|
||||
| `surfaces/gui/` | Desktop app - React UI + Tauri shell that supervises the server |
|
||||
| `stt/` | Speech-to-text sidecar (Rust) for voice input |
|
||||
| `packaging/` | Installer builds (macOS DMG, Windows), auto-update manifest, dev bootstrap |
|
||||
| `docs/` | Design specs and decision logs |
|
||||
| `tests/` | Backend test suite |
|
||||
|
||||
## Built on aisuite
|
||||
|
||||
@@ -75,6 +103,12 @@ OpenWorker's engine is built on [**aisuite**](https://github.com/andrewyng/aisui
|
||||
|
||||
OpenWorker was originally developed inside the aisuite repository before moving to its own home here; thanks to the aisuite contributors whose work it builds on.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions and bug reports are welcome - open an [issue](https://github.com/andrewyng/openworker/issues) or a pull request. The app updates itself, so fixes reach installs quickly.
|
||||
For any PR, please attach screenshots of what was broken and how it is fixed now. We will shortly add features that you can contribute to.
|
||||
Please note that we are actively developing based off a internal list and goal, so we may not approve PRs that add features that are already under-development or deviates from our vision.
|
||||
|
||||
## License
|
||||
|
||||
MIT - see [LICENSE](LICENSE). Contributions and bug reports are welcome; the app updates itself, so fixes reach installs quickly.
|
||||
MIT - see [LICENSE](LICENSE).
|
||||
|
||||
Reference in New Issue
Block a user