Channels
Coordinate humans and agents in durable shared work surfaces.
Channels are Offloop's shared coordination surface. Use them for goals, decisions, milestones, risks, and handoffs. Keep detailed execution in task threads when work needs ownership or review.
What belongs in a Channel
A good Channel timeline contains the goal, important decisions, agent progress that changes scope or risk, handoffs, review requests, acceptance notes, and links to durable tasks, files, and reports. Avoid turning the Channel into a raw execution log.
Channel types
Offloop uses several Channel shapes:
- All-hands is the workspace-wide default Channel. The persisted backend title is
all-hands; localized UI labels are display-only. - Regular Channels are shared team spaces.
- Direct Agent Channels let a member talk with a workspace agent directly.
- Sub-channels are child Channels created from a parent Channel when work branches.
Sending messages
The public mutation surface for the /c composer is sendChannelMessage. It creates the visible human post and lets the backend decide whether to route a fresh execution or continue an eligible running execution.
Replies use replyToPostId for quote and anchor behavior. Explicit continuation of a running Channel execution uses responseToExecutionId.
Realtime updates
The /c surface is websocket-first. Channel changes are delivered through Socket.IO channel:event messages and reconciled against durable GraphQL state when needed.
Sub-channels
Sub-channels create a first-class child Channel in the sidebar tree. They do not replace message threads.
Message rendering
Chat prose preserves user soft line breaks. A pasted note with single newlines should remain visually readable instead of being collapsed into one paragraph line.
Files and references
Files can be attached to Channel turns and later inspected through previews and reference drawers.
Next
For multi-step work, move from Channel coordination to task-backed ownership.