Install
openclaw skills install slack-extendedUpload files, manage canvases, and manage bookmarks in Slack. Use when you need to share files, create/edit canvases, or add/organize link bookmarks in Slack channels. Complements the core slack skill which handles messages, reactions, and pins.
openclaw skills install slack-extendedExtends the core slack skill with file uploads and canvas management. Uses Python scripts that call the Slack API directly with the bot token from ~/.openclaw/openclaw.json.
Requires OAuth scopes: files:write, canvases:write (add at api.slack.com if missing).
Upload a local file to a Slack channel:
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_file_upload.py \
--channel C123ABC \
--file /path/to/file.png \
--title "Q4 Report" \
--message "Here's the latest report"
Arguments:
--channel (required): Channel ID to share the file in--file (required): Path to the local file--title: Display title (defaults to filename)--message: Comment posted with the fileReturns JSON with file_id, permalink, and channel.
Common patterns:
--file /tmp/chart.png --title "Performance Chart"--file ./notes.txt --title "Meeting Notes"--message "Backtest results for GEM v2" --file results.csvManage Slack canvases (collaborative documents):
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_canvas.py create \
--title "Sprint Notes" \
--markdown "## Goals\n- Ship feature X\n- Fix bug Y"
Append content:
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_canvas.py edit \
--canvas-id F07ABCD1234 \
--operation insert_at_end \
--markdown "## Update\nNew section added"
Replace a section:
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_canvas.py edit \
--canvas-id F07ABCD1234 \
--section-id temp:C:abc123 \
--operation replace \
--markdown "## Revised Section\nUpdated content"
Operations: insert_at_start, insert_at_end, insert_after, replace, delete
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_canvas.py sections \
--canvas-id F07ABCD1234
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_canvas.py delete \
--canvas-id F07ABCD1234
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_canvas.py access \
--canvas-id F07ABCD1234 \
--channel C123ABC \
--level edit
Canvases support: bold, italic, strikethrough, headings (h1-h3), bulleted/ordered lists, checklists, code blocks, code spans, links, tables (max 300 cells), blockquotes, dividers, emojis.
Mentions:  for users,  for channels.
Manage link bookmarks in the bookmark bar at the top of Slack channels.
Limitation: Slack API only supports link bookmarks. Folders are a UI-only feature and cannot be created via the API.
Requires OAuth scopes: bookmarks:write, bookmarks:read
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_bookmark.py list \
--channel C123ABC
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_bookmark.py add \
--channel C123ABC \
--title "Design Docs" \
--link "https://example.com" \
--emoji ":link:"
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_bookmark.py edit \
--channel C123ABC \
--bookmark-id Bk123 \
--title "New Title"
python3 /mnt/openclaw/skills/slack-extended/scripts/slack_bookmark.py remove \
--channel C123ABC \
--bookmark-id Bk123
missing_scope error: Add the required scope (files:write or canvases:write) at api.slack.com, then reinstall the app to the workspace.channel_not_found: Use the channel ID (e.g. C07ABC123), not the channel name.not_authed: Bot token may have changed. Check ~/.openclaw/openclaw.json.section_id values.missing_scope for bookmarks: Add bookmarks:write and bookmarks:read at api.slack.com, then reinstall.