anthropics / anthropics/claude-code
Channels: allow an image param on notifications/claude/channel
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
## Request
`notifications/claude/channel` takes `params: { content: string, meta?: Record }`. A channel plugin that bridges a chat network (Telegram in our case) receives photos with captions, but can only deliver the caption as text; the model then has to call a tool to fetch the file and a second one to read it.
Precedent already in the binary: `notifications/message` (Chrome extension) accepts `params.image: { type: "base64", media_type: image/jpeg|png|gif|webp, data }`. The same optional field on `notifications/claude/channel` would let a channel deliver a photo as a real image block in the same turn as its caption.
## Why it matters
Chat channels are image-heavy (screenshots, photos of whiteboards, receipts). Today every image costs two extra tool calls and a round trip before the model can see it. Channel prompts are also enqueued with `skipAttachments: true`, so an `@path` mention in `content` is not expanded either, which is fine for trust reasons but leaves no path to a native image block.
## Proposal
- `params.image?: { type: "base64", media_type: "image/jpeg" | "image/png" | "image/gif" | "image/webp", data: string }` (or `images?: [...]`), rendered as an image block after the `` text.
- Apply the existing image size limits; ignore or reject unsupported types.
- Document it on the channels reference page next to `content` and `meta`.
Version: Claude Code 2.1.267 (Bun single-file build on Linux).
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the existing notifications/message image handling and the notifications/claude/channel parameter path, then inspect the channels reference page. Done means channel prompts can carry the supported base64 image types alongside content, existing size limits apply, unsupported types are handled, and the reference documents the field.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, documentation
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100