Skip to main content

Channels

Where your team and AI think together, in real time.

Channels are persistent, shared spaces where humans and AI models participate in the same conversation. Unlike standard chats — which are personal and isolated — Channels let multiple users and multiple models interact in a single timeline. Every exchange, human or AI, becomes shared context the whole team can build on.


Why Channels?​

AI as a participant, not a separate tool​

Tag @gpt-4o to draft a plan, then tag @claude to critique it. Your whole team sees both responses in the same timeline with full context. No tab-switching, no copy-pasting between tools.

Persistent shared context​

Every message becomes part of the record. When someone asks a question next week, the AI can draw on everything discussed before. Channels are living knowledge bases, not disposable threads.

Multiple models, one conversation​

Use one model for code review, another for writing, a third for data analysis — all in the same channel. Chain them together for richer answers than any single model could produce.

Real-time collaboration​

Instant updates, emoji reactions, threaded replies, pinned messages, unread indicators, and live presence dots so you always know who's online.


Channel Types​

TypeBest for
Standard (#)Topic-based rooms (#engineering, #marketing-strategy), public or private
GroupTeam-scoped spaces with explicit membership and user-group sync
Direct MessagePrivate 1:1 or small-group conversations with real-time online/offline status

Key Features​

🤖 @model taggingSummon any AI model into the conversation on demand
👥 Shared contextEvery message, human or AI, builds the collective knowledge
🟢 Live presenceOnline indicators on avatars — green dot for active, grey for offline
📌 Pinned channelsPin any channel to float it to the top of the sidebar
🧵 Threads & reactionsKeep discussions organized with replies, pins, and emoji reactions
📎 File sharingDrop images, documents, and code. AI can see and process them
🔒 Access controlPublic, private, group-based, and direct message channels
🧠 AI channel awarenessModels can search and synthesize across channels autonomously
🔔 Unread countsBadge shows unread message count per channel; cleared on visit

The sidebar organizes all your channels into labelled sections — no flat list. Each section can collapse independently.

Sections​

SectionWhat appears here
ChannelsStandard # channels (public and private)
GroupsGroup channels you belong to
Direct Messages1:1 and multi-person DM conversations

The Direct Messages header shows an online count badge (● 3 online) when contacts in that section are active.

Online presence dots​

Every avatar in the sidebar reflects real-time presence:

  • 1:1 DM — a pulsing green dot on the contact's avatar when they are online, grey when offline
  • Group DM — each of the two stacked avatars carries its own presence dot
  • Group channel — a small ● N count next to the channel name shows how many members are currently online

Presence updates instantly via a dedicated Socket.IO event — no polling.

Pinning channels​

Hover any channel item and click the pin icon to pin it. Pinned channels float to the top of their section, above unpinned entries. Unpin the same way. The pin state is persisted per-user.

Sorting​

Within each section, channels sort by:

  1. Pinned channels first
  2. Most recent activity (last_message_at) descending

Creating a Channel​

Beta Feature

Channels is currently in Beta and must be enabled by an administrator.

  1. Navigate to Admin Panel → Settings → General
  2. Toggle Channels (Beta) on and save
  3. Channels appear in the sidebar — click (+) to open the creation dialog

Creation options:

FieldDescription
NameIdentifies the channel in the sidebar and #channel-name mentions
DescriptionShort summary shown in channel info and search results
AccessPublic (any user), Private (invite-only), or group-synced

Channel creation is restricted to administrators by default. Granular permissions can be configured per-group via environment variables.


How It Works​

Talking to AI​

Channels are passive by default — AI doesn't jump into every conversation. When you need input from a model, tag it:

You: @gpt-4o Here's our Q3 revenue data. What trends stand out?

(GPT-4o analyzes the data and responds with key insights)

You: @claude Do you agree with that analysis? What's missing?

This means your team can discuss freely without AI interrupting, and call on exactly the right model when needed.

Full chat-completion pipeline​

Mentioning a model in a channel runs through the same pipeline as a standard chat. The reply is streamed in real time as the model generates it, with full access to its configured capabilities:

CapabilityWhat it enables in a channel
Native and default function callingTool calls resolve and execute mid-message
Built-in toolsWeb search, image generation, code interpreter, calendar
User tools and MCP toolsWhatever the model is configured to call, it can call
FiltersInlet/outlet/stream filters apply just like in chats
Knowledge (RAG)Knowledge bases attached to the model are queried and injected
Attached documentsImages and non-image files (PDF, DOCX, etc.) uploaded in the thread are forwarded into the model's context

In other words, a channel-summoned model is a fully-equipped agent — not a one-shot completion.

Document attachments in channels (v1.0.0+)

Before v1.0.0, tagging a model in a channel only forwarded images from the thread. As of v1.0.0, uploaded PDFs, DOCX, and other non-image files are forwarded identically to a direct chat.

Tagging people and linking channels​

  • @username — notifies that teammate
  • #channel-name — creates a clickable cross-reference to another channel

Typing indicators​

While composing a message, other participants see Alice is typing… in real time. Typing state clears automatically after 5 seconds of inactivity.


Message Interactions​

Hover any message to reveal its action bar:

ActionDescription
Emoji reactionReact with any emoji; reactions show grouped totals
Reply inlineQuotes the message and pre-fills the input
ThreadOpens a side panel threaded view for deep discussions
PinMarks the message as pinned; visible in channel info
EditEdit your own messages; content updates in real time for all viewers
DeleteRemove your own messages; rolls back instantly if the server rejects it

Edits and deletes are optimistic — the UI updates immediately and reverts automatically if the API call fails.


AI Channel Awareness​

With native function calling enabled, models can navigate your channels autonomously:

  • Search channels by name or description
  • Search messages across all accessible channels
  • Read threads to understand full discussion context

You: What was decided in #dev-team about the migration timeline?

(The AI searches the channel, reads the relevant thread, and gives you a synthesized answer — all without leaving your current chat.)

This removes the need to manually bridge information between private chats and shared channels.

Forward to Channel

The Forward to Channel action adds a button to each assistant message that posts the reply (or a selection) into a channel of your choice. Useful for promoting good answers from private chats into team-visible spaces without copy-paste.


Channel Info​

Click the channel name or the info icon in the header to open Channel Info. This panel shows:

  • All current members with their avatars and online status
  • Pinned messages
  • Ability to add or remove members (group channels, if you are the manager)

Access Control​

SettingBehavior
Public readAny authenticated user can view messages
PrivateOnly explicitly added members can view or post
Group syncMembership mirrors a user group; adding/removing group members automatically updates channel access
Write accessSeparate from read — a channel can be read-only for some members

Administrators always have full access to all channels regardless of access grants.


Use Cases​

Team knowledge hub (#engineering)​

Your team discusses architecture decisions throughout the week. Someone tags @claude to evaluate tradeoffs. The AI's analysis becomes part of the permanent record: searchable, referenceable, and available to every future conversation in that channel.

Multi-model war room (#incident-response)​

Paste logs and error traces. Tag @gpt-4o to analyze the stack trace. Tag @deepseek-coder to suggest a fix. Tag @claude to draft the postmortem. Three models, one shared context, one timeline.

Project strategy (#product-launch)​

Twenty messages of human brainstorming. Then: @gpt-4o Read the conversation above and create a prioritized action plan with owners and deadlines. The AI synthesizes everything discussed into a structured deliverable.

Cross-team DMs​

Use 1:1 Direct Messages for private conversation with a colleague. Both parties see the live online indicator so you know if someone is around before you message. Group DMs bring up to several people into a single private thread.



API​

All channel endpoints live under /api/v1/channels. Every request requires a valid Authorization: Bearer <token> header.

Channels​

MethodPathDescription
GET/api/v1/channels/List all channels the user has access to (includes unread counts, member IDs, pin state)
POST/api/v1/channels/createCreate a channel (name, description, type, is_private, access_grants, user_ids, group_ids)
GET/api/v1/channels/{id}Get a channel with full member and access-grant detail
POST/api/v1/channels/{id}/updateUpdate channel name, description, or access grants (owner or admin)
DELETE/api/v1/channels/{id}/deleteDelete a channel (owner or admin)
POST/api/v1/channels/{id}/pinPin or unpin the channel for the calling user ({"is_pinned": true})
GET/api/v1/channels/users/{user_id}Get or create the 1:1 DM channel with a specific user

Members​

MethodPathDescription
GET/api/v1/channels/{id}/membersList all members of a channel
POST/api/v1/channels/{id}/members/activeToggle DM visibility — deactivate to hide a DM from the sidebar
POST/api/v1/channels/{id}/update/members/addAdd users or groups to a channel
POST/api/v1/channels/{id}/update/members/removeRemove users or groups from a channel

Messages​

MethodPathDescription
GET/api/v1/channels/{id}/messagesPaginated message list (skip, limit)
POST/api/v1/channels/{id}/messages/postSend a message (content, data, reply_to_id)
GET/api/v1/channels/{id}/messages/pinnedAll pinned messages in the channel
GET/api/v1/channels/{id}/messages/{message_id}Get a single message
POST/api/v1/channels/{id}/messages/{message_id}/updateEdit message content (own messages)
DELETE/api/v1/channels/{id}/messages/{message_id}/deleteDelete a message
POST/api/v1/channels/{id}/messages/{message_id}/pinPin or unpin a message
GET/api/v1/channels/{id}/messages/{message_id}/threadFetch all replies in a thread
POST/api/v1/channels/{id}/messages/{message_id}/reactions/addAdd an emoji reaction ({"name": "👍"})
POST/api/v1/channels/{id}/messages/{message_id}/reactions/removeRemove an emoji reaction

Webhooks​

MethodPathDescription
GET/api/v1/channels/{id}/webhooksList webhooks for a channel
POST/api/v1/channels/{id}/webhooks/createCreate an inbound webhook
POST/api/v1/channels/{id}/webhooks/{webhook_id}/updateUpdate a webhook
DELETE/api/v1/channels/{id}/webhooks/{webhook_id}/deleteDelete a webhook
POST/api/v1/channels/webhooks/{webhook_id}/{token}Inbound webhook endpoint — post a message via webhook URL

Privacy

Public channels are visible to all users on your instance. Do not share API keys, passwords, or sensitive data in public channels.

Hrida.ai is proprietary software of Zlabs Innovation. See the license for terms. © 2026 Zlabs Innovation.