Docs
Surfaces

Native support chat

Persistent workspace support threads and file sharing on dev.

Native support chat is available on dev only. Production keeps its existing support experience. Messages and files stay in Oxygen; this chat does not send through Plain or Slack.

The corner chat bubble opens your workspace's shared support channel. Create a separate thread for each issue, return to older conversations and attach files. Workspace members share the channel; unrelated workspaces cannot read it. Messages support up to 20,000 characters; each file can be up to 10 MiB.

CLI

Select your dev profile and workspace before running these commands:

oxygen chat channel --json
oxygen chat threads create --subject "Import stopped" --body "The import stopped after row 20." --json
oxygen chat threads get --thread-id THREAD_ID --limit 25 --json
oxygen chat files upload --thread-id THREAD_ID --file ./import.csv --json
oxygen chat threads reply --thread-id THREAD_ID --body "Here is the source file." --attachments FILE_ID --json
oxygen chat files get --thread-id THREAD_ID --file-id FILE_ID --output ./download.csv --json
oxygen chat threads read --thread-id THREAD_ID --json

Upload returns an attachment ID; include that ID in a reply to share the file. chat channel --search "import" finds threads by subject and message text. Downloads require authorization and refuse to overwrite an existing local file. Use the message cursor with --after for new messages or --before for older history. --search searches message text. An --idempotency-key on creation or reply avoids duplicate messages when retrying the same submission.

Dev feedback submitted through the CLI or MCP also appears in native support. Existing feedback inputs remain available. Use the returned native thread ID to continue the discussion with chat threads reply.

MCP

Discover native support through oxygen_capabilities_search, then hydrate the selected schema and use the capability read or call gateway. The tools live in the workspace domain; they do not add tools to the default core list. Reading the channel can initialize it, so use the capability call gateway for oxygen_chat_channel; thread and file reads use the read gateway.

IntentCapability
Read the workspace channeloxygen_chat_channel
Create or read an issueoxygen_chat_thread_create, oxygen_chat_thread_get
Reply or mark readoxygen_chat_thread_reply, oxygen_chat_thread_read
Upload or download a fileoxygen_chat_file_upload, oxygen_chat_file_get

Uploads accept thread_id, name, content_type and data_base64. Replies accept body, optional attachments containing uploaded IDs and optional mentions containing member IDs. Public replies are visible to the customer; visibility: "internal" requires staff and creates a private note.

Staff inbox

Staff use /admin/chat on dev to inspect channels, customer plan and spending, priority, assignment and fixing-agent activity. The matching CLI starts with oxygen chat admin list and oxygen chat admin channel --channel-id CHANNEL_ID. Staff-only MCP capabilities are available through exact capability dispatch.

Each thread tracks support status (todo, snoozed, done), optional waiting for customer, fixing-agent progress and release status independently. Release is none, dev or prod; unavailable verification is shown as stale evidence. Release status does not complete a thread automatically. Use the merged dev squash commit as the fix SHA.

oxygen chat threads update --thread-id THREAD_ID --status todo --assignee-email [email protected] --json
oxygen chat threads update --thread-id THREAD_ID --agent-id session-id --agent-name "Fixing agent" --agent-stage fixing --agent-summary "Repairing the import" --json
oxygen chat threads update --thread-id THREAD_ID --release-fix-sha COMMIT_SHA --release-required-roles web --json
oxygen chat release-check --thread-id THREAD_ID --json

Thread updates also accept --priority, --waiting-for-customer, --no-waiting-for-customer and --snoozed-until. Clear optional assignment, snooze or agent fields with the corresponding --clear-* flag. Agent progress is reported by the fixing workflow; chat does not automatically start an agent.

On this page