Skip to content

Roadmap ​

Recently completed ​

  • Live auto-refresh — channel files reload periodically while you browse, and DMs arriving in existing chats surface the unread badge without a restart.
  • Mobile mode — responsive single-panel layout for narrow terminals (Ctrl+B, auto below 120 cols), with unread badges and popups rendered over the panel.
  • Activity filters — All / Unread / @Mentions / Tags.
  • Cursor-mode lock — workspace/panel switching (1–4, Tab) is disabled while the message cursor is active.
  • Stale browser handling — leftover Firefox processes from interrupted token renewals are force-killed and their profile locks cleared on next start.
  • Versioning & update check — version injection via the Makefile (make build VERSION=...), --version flag, and a startup check that flags newer GitHub releases in the footer.

Planned Features ​

  • Typing indicators — show "typing..." when composing
  • Emoji picker — full picker for messages (currently implemented for reactions)
  • Graceful logout — sign out of the Teams session from the TUI

Known API Limitations ​

  • "Offline" Presence: Graph API explicitly prohibits setting this status.
  • Presence Delays: When a user presence changes in Microsoft Graph, because the Teams ecosystem uses poll mode, it takes a few minutes to update the presence status globally. This is an official Graph API limitation. (LazyTeams masks this locally for your own status changes using optimistic UI).
  • ChatSvc API: Undocumented/private. Microsoft may break it at any time.

Platform ​

  • Playwright/Firefox dependency for auth helper — first login requires a visible browser window (runs headless for subsequent token renewals).
  • Clickable links require terminal with OSC 8 support.