A native macOS wrapper for g.tanka.ai — the Tanka work app as a proper desktop client with menu bar presence, dock badge, and system notifications. Forked from tw93/Pake.
Homebrew install: brew install --cask yousiki/tanka/tanka.
Internal project, macOS only.
brew install --cask yousiki/tanka/tankaBecause we don't pay for an Apple Developer ID, macOS will refuse to launch the app until you strip the quarantine xattr. The cask prints this instruction in its caveats; run it yourself after install:
xattr -dr com.apple.quarantine /Applications/Tanka.appDownload the latest .dmg from Releases,
drag Tanka.app to /Applications, then:
xattr -dr com.apple.quarantine /Applications/Tanka.app- Loads
https://g.tanka.ai/in a native WKWebView. Login persists. - Red-X hides the window instead of quitting; the app stays alive in the menu bar and continues to receive notifications.
- System notifications for new messages (bridged from the site's
NotificationAPI intoUserNotifications). - Dock badge with unread count; menu bar tray icon changes when there's unread activity.
- Click the menu bar icon to toggle the window.
Cmd+Qor the tray menu →Quitactually quits.
Requires:
- macOS 13+ (Ventura) to build with current Xcode.
The shipped
.appruns on macOS 12+ (Monterey), which is what the Homebrew cask'sdepends_on macosfloor declares. - Bun ≥ 1.1
- Rust toolchain (stable;
rust-toolchain.tomlpins the minimum) - Xcode command line tools
bun install
bun run tauri buildOutput: src-tauri/target/release/bundle/dmg/Tanka_*.dmg.
For a quicker local-dev build (unbundled, with devtools):
bun run tauri build --debug --no-bundle
open src-tauri/target/debug/pake # the binary is still named "pake"-
Bump
versionin bothsrc-tauri/tauri.conf.jsonandpackage.json. -
Commit and push.
-
git tag v0.x.y && git push --tags. -
GitHub Actions (
.github/workflows/release.yml) builds arm64 + x86_64 DMGs and publishes a GitHub Release. -
The cask in
yousiki/homebrew-tankaupdates itself. The release workflow renderstanka.rbfromhomebrew/tanka.rbwith the real per-arch sha256 values, attaches it to the GitHub Release, and — if theHOMEBREW_TAP_TOKENsecret is configured — pushes it to the tap repo asCasks/tanka.rbwith a commit message of the tag name. If the token is absent the step is skipped; the GitHub Release itself still succeeds and the tap can be updated by hand by downloading the release'stanka.rbasset.To enable the auto-update, create a fine-grained PAT with
Contents: read and writescoped toyousiki/homebrew-tankaonly, then add it as theHOMEBREW_TAP_TOKENsecret onyousiki/tanka.
git fetch upstream
git log upstream/main ^main --oneline # see what's new
git cherry-pick <sha> # for fixes we wantPrefer cherry-picking specific fixes over merging the whole upstream; our
Tanka customizations are mostly in new files (src-tauri/src/app/unread.rs,
src-tauri/src/inject/custom.js) but touch lib.rs, mod.rs, pake.json,
and a few config files, so a full merge will conflict.
See docs/superpowers/specs/2026-04-19-tanka-macos-app-design.md.
- tw93/Pake — the Tauri-based web-to-desktop scaffold that made this a weekend project rather than a month-long one.
- Tanka AI for the app itself.