Coworker
Coworker is a Windows-first local AI coding app. It is designed like a focused desktop coding assistant: open a project, connect a local model, talk to the agent, inspect files, review diffs, and keep useful context in Brain.
Features
- Codex-style desktop workflow for coding sessions.
- Local model provider setup for Ollama, LM Studio, and custom OpenAI-compatible endpoints.
- Brain with persistent memories and reusable skills.
- Workspace file preview with path confinement.
- Optional Web/PWA access for iPhone and iPad, disabled by default and protected by pairing codes.
- Windows installer produced by Gitea Actions on Ubuntu runners.
Development
Project setup, dependency installation, builds, tests, audits, packaging, and releases run in Gitea Actions. Do not run heavy project commands on the user's local machine.
Runner commands:
npm install
npm run lint
npm run test
npm run build
npm run package:win
Lightweight local validation:
git diff --check
Windows Installer
The first release artifact is:
release/Coworker-Setup-<version>.exe
release/SHA256SUMS.txt
The installer is unsigned until a Windows code-signing certificate is configured. The app can check Gitea releases for updates, but silent auto-update is intentionally deferred until signing exists.
Web/PWA Access
Web access is disabled by default. Enable it in Settings, choose localhost or LAN/Tailscale binding, then create a pairing code. Open the displayed URL on iPhone or iPad and add Coworker to the Home Screen.
Security defaults:
- pairing is required,
- device tokens are stored hashed,
- paired devices can be revoked in a future settings panel,
- workspace access stays inside selected project folders.
Architecture
apps/desktop Electron main process, preload bridge, React renderer
packages/core Agent, Brain, provider, pairing, and shared types
docs release, security, and project handoff documents
.gitea/workflows Gitea CI, installer, security, and release automation
Release
- Ensure the Gitea build workflow succeeds.
- Update
CHANGELOG.md. - Create a
v*tag. - Let the release workflow upload the installer and checksum to Gitea.
Do not create a release from a local build.