Skip to content

feat: add canvas list and read commands #31

@jiel

Description

@jiel

With AI agents increasingly relying on CLI tools over MCP — especially when MCP requires workspace admin approval — slackcli hits a sweet spot for Slack automation. I've been using it to build agents that monitor conversations and it works great.

The one gap I'm hitting is Canvas. My agents can read messages but can't access documentation that teams put in Canvas. Since slackcli already positions itself as AI-friendly, canvas support feels like a natural next step.

Proposal

Add a canvas command group:

slackcli canvas list [--limit] [--channel] [--json]
slackcli canvas read <canvas-id> [--channel] [--raw] [--json]

The Slack API has no canvases.read method, but canvas content can be retrieved as HTML via files.info + download — this is the established workaround used by agent-slack, slack-explorer-mcp, and others.

The HTML-to-Markdown conversion would be an internal module with zero new dependencies, following the same pattern as mrkdwn.ts.

Context

I'm aware of #7 which was closed for inactivity. My approach differs: zero deps, focused scope (no channel name resolution), and Slack-specific HTML handling (checklists, emoji, mentions, embedded files).

I have a working implementation on my fork — happy to open a PR if this is something you'd welcome.

Metadata

Metadata

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