cc-connect: Send Images, Files, and Notifications
SkillFiles & storageThis skill should be used when sending images, files, or notifications back to the user via messaging platforms (Discord, Feishu, Telegram, etc.) through cc-connect. TRIGGER when agent generates a plot/chart/screenshot and wants to show the user; agent creates a report/PDF/file the user should receive; agent needs to proactively notify the user (e.g. task completed, alert, reminder); user asks to "send image", "show me the chart", "notify me", "send the file", "send to Telegram", "show plot in Discord".
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the cc-connect: Send Images, Files, and Notifications skill
What this skill tells your AI
The instructions your AI receives, as published by archibate/dotfiles-opencode in optional-skills/cc-connect/SKILL.md and read by ahel’s review.
Purpose
Claude Code cannot send images or files back to users. The terminal output
is text-only. cc-connect bridges this gap by providing a send command
that delivers images, files, and text notifications directly through
messaging platforms (Discord, Feishu, Telegram, etc.).
When to use
- Send generated charts/plots — matplotlib, plotly, seaborn, etc.
- Send screenshots — captured via agent-browser or other tools
- Send reports/files — PDFs, CSVs, logs, any artifact to transfer
- Proactive notifications — task completed, long job done, alerts
- Send links — share URL links to user (easier to click)
When NOT to use
- Short text report — response directly
- Service not available — skip this skill if cc-connect daemon not running
Commands
All commands use cc-connect send with different flags.
Send an Image
cc-connect send --image /absolute/path/to/image.png -p <project> -m "Description"
- Repeat
--imagefor multiple images in one message. - Supported formats: PNG, JPG, JPEG, GIF.
- Always use absolute paths.
Send a File
cc-connect send --file /absolute/path/to/report.pdf -p <project> -m "Description"
- Repeat
--filefor multiple files. - Works with any file type: PDF, CSV, ZIP, etc.
Send a Text Notification
cc-connect send -m "Task completed successfully" -p <project>
- For long or multi-line messages, use heredoc:
cc-connect send --stdin -p <project> <<'EOF'
Build completed!
- Tests: PASS
- Coverage: 87%
EOF
Combine Image + File + Message
cc-connect send --image /path/to/chart.png --file /path/to/data.csv -p <project> -m "Results attached"
Common Options
| Flag | Description |
|---|---|
-p, --project <name> | Target project name (required when multiple projects exist) |
-s, --session <key> | Target specific session key (optional, defaults to first active) |
-m, --message <text> | Text message to accompany the attachment |
--image <path> | Image file to send (repeatable) |
--file <path> | File to send (repeatable) |
--stdin | Read message body from stdin |
Project Names
Project names come from ~/.cc-connect/config.toml. Check the config to find
available project names:
grep -A1 'name = ' ~/.cc-connect/config.toml
If only one project is configured, -p can be omitted.
Workflow Patterns
Pattern 1: Generate and Send a Chart
After generating a plot with matplotlib, save it to disk and send:
import matplotlib.pyplot as plt
plt.savefig("/tmp/chart.png", dpi=150, bbox_inches="tight")
plt.close()
Then:
cc-connect send --image /tmp/chart.png -p <project> -m "Here is the chart"
Pattern 2: Notify After Long Task
When a long-running task completes (training, backtest, build), notify the user even if they are away from the screen:
cc-connect send -m "Training complete! Loss: 0.023, Accuracy: 97.2%" -p <project>
Pattern 3: Send Report with Multiple Files
cc-connect send \
--file /tmp/report.pdf \
--file /tmp/data.csv \
--image /tmp/summary_chart.png \
-p <project> \
-m "Weekly report attached"
Troubleshooting
"no active session found"
Try specifying the full session key found in daemon logs:
journalctl --user -u cc-connect -n 20 --no-pager | grep session_key
If not found: The user has not started a chat session yet. The user must send at least one message on the platform before
cc-connect sendcan deliver to them.
Then use the session key:
cc-connect send --image /path/to/img.png -p <project> -s "discord:xxx:xxx" -m "Image"
"project not found"
Check available projects with grep 'name = ' ~/.cc-connect/config.toml and
use the exact project name with -p.
Beta Version Required
The --image and --file flags require cc-connect >= v1.2.2-beta. Install
via:
npm install -g cc-connect@beta
Stable versions (v1.2.1 and below) only support text messages (-m, --stdin).
Requirements
- cc-connect daemon must be running:
cc-connect daemon status attachment_send = "on"in~/.cc-connect/config.toml(global or per-project)- For image/file sending: cc-connect >= v1.2.2-beta (
cc-connect --version)
Signals
- GitHub stars
- 106
- Forks
- 21
- Last commit
- Apr 2026
Advanced
- Catalog kind
- skill
- Gateway key
cc-connect- Source
- github.com/archibate/dotfiles-opencode