Skip to main content

Workspace Chat

Workspace Chat is a real-time team messaging feature built into every Hawkra workspace. It provides a persistent communication channel for team members working in the same workspace, with presence tracking and message history. Chat is designed for coordinating during collaborative security assessments -- quick status updates, sharing findings, or flagging urgent issues -- without needing to switch to an external messaging tool.

Workspace Chat panel

How It Works

Chat uses real-time WebSocket connections scoped to each workspace. Each workspace has its own independent chat history, and you only see messages from members of the same workspace. A connection indicator shows your current status (green for connected, yellow for connecting, red for disconnected). Hawkra automatically attempts to reconnect if the connection drops.

Accessing Chat

Chat is available in two forms within a workspace:

Floating Chat Widget

A circular chat button is fixed to the bottom-right corner of every workspace page. Click it to open a floating chat window that overlays the current page. This lets you communicate without navigating away from your work.

The floating chat button includes:

  • Connection indicator -- A small colored dot (green, yellow, or red) showing the current connection status
  • Unread badge -- A red counter showing the number of unread messages received while the chat window is closed

Floating chat button with unread badge

Full Chat Panel

The chat panel can also be displayed as a dedicated section within workspace layouts, providing a larger view of the conversation integrated directly into the workspace interface.

Presence Tracking

The chat header displays the number of workspace members currently online. Below the header, an online users bar shows the username of each connected member with a green status dot. Your own name is highlighted and labeled "(you)."

When a member connects or disconnects, the presence list updates in real time via user_joined and user_left WebSocket events. The initial presence list is sent as an authoritative presence message when you first connect.

Sending Messages

Type your message in the input field at the bottom of the chat panel and press Enter or click Send. Messages can be up to 10,000 characters long. The input field is disabled while the connection is being established or is disconnected, with placeholder text indicating the current state ("Connecting..." or "Type a message...").

Messages are delivered instantly to all connected workspace members via WebSocket. Each message includes the sender's username and a timestamp.

Message History

Chat messages are persisted server-side and loaded when you open the chat panel. The initial load retrieves the most recent 50 messages. Messages are displayed chronologically with date separators ("Today," "Yesterday," or a formatted date) to provide temporal context.

New messages automatically scroll the view to the bottom so you always see the latest message. Your own messages are displayed on the right side with a blue background, while messages from other members appear on the left with a gray background.

Chat conversation with date separators

Join and Leave Notifications

When workspace members connect or disconnect from the chat, presence updates are broadcast to all connected members. The online users bar updates in real time to reflect who is currently active in the workspace.

Key Actions

ActionHow
Open chatClick the floating chat button in the bottom-right corner of any workspace page
Close chatClick the floating chat button again to collapse the chat window
Send a messageType in the input field and press Enter or click Send
Check who is onlineLook at the online users bar below the chat header
View message historyScroll up in the chat panel to see older messages
Check unread messagesLook at the red badge on the floating chat button
caution

Chat messages are visible to all members of the workspace. Do not share sensitive credentials or secrets through chat. Use Hawkra's encrypted notes feature for storing sensitive information securely.