discord-file-delivery
Deliver files from Hermes to Discord reliably, including MEDIA tags, upload size limits, and fallback links for large artifacts.
Skill by semyonfox
Chalk Labs
Need help deploying discord-file-delivery?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/semyonfox-discord-file-delivery
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/discord-file-delivery
What's inside
- Skill name
discord-file-delivery- Description
- Deliver files from Hermes to Discord reliably, including MEDIA tags, upload size limits, and fallback links for large artifacts.
- License
- MIT
- Instructions
- 102 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- files: referenced but missing: references/erugo-fileshare-artifact-delivery.md
- body: contains an absolute path from the author's machine
Files (1)
- SKILL.md
SKILL.md (first lines)
# Discord File Delivery from Hermes
Use when the user asks to send/upload/attach a file in a Discord conversation, especially build artifacts such as APKs, ZIPs, PDFs, videos, or reports.
## Ground truth
Hermes Discord supports native uploads through inline tags in a message:
```text
MEDIA:/absolute/path/to/file
```
The Discord adapter strips the tag and uploads the file as a native attachment. Documents such as APK/ZIP/PDF are sent as downloadable file attachments.
## Critical limit
Discord enforces a per-upload size cap depending on the server boost tier. Common free limit is **25 MB**. Hermes logs show Discord rejects oversized uploads with:
```text
413 Payload Too Large (error code: 40005): Request entity too large
```
When this happens, repeating `MEDIA:/path` will not help. The file is too large for that Discord surface.
Check logs if delivery appears to silently fail:
```bash
grep -R "413\|Payload Too Large\|Failed to send document\|MEDIA:" -n ~/.hermes/logs ~/.hermes/sessions 2>/dev/null | tail -80
```
## Workflow
1. Resolve the user's intended scope before attaching files. If the request is a follow-up like “send all the SVGs/PDFs” after discussing rendered artifacts, prefer the previously identified artifact directories rather than a repo-wide extension sweep. Avoid surprising attachments such as reports, test fixtures, sample papers, dependency assets, or build junk unless the user explicitly asked for every matching extension in the whole repo.
2. Verify the file exists and size:
```bash
ls -lh /absolute/path/to/file
sha256sum /absolute/path/to/file
```
3. If file is safely below the likely Discord limit, send it with either:
Final response:
```text
MEDIA:/absolute/path/to/file
```
or `send_message`:
```text
MEDIA:/absolute/path/to/file
```
3. If the target is a specific channel/thread, call `send_message(action="list")` first, then send to the exact target string from the list.
4. If upload fails with HTTP 413 or the file is clearly too large:
- Do **not** keep retrying the attachment.
- For Semyon's own large artifacts, prefer the self-hosted Erugo fileshare (`https://fileshare.semyon.ie`) before public temporary hosts. The detailed Erugo workflow lives in `personal-infrastructure-operations` → `references/erugo-fileshare-artifact-delivery.md`.
- Upload to a public temporary/direct file host only if the user requested upload/delivery, Erugo/self-hosted delivery is unavailable, and the artifact is not sensitive.
- Verify the download URL with `curl -I` and include the SHA256.
- Tell the user Discord rejected the native upload because of size.
Example public temporary host fallback:
```bash
APK=/path/to/file.apk
out=$(curl --fail --silent --show-error -F "file=@${APK}" https://tmpfiles.org/api/v1/upload)
echo "$out"
# Convert https://tmpfiles.org/<id>/<file> to https://tmpfiles.org/dl/<id>/<file>
curl -I --fail "https://tmpfiles.org/dl/<id>/<file>"
sha256sum "$APK"
```
## Multi-file asset delivery
When Semyon asks for many project assets “here in Discord”:
- Respect the requested extensions exactly. Do not broaden “PNGs” into PDFs/SVGs or “SVGs” into repo PDFs unless he explicitly asks for those formats.
- “Don’t bundle them” means send individual `MEDIA:` attachments, not ZIP/tar archives. Split into multiple messages if needed; keep batches small enough for Discord/Hermes reliability (around 5–10 attachments per message worked well for many small PNG/SVG assets).
- Prune obvious generated-noise assets unless explicitly requested: coverage-report favicons, sort-arrow sprites, dependency/build/cache output. Prefer human-facing rendered assets such as `screenshots/`, `diagrams/rendered/`, and app `public/` images.
- If using `send_message`, verify each batch returns `success: true` and keep going until all batches have a message ID.
## Notes
- Prefer native Discord attachment when possible.
- When Semyon explicitly asks for many files “not bundled” / “as attachments,” send them as individual `MEDIA:` tags split across several Discord messages rather than a ZIP/tarball. Keep batches modest (around 5–10 files per message) so Discord/Hermes can upload reliably, and verify each `send_message` result before claiming delivery.
- For broad extension requests like “all SVGs/PDFs/PNGs,” inspect the file list first and avoid generated junk (coverage icons, dependency/build assets) unless the user truly wants every file. If an extension includes likely fixtures or reports, mention that they were included because of the literal extension filter and be ready to narrow the set.
- When the user asks for “all PNGs/SVGs/PDFs” from a project after discussing rendered artifacts, scope the search to the likely artifact directories first (`diagrams/rendered`, `screenshots`, `public` when relevant) and prune dependency/build/test-output junk (`node_modules`, `.git`, `dist`, `build`, `.next`, `coverage`). Do not blindly include reports, fixture PDFs, favicons, or coverage sprites unless the user explicitly wants every matching extension in the repo.
- If “don’t bundle them” is explicit, send multiple Discord messages with several `MEDIA:` lines each; that still produces separate native attachments while avoiding a zip/tar archive.
- For large batches, report count and any deliberate exclusions plainly after sending, not before asking for confirmation unless the scope is genuinely ambiguous.
- For large APKs/build artifacts, a direct download link plus checksum is usually the practical path.
- For large APKs/build artifacts, a direct download link plus checksum is usually the practical path.
- For large APKs/build artifacts, a direct download link plus checksum is usually the practical path.
- On Semyon's infrastructure, prefer the self-hosted Erugo fileshare at `fileshare.semyon.ie` when available. It lives under `/home/semyon/server-stacks/fileshare/` and can handle large APK-style artifacts better than Discord's native cap.
- When the user needs to tap a URL from Discord/mobile, put the URL as a bare clickable line, not inside a code block.
- For APKs, remember APKs are ZIP containers; if Android/file managers treat the download as a ZIP/folder, serve it with `Content-Type: application/vnd.android.package-archive` and `Content-Disposition: attachment; filename="name.apk"`, or stage it via ADB.
- Do not upload private or sensitive files to public temporary hosts without explicit user approval; use self-hosted Erugo first when possible.
- If using `send_message`, verify tool result includes `success: true`, platform `discord`, and a `message_id` before claiming delivery.From semyonfox/dotfiles, MIT.
More from semyonfox/dotfiles
- 0.592score
creative
semyonfox
Use when generating or transforming creative artifacts such as diagrams, infographics, sketches, motion pieces, generative art, slides, or stylized text and…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
autonomous-ai-agents
semyonfox
Use when delegating code or repo work to external autonomous coding agents, choosing among Claude Code, Codex, and OpenCode, or repairing T3 Code mobile APK…
SkillAFreshness: A★ 1Claude Code +9 - 0.551score
audio-learning-production
semyonfox
Use when producing engaging, hosted two-voice audio lessons.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
apple-automation
semyonfox
Class-level macOS and Apple-device automation: screen-driven computer use, AppleScript, screenshots, and Find My workflows.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
docker-maintenance
semyonfox
Safely refresh, recover, and verify a multi-stack Docker host, including Watchtower maintenance and zombie-container recovery.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
backup-recovery-operations
semyonfox
Design, operate, verify, and document selective local/offsite backup and recovery systems.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
curiosity-led-teaching
semyonfox
Teach Semyon technical or academic material through bounded curiosity, active prediction, real-project relevance, and visible closure.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
distributed-agent-runtime-operations
semyonfox
Diagnose and recover persistent agent backends with desktop/mobile clients, reverse proxies, tunnels, pairing, and split-horizon routing.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
availability-observability
semyonfox
Audit and present host, network-uplink, and service availability from existing system evidence before adding monitoring.
SkillBFreshness: B★ 1Claude Code +9 - 0.543score
agent-skill-library-management
semyonfox
Use when centralizing or deploying Claude/Codex skills.
SkillBFreshness: B★ 1Claude Code +9 - 0.543score
docx
semyonfox
Create, read, edit, template, and review Word .docx files.
SkillBFreshness: B★ 1Claude Code +9 - 0.543score
editor-mcp-integration
semyonfox
Use for Blender, Unity, or Unreal MCP setup.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 12, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/semyonfox/dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from semyonfox
- 0.592score
creative
semyonfox
Use when generating or transforming creative artifacts such as diagrams, infographics, sketches, motion pieces, generative art, slides, or stylized text and…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
autonomous-ai-agents
semyonfox
Use when delegating code or repo work to external autonomous coding agents, choosing among Claude Code, Codex, and OpenCode, or repairing T3 Code mobile APK…
SkillAFreshness: A★ 1Claude Code +9 - 0.551score
audio-learning-production
semyonfox
Use when producing engaging, hosted two-voice audio lessons.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
apple-automation
semyonfox
Class-level macOS and Apple-device automation: screen-driven computer use, AppleScript, screenshots, and Find My workflows.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
docker-maintenance
semyonfox
Safely refresh, recover, and verify a multi-stack Docker host, including Watchtower maintenance and zombie-container recovery.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
backup-recovery-operations
semyonfox
Design, operate, verify, and document selective local/offsite backup and recovery systems.
SkillBFreshness: B★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get discord-file-delivery running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
discord-file-delivery skill. Agent Mart. https://agentmart.dev/skills/semyonfox-discord-file-delivery (last updated 2026-10-24)