i built openwork, an open-source, local-first system inspired by claude cowork.
it’s a native desktop app that runs on top of opencode (opencode.ai). it’s basically an alternative gui for opencode, which (at least until now) has been more focused on technical folks.
the original seed for openwork was simple: i have a home server, and i wanted my wife and i to be able to run privileged workflows. things like controlling home assistant, or deploying custom web apps (e.g. our customs recipe app recipes.benjaminshafii.com), legal torrents, without living in a terminal.
our initial setup was running the opencode web server directly and sharing credentials to it. that worked, but i found the web ui unreliable and very unfriendly for non-technical users.
the goal with openwork is to bring the kind of workflows i’m used to running in the cli into a gui, while keeping a very deep extensibility mindset. ideally this grows into something closer to an obsidian-style ecosystem, but for agentic work.
some core principles i had in mind:
- open by design: no black boxes, no hosted lock-in. everything runs locally or on your own servers. (models don’t run locally yet, but both opencode and openwork are built with that future in mind.) - hyper extensible: skills are installable modules via a skill/package manager, using the native opencode plugin ecosystem. - non-technical by default: plans, progress, permissions, and artifacts are surfaced in the ui, not buried in logs.
you can already try it: - there’s an unsigned dmg - or you can clone the repo, install deps, and if you already have opencode running it should work right away
it’s very alpha, lots of rough edges. i’d love feedback on what feels the roughest or most confusing.
happy to answer questions.
Have you considered using or integrating with ACP? https://zed.dev/acp
We use it in our desktop app IDE (mediar.ai) and it's pretty good
There's first-class integration of https://github.com/enulus/OpenPackage and we provide a ui to install from a list of skills easily as well as add your own.
Announcements on their own are like whispers.
First obvious stuff like getting the dmg notarized having easier install.
Then after it will be about optimizing onboarding. One of the core goals is to help Susan do 1 small task in under 5 min.
To do that we will need to: - have some prepackaged configs for folks like starter template - ship opencode within the app itself so users don't need to manually install it - and get rid of the technical jargon that is cluttered in the app.