Skip to content

slck: canvas support (create, edit, channel canvases) #116

@rianjs

Description

@rianjs

Feature Request

There's no way to create or manage Slack Canvases via slck. Canvases are Slack's native rich-document format and accept markdown content directly — making them ideal for posting formatted reports, runbooks, and summaries from the CLI.

Current Behavior

No canvas command exists. The closest alternative is Block Kit (--blocks), which requires JSON and uses Slack's mrkdwn flavor rather than standard markdown.

Proposed Solution

Add a slck canvas command group:

# Create a standalone canvas
slck canvas create --title "Sprint Review" --file report.md
slck canvas create --title "Sprint Review" --text "# Heading\n\nContent here"
echo "# Report" | slck canvas create --title "Report" --stdin

# Create a channel canvas (pinned to channel tab)
slck canvas create --channel C1234567890 --title "Runbook" --file runbook.md

# Edit an existing canvas
slck canvas edit <canvas-id> --file updated.md

# Delete a canvas
slck canvas delete <canvas-id>

The --file flag should read a markdown file and pass it as the document_content payload.

API Reference

Slack's Canvas API accepts markdown natively via the document_content object:

{
  "type": "markdown",
  "markdown": "# Heading\n\n**Bold** and *italic* content..."
}

Supported formatting: headings (h1-h3), bold, italic, strikethrough, bulleted/ordered lists, checklists, code blocks/spans, markdown tables, dividers, links, @mentions, emoji.

Operation Endpoint
Create standalone canvas canvases.create
Create channel canvas conversations.canvases.create
Edit canvas canvases.edit
Delete canvas canvases.delete

Docs:

Version

slck version 0.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions