Configuring Horizon
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
Set up and send emails via a user-provided Mailgun account (BYO email provider)
$ npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vellum-ai/vellum-assistant mailgun-setup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/mailgun-setup .claude/skills/mailgun-setup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mailgun-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setup into .claude/skills/mailgun-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mailgun-setup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vellum-ai/vellum-assistant mailgun-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/mailgun-setup .agents/skills/mailgun-setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mailgun-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setup into .agents/skills/mailgun-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mailgun-setup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vellum-ai/vellum-assistant mailgun-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/mailgun-setup .cursor/skills/mailgun-setup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mailgun-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setup into .cursor/skills/mailgun-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mailgun-setup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vellum-ai/vellum-assistant.git --path skills/mailgun-setup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vellum-ai/vellum-assistant mailgun-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/mailgun-setup .gemini/skills/mailgun-setup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mailgun-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setup into .gemini/skills/mailgun-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mailgun-setup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vellum-ai/vellum-assistant mailgun-setupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/mailgun-setup .github/skills/mailgun-setup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mailgun-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setup into .github/skills/mailgun-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mailgun-setup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vellum-ai/vellum-assistant mailgun-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/mailgun-setup .opencode/skills/mailgun-setup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mailgun-setup" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/mailgun-setup into .opencode/skills/mailgun-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mailgun-setup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mailgun-setupSet up and send emails via a user-provided Mailgun account (BYO email provider)
Mailgun Setup is an agent skill from vellum-ai/vellum-assistant. Set up and send emails via a user-provided Mailgun account (BYO email provider)
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and assets (for example `scripts/check-config.ts`, `scripts/setup-webhook.ts` and `scripts/store-api-key.ts`). Compatibility notes: Designed for Vellum personal assistants
It sits in Backend & APIs. The repository describes itself as: An AI Assistant that’s easy to setup, does your work 24/7, knows your preferences and gets better over time. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 33cc983. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
curlbunFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.mailgun.netapi.eu.mailgun.netFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
MAILGUN_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Vellum personal assistants
From compatibility in the SKILL.md frontmatter.
Mailgun Setup loads about 1.6k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 677 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from vellum-ai/vellum-assistant at commit 33cc983, republished under its MIT licence (© vellum-ai). 677 words, ~1,620 tokens.
.claude/skills/mailgun-setup/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Send emails through the user's own Mailgun account. The user provides their Mailgun API key and domain, and you send via their infrastructure.
Before starting, check whether Mailgun is already configured:
bun skills/mailgun-setup/scripts/check-config.tsThe script outputs JSON: { "configured": boolean, "hasApiKey": boolean, "hasWebhookKey": boolean, "details": string }.
configured is true — Mailgun is already set up. Offer to verify the connection or reconfigure.configured is false — continue to Step 1.Run the store script to securely collect the API key:
bun skills/mailgun-setup/scripts/store-api-key.tsThe script opens a secure credential prompt, stores the key, and exits. If it exits 0, the key is stored. Exit code 130 means the user cancelled the prompt — nothing was stored; that's a valid choice, not an error, so ask whether they'd like to try again rather than treating it as a failure. Any other non-zero exit is a real failure. Never ask for the key in chat.
Note: Mailgun uses HTTP Basic Auth with username api and the API key as the password. The credential proxy cannot construct Basic Auth headers automatically. Instead, use curl -u "api:$KEY" in bash commands — retrieve the key from the vault at runtime. See the sending examples below.
After storing the API key, automatically detect the user's domain — don't ask them for it. Retrieve the API key from the vault and call the Mailgun Domains API:
curl -s --user "api:$MAILGUN_API_KEY" \
https://api.mailgun.net/v4/domains?state=activeThe response contains an items array of domain objects with name and state fields. Pick the first domain with "state": "active". If no active domains are found, try the EU endpoint (https://api.eu.mailgun.net/v4/domains?state=active). If still none, tell the user they need to verify a domain in their Mailgun dashboard first.
Use hi@<domain> as the default sender address. Remember the domain and region (US/EU) for future sends.
Confirm the API key works by checking the domain response returned in Step 2. A successful response (HTTP 200) with domain data confirms the connection.
If the user also wants to receive emails via Mailgun, run the webhook setup script:
bun skills/mailgun-setup/scripts/setup-webhook.ts --domain "<verified domain>" [--region eu]This script:
If the script fails because no public base URL is configured (self-hosted only), load the public-ingress skill to walk the user through setting one up, then retry.
Summarize with the completed checklist:
"Setup complete!
✅ API key configured
✅ Domain detected: <domain> (region: US/EU)
✅ Connection verified
{webhook_line}
Default sender: hi@<domain>"
For {webhook_line}:
✅ Inbound route and webhook signing key configured⬜ Webhook — run setup again to enable inbound emailUse bash with curl to call the Mailgun API. Pass the API key via -u for Basic Auth:
curl -s --user "api:$MAILGUN_API_KEY" \
https://api.mailgun.net/v3/DOMAIN/messages \
-F from="Name <sender@example.com>" \
-F to="recipient@example.com" \
-F subject="Hello" \
-F text="Plain text body" \
-F html="<p>HTML body</p>"Replace DOMAIN with the user's Mailgun sending domain.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | ✅ | Sender address ("Name <email>" format) |
to | string | ✅ | Recipient(s), comma-separated for multiple |
subject | string | ✅ | Email subject |
text | string | Plain text body | |
html | string | HTML body | |
cc | string | CC recipients, comma-separated | |
bcc | string | BCC recipients, comma-separated | |
h:Reply-To | string | Reply-to address | |
h:In-Reply-To | string | Message-ID of parent (for threading) | |
h:References | string | Space-separated chain of ancestor Message-IDs |
To reply in a thread, include custom headers:
curl -s --user "api:$MAILGUN_API_KEY" \
https://api.mailgun.net/v3/DOMAIN/messages \
-F from="bot@example.com" \
-F to="user@example.com" \
-F subject="Re: Original subject" \
-F text="Reply body" \
-F "h:In-Reply-To=<original-message-id>" \
-F "h:References=<original-message-id>"Success returns { "id": "<message-id>", "message": "Queued. Thank you." } with HTTP 200.
Errors return { "message": "error description" } with 4xx/5xx status.
Mailgun has US and EU regions:
https://api.mailgun.net/v3/DOMAIN/messageshttps://api.eu.mailgun.net/v3/DOMAIN/messagesAsk the user which region their account uses if sends fail with 401.
from address must be from the user's verified Mailgun domain.hi@<domain> — use this unless the user specifies otherwise.text for plain text, html for rich formatting. Provide both when possible.© vellum-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, assets) in skills/mailgun-setup of vellum-ai/vellum-assistant.
Open the folder on GitHubat commit 33cc983
Mailgun Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mailgun Setup this skillvellum-ai/vellum-assistant | 1.4k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Configuring Horizoncoollabsio/coolify | 63k | 4 repos | ~898 | Automated safety check: Pass | MIT | |
| Nestjs Best Practicesrolling-scopes/rsschool-app | 10k | 6 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Sub2API AdminWei-Shaw/sub2api | 44k | 1 repos | ~717 | Automated safety check: Pass | LGPL-3.0 | |
| Firecrawl Build Onboardingfirecrawl/firecrawl | 190k | 1 repos | ~1.4k | Automated safety check: Notes | ISC | |
| Obsidian BasesAtmosphere/atmosphere | 3.8k | 22 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 |
coollabsio/coolify
A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.
rolling-scopes/rsschool-app
NestJS best practices and architecture patterns for building production-ready applications.
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
firecrawl/firecrawl
Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.
Atmosphere/atmosphere
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
vellum-ai/vellum-assistant
Create and configure a GitHub App so the assistant can push commits, open PRs, and comment under its own bot identity.
vellum-ai/vellum-assistant
Connect a Discord bot to the assistant via the Discord Gateway with guided application creation and intent configuration
vellum-ai/vellum-assistant
Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity
vellum-ai/vellum-assistant
Ingest a large dataset into memory as a skimmed map. An agent skill from vellum-ai/vellum-assistant.
vellum-ai/vellum-assistant
A skill your agent uses when the user wants to build, scaffold, ship, or edit a Vellum plugin that bundles multiple surfaces (hooks, tools, skills, and more) into one installable package.
vellum-ai/vellum-assistant
Connect a Slack app to the Vellum Assistant via Socket Mode.
Categories
Set up and send emails via a user-provided Mailgun account (BYO email provider). Mailgun Setup is an agent skill from vellum-ai/vellum-assistant.
Mailgun Setup fits situations like: backend & APIs work in your project.
Run `npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a claude-code`. Or copy the skill folder (skills/mailgun-setup in vellum-ai/vellum-assistant) into .claude/skills/mailgun-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a codex`. Or copy the skill folder (skills/mailgun-setup in vellum-ai/vellum-assistant) into .agents/skills/mailgun-setup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vellum-ai/vellum-assistant --skill mailgun-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mailgun-setup, .gemini/skills/mailgun-setup, .github/skills/mailgun-setup and .opencode/skills/mailgun-setup in your project.
Going by SKILL.md and its folder, Mailgun Setup needs TypeScript for the scripts in its folder, the command-line tools its instructions call (curl and bun) and credentials named MAILGUN_API_KEY. Our summary lists: Node.js; A credential in MAILGUN_API_KEY. Compatibility (from SKILL.md): Designed for Vellum personal assistants.
SKILL.md names 2 domains. In commands or code: api.mailgun.net and api.eu.mailgun.net; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Mailgun Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Mailgun Setup: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 44k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vellum-ai (a GitHub organization) maintains it in vellum-ai/vellum-assistant, which has 1,408 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 9, 2026.
Source: vellum-ai/vellum-assistant on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.