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 threads list --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. oxygen chat threads list --search "import" finds retained threads by subject and visible message text. Results include up to 100 recently updated matching threads. Listing works with read-only credentials and does not initialize a channel or mark messages read. If no channel exists, the result has initialized: false, channel: null and an empty threads list. oxygen chat channel opens or initializes the channel and requires write access. 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. Use the read gateway for oxygen_chat_threads_list, thread and file reads. Listing accepts optional search and returns initialized: false if no channel exists. Reading the channel can initialize it, so use the capability call gateway for oxygen_chat_channel.

IntentCapability
List existing workspace threadsoxygen_chat_threads_list
Open or initialize the 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 when no deployment is verified, dev when the fix is verified on dev, or prod when it is verified in production. A stale: true result means verification needs to be refreshed; it is not current proof of deployment. 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