Repository navigation
Releases: dmytrobsp/ttyak
Release list
ttyak v0.12.0
Notifications, sound, the bell and the tab title now work as one. Each message is judged once — nothing, unread, or for you — and everything follows from that: the bubble and its sound fire together or not at all, the pause, the schedule and your system's do-not-disturb hold back all of it, and the badge always shows the truth.
A click lands where it should
- A click on a notification opens exactly what it showed — the message, or the reply inside its thread — in NORMAL mode, never typing.
- It brings the terminal forward where the desktop allows it: kitty shows the notification itself and focuses its window and tab; elsewhere ttyak raises the window through kitty or WezTerm remote control, Hyprland, sway, niri, KDE, X11, and switches to its tmux pane. On macOS it brings Terminal.app's tab forward. GNOME on Wayland can't be raised from outside (unless the terminal does it, as kitty does).
- A click on a notification from a workspace you've since left switches back to it.
One notification per conversation
- A newer message replaces the older bubble instead of stacking, and the bubble goes away once you've read the conversation — here or on another device.
The tab title shows ○ ttyak - <workspace>, ● when anything is unread, ◆ when a DM or mention is waiting (in any of your workspaces); your terminal's own title comes back when ttyak ends.
Read marks wait for you — a conversation open on screen is no longer marked read while the terminal is in the background.
Sound follows do-not-disturb — where the notification server can play it, the sound goes with the notification; otherwise ttyak asks your notifier (swaync, mako, dunst, GNOME, KDE; Windows' Focus Assist) whether it's quiet first.
The bell (off by default, F6 → Notifications): rings the terminal bell when something is for you and the terminal isn't focused — most terminals mark the window urgent. On some desktops (kitty with Hyprland's focus_on_activate) a bell brings the window forward.
F6 → Notifications is now the one place for all of it, including what this machine supports ("shown by kitty · a click brings the window forward via Hyprland"), the system's do-not-disturb, and Send a test notification.
For scripts and bars
ttyak ctl status(--json,--follow) reads what ttyak shows — read / unread / for you, per workspace, pause, huddle, update — for Waybar, Polybar, tmux or anything else. No message text or names in it.ttyak ctl checkreports what your terminal and system support and prints glyph samples so you can spot missing fonts. The README has a new Requirements section.
Also
- macOS: notifications now show at all on macOS 26 — they come as your terminal's (Terminal's notifications must be allowed in System Settings; while the screen is shared macOS keeps them in the Notification Centre).
- Windows: toasts replace and withdraw per conversation; they show under PowerShell's name.
- Lighter CI: less load on GitHub's runners.
Not tried yet (should work, not checked on a real desktop): clicking a Windows toast and the window coming forward, Focus Assist on screen, the classic console (conhost); a real click on kitty's own notification from another workspace; the Hyprland raise through the system notifier.
Install or update as before: https://ttyak.sh — installed with the script, ttyak offers the update itself (F6 → Updates).
ttyak v0.11.0
Install ttyak your way. One line on Linux and macOS, one on Windows — or your package manager:
curl -fsSL https://ttyak.sh/install.sh | sh # Linux, macOS
irm https://ttyak.sh/install.ps1 | iex # Windows (PowerShell)
brew install dmytrobsp/ttyak/ttyak # Homebrew (macOS, Linux)
scoop bucket add ttyak https://github.com/dmytrobsp/scoop-ttyak # then: scoop install ttyak
winget install dmytrobsp.ttyak # once winget's review lists it
choco install ttyak # once Chocolatey's review lists it.deb and .rpm packages are below, for x86_64 and arm64. Arch: ttyak isn't in the AUR yet — the PKGBUILD is in ttyak-0.11.0-recipes.zip (aur/), build it with makepkg -si. Every way is on https://ttyak.sh.
Updates
- ttyak looks for a new version once a day (a plain request for https://ttyak.sh/latest.json; F6 → Updates turns it off or sets how often) and tells you once: a quiet desktop notice and ⬆ in the status line.
- The update screen says how to update the way you installed it. Installed with the script, ttyak updates itself: the new archive must match both its checksum in the feed and its line in the release's SHA256SUMS, and on macOS the signature of the same developer.
- F6 → Updates shows the version, how it was installed, and Check now.
Uninstall
ttyak uninstallremoves the program, the PATH line the installer added and — unless you keep them — your settings, sign-ins and caches.scoop uninstallandchoco uninstalldelete your ttyak data too; with Homebrew, winget, .deb or .rpm, runttyak purgefirst if you want it gone.
Signed and verifiable
- macOS builds are signed with a Developer ID and notarized by Apple.
- Every file has a GitHub attestation and a line in SHA256SUMS:
gh attestation verify <file> -R dmytrobsp/ttyak --source-ref refs/tags/v0.11.0 --signer-workflow dmytrobsp/ttyak/.github/workflows/release.yml. - Windows builds are not code-signed yet (SmartScreen may warn on the first run). Signed Windows and Linux builds are coming.
Also
- New: Linux on arm64 (zip, .deb, .rpm).
- A message taller than the screen no longer jumps back while you scroll through it; a click never moves the view.
- The site moved to https://ttyak.sh.
ttyak v0.10.0
The app is called ttyak now — "tty" + "yak" (to talk). The program is ttyak (ttyak.exe), settings and sign-ins live in ~/.config/ttyak (macOS ~/Library/Application Support/ttyak, Windows %APPDATA%\ttyak), environment variables are TTYAK_*. Nothing of the old name is read: coming from 0.9, rename your folders to the new names (or sign in again). Landing page: https://dmytrobsp.github.io/ttyak/
Activity, search and Jump to
- Activity's "unread only" (
u) shows exactly what is unread and stays on for the session (leaving the view, switching tabs, coming back from an item); long feeds load more pages by themselves. - Search lists the newest messages first; Jump to puts an exact name match first.
Threads
- Threads in the feed are set apart (a rule with space around it), "You're up to date" shows at once, and edits, deletions and reactions arrive live — so do your own replies from other clients.
- Every message action works in the Threads and Activity views; an edit started there stays there.
Getting around
- Back and forward through where you've been: Ctrl+O / Alt+← and Alt+→ (20 places per workspace) — and the mouse's back/forward buttons. Going back returns to the exact message, also inside a thread.
- g / G and Ctrl+D / Ctrl+U work in the views and on the Keys page.
- The selection stays on the message you picked when new ones arrive or the list scrolls.
Also
- A click on a reaction toggles it.
- The profile card shows a big picture.