AI Coworker and assistant with provider freedom: bring your own API keys, choose your model, and chat with files/images in one place.
- Provider freedom first: connect your own provider keys and avoid lock-in.
- Desktop-native workflow: keep your chats, files, and context in one local app.
- Built for practical AI work: switch models, attach files/images, and iterate quickly.
- Bring-your-own-key model access
- Multi-provider model selection
- Chat with file and image attachments
- Local-first data approach for keys and chat context
- Modern Electron + React + TypeScript stack
- Open the latest release.
- Download the installer for your platform.
- Install and launch
Qurt.
npm install
npm run dev# install dependencies
npm install
# run desktop app in development mode
npm run dev
# build app
npm run build
# package distributables
npm run dist
# lint
npm run lint
# tests
npm run testPushing a version tag (e.g. v0.1.0) triggers the release workflow:
- Runs tests
- Builds Windows (Squirrel) and macOS (DMG, ZIP) installers
- Creates a GitHub Release with auto-generated notes and uploads all artifacts
To release:
# 1. Bump version in package.json (e.g. 0.1.0 → 0.1.1)
npm version patch # or minor / major
# 2. Push the version commit and tag
git push && git push --tagsTags like v0.1.0-beta.1 are marked as prereleases. The workflow runs on every push to tags matching v*.
- Build and publish desktop artifacts on release tags (automated via
.github/workflows/build-desktop.yml). - Publish installers/artifacts to GitHub Releases (automated).
- Keep
update-electron-appconfigured in the main process so packaged clients can pull updates from the GitHub release feed.
- Product and architecture docs live in
docs/.
Issues and pull requests are welcome. If you want to help shape the open-source direction, open an issue describing the use case or improvement idea first.
MIT — see LICENSE.

