using-notification-send
How to email or text the Wayfinder Shells instance owner from agents/scripts via the notify MCP tool or NotifyClient (Markdown body rendered to themed HTML for email, throttled).
Best use case
using-notification-send is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
How to email or text the Wayfinder Shells instance owner from agents/scripts via the notify MCP tool or NotifyClient (Markdown body rendered to themed HTML for email, throttled).
Teams using using-notification-send should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/using-notification-send/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How using-notification-send Compares
| Feature / Agent | using-notification-send | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
How to email or text the Wayfinder Shells instance owner from agents/scripts via the notify MCP tool or NotifyClient (Markdown body rendered to themed HTML for email, throttled).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
## TL;DR
Notify the user who owns this Wayfinder Shells instance. Email renders Markdown into themed HTML; SMS/text sends concise plain text.
**MCP tool (preferred from agents):**
```
notification_send(
title="Rebalance complete",
message="Moved **50 USDC** from Aave → Morpho.\n\n- tx: 0x…\n- new APY: 7.4%",
)
```
**Python client (from scripts):**
```python
from wayfinder_paths.core.clients.NotifyClient import NOTIFY_CLIENT
await NOTIFY_CLIENT.notify(
title="Rebalance complete",
message="Moved **50 USDC** from Aave → Morpho.\n\n- tx: 0x…\n- new APY: 7.4%",
delivery="email", # or "sms" / "text"
)
```
Both POST to `{api_base}/opencode/notify/` with the configured `WAYFINDER_API_KEY`.
## Limits & gotchas
- **Title:** ≤ 200 chars (required, non-empty after strip).
- **Message:** ≤ 20 000 chars (required). Rendered as Markdown — headings, lists, tables, fenced code, links all work.
- **Delivery gate:** Email requires `email_verified: true`; SMS/text requires a verified phone number.
- **Throttle:** Backend caps at **12 notifications / user / day** across email/SMS. Budget sends; don't spam progress updates.
- **Shells-only:** No-op (or HTTP error) outside a Wayfinder Shells instance. The MCP tool gates on `is_opencode_instance()` indirectly via the API; the client just hits the URL. Detection: `OPENCODE_INSTANCE_ID` env var is set, or the health probe at `http://localhost:3096/global/health` returns `healthy: true`.
- Client returns the parsed JSON dict directly (no `(ok, data)` tuple — it's a `WayfinderClient`, not an adapter).
- **Scheduled jobs:** Routine successful runs already sync to backend job history. Only opt into all success chat `job_result` messages with `always_notify_session_on_job_completion=True` when the user explicitly wants live run output. For conditional chat callbacks, print one line from the script: `WAYFINDER_JOB_RESULT {"summary":"Funding crossover detected","instructions":"Research whether to unroll the position.","severity":"warning"}`.
## When to use
- Report completed fund-moving work to the owner ("rebalance done", "withdraw confirmed").
- Surface decisions that need them ("APY dropped below threshold — pause strategy?").
- Flag failures you can't auto-resolve.
- Escalate `job_result` events from scheduled jobs only when they need owner attention.
Don't use for chatty progress updates. Alert scripts should be edge-triggered: persist the previous state, notify once when a threshold first crosses or an action is taken, then suppress repeats until a reset condition or cooldown. If the right response is more research or a proposed script rather than an external notification, emit `WAYFINDER_JOB_RESULT` instead of calling Notify.
## Markdown formatting tips
- Use `**bold**` for amounts and statuses.
- Code-fence tx hashes / addresses so they don't wrap mid-string.
- Tables work for multi-step rebalance summaries.
- Links: `[Block explorer](https://...)` → clickable in the rendered email.
## Error shape
MCP tool returns `{"ok": false, "error": {"code": ..., "message": ...}}` for:
- `invalid_request` — title/message empty or exceeds limit.
- `notify_http_error` — backend rejected (check `details` for body).
- `notify_error` — transport failure.Related Skills
using-visual-chart-annotations
How to read Wayfinder Shells frontend state, create chart panes, and add TradingView annotations or overlays to the default live chart or agent-created workspace charts.
using-uniswap-adapter
How to use the Uniswap V3 adapter for concentrated liquidity on Base/Arbitrum/Ethereum (LP provisioning, position management, tick math, and common gotchas).
using-sparklend-adapter
How to use the SparkLend adapter for the functionality implemented in this repo (market reads, user state, supply/withdraw, borrow/repay, collateral, rewards, and native-token flows).
using-polymarket-adapter
How to use the Polymarket adapter in Wayfinder Paths for market discovery (Gamma), orderbooks/prices/history (CLOB), user positions/activity (Data API), and execution (buy/sell + redeem) using pUSD collateral on Polygon (including deposit / withdraw preparation flows).
using-pendle-adapter
How to use the Pendle adapter in Wayfinder Paths for PTs (Principal Tokens), YTs (Yield Tokens), and Pendle limit orders: market discovery, historical data, Hosted SDK swap tx building, taker fills, maker orders, inputs/outputs, chain IDs, unit handling, and approvals.
using-morpho-adapter
How to use the Morpho adapter for Morpho Blue markets + MetaMorpho vaults (market discovery, positions, collateral ops, rewards, and common gotchas).
using-moonwell-adapter
How to use the Moonwell adapter for lending/borrowing on Base (market discovery, APYs, collateral management, and common gotchas).
using-hyperliquid-adapter
How to use Hyperliquid adapter data (meta, funding, candles, orderbooks) and execution surfaces (orders/transfers) in Wayfinder Paths, including required executor wiring.
using-hyperlend-adapter
How to read Hyperlend markets/time-series and execute lend/withdraw flows in Wayfinder Paths (inputs/outputs, unit handling, and safety).
using-euler-v2-adapter
How to use the Euler v2 (EVK / eVault) adapter for vault market discovery, APYs, positions, and EVC-batched lend/borrow flows.
using-etherfi-adapter
How to use the ether.fi adapter for ETH liquid restaking on Ethereum mainnet (stake ETH→eETH, wrap/unwrap weETH, async withdraw requests, and position reads).
using-ethena-vault-adapter
How to use the Ethena sUSDe vault adapter for spot APY, cooldown/position reads, and USDe→sUSDe stake/unstake flows (Ethereum mainnet vault).