Slack Thread Export

WarnAudited by ClawScan on May 18, 2026.

Overview

The skill is upfront about exporting Slack through your logged-in browser, but it needs review because it uses your Slack web session and has unsafe handling of generated browser code and CSV output.

Install only if you are comfortable letting the agent use your logged-in Slack tab to export messages. Keep exports scoped to specific channels, users, and dates; avoid untrusted channel files; and sanitize or carefully handle the resulting CSV/JSONL files before sharing or opening them in spreadsheets.

Findings (4)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

The agent can export Slack messages that your logged-in browser session is allowed to search in the selected workspace and channels.

Why it was flagged

The skill intentionally uses the logged-in Slack web session and web-client token to access Slack search results. This is disclosed and purpose-aligned, but it is high-impact account/session authority.

Skill content
Read `localStorage.localConfig_v2` from the Slack tab to get the active team metadata and xoxc token used by the web client.
Recommendation

Use only with a Slack account and workspace you are authorized to export from; keep the channel/date/user scope narrow and review the output before sharing it.

What this means

A malicious or malformed channel/date/user/team value could alter the JavaScript run in your logged-in Slack page, potentially exposing session-accessible Slack data.

Why it was flagged

User-supplied values from CLI arguments or channel files are interpolated directly into JavaScript source that is executed inside an authenticated Slack tab, with no visible escaping or validation.

Skill content
const channel = '__CHANNEL__'; ... fn = (JS_TEMPLATE .replace('__CHANNEL__', channel) ...); cmd = ['openclaw', 'browser', ... 'evaluate', '--target-id', target_id, '--fn', fn, '--json']
Recommendation

Validate channel, user, team, and date inputs against strict Slack-safe patterns, or serialize values into JavaScript with JSON escaping instead of raw string replacement. Do not run this with untrusted channel files.

What this means

If exported CSV files are opened in spreadsheet software, a Slack message beginning with a formula character could be interpreted as a spreadsheet formula.

Why it was flagged

Slack message text is untrusted multi-user content, and the code writes it directly to CSV without visible formula-prefix neutralization.

Skill content
text = (item.text || '').replace(/\s+/g, ' ').trim(); ... w.writerow({k: row.get(k, '') for k in FIELDS})
Recommendation

Neutralize CSV cells beginning with '=', '+', '-', '@', tab, or carriage return before writing, or warn users to open exports in a safe text/CSV viewer.

What this means

The exported files may persist sensitive Slack conversations and could later be reused by people or agents outside the original context.

Why it was flagged

The skill deliberately creates reusable local archives of Slack message content, which may contain private data and untrusted text.

Skill content
Save both: raw JSONL for audit/debugging; cleaned CSV for the user's actual deliverable
Recommendation

Store exports in a protected location, delete them when no longer needed, and treat exported Slack content as untrusted input if it is later fed to another tool or agent.