anthropics / anthropics/claude-code

Channels: allow an image param on notifications/claude/channel

Open
#93,361 0 comments 0 reactions 0 assignees View on GitHub
area:plugins enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.