Stacks PR Review
stacks-network/stacks-core
Review repository changes as they would be reviewed in a pull request.
Show MoonPay wallet balances in a compatible CLI status line using a local cache and refresh script.
$ npx skills add moonpay/skills --skill moonpay-wallet-statusline -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install moonpay/skills moonpay-wallet-statusline --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/moonpay/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/moonpay-wallet-statusline .claude/skills/moonpay-wallet-statusline && 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 "moonpay-wallet-statusline" agent skill from https://github.com/moonpay/skills/tree/main/skills/moonpay-wallet-statusline into .claude/skills/moonpay-wallet-statusline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "moonpay-wallet-statusline", 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/moonpay/skills/tree/main/skills/moonpay-wallet-statuslineType 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 moonpay/skills --skill moonpay-wallet-statusline -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install moonpay/skills moonpay-wallet-statusline --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moonpay/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/moonpay-wallet-statusline .agents/skills/moonpay-wallet-statusline && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "moonpay-wallet-statusline" agent skill from https://github.com/moonpay/skills/tree/main/skills/moonpay-wallet-statusline into .agents/skills/moonpay-wallet-statusline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "moonpay-wallet-statusline", 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 moonpay/skills --skill moonpay-wallet-statusline -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install moonpay/skills moonpay-wallet-statusline --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moonpay/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/moonpay-wallet-statusline .cursor/skills/moonpay-wallet-statusline && 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 "moonpay-wallet-statusline" agent skill from https://github.com/moonpay/skills/tree/main/skills/moonpay-wallet-statusline into .cursor/skills/moonpay-wallet-statusline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "moonpay-wallet-statusline", 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/moonpay/skills.git --path skills/moonpay-wallet-statusline--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 moonpay/skills --skill moonpay-wallet-statusline -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install moonpay/skills moonpay-wallet-statusline --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moonpay/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/moonpay-wallet-statusline .gemini/skills/moonpay-wallet-statusline && 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 "moonpay-wallet-statusline" agent skill from https://github.com/moonpay/skills/tree/main/skills/moonpay-wallet-statusline into .gemini/skills/moonpay-wallet-statusline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "moonpay-wallet-statusline", 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 moonpay/skills moonpay-wallet-statuslineInstalls 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 moonpay/skills --skill moonpay-wallet-statusline -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/moonpay/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/moonpay-wallet-statusline .github/skills/moonpay-wallet-statusline && 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 "moonpay-wallet-statusline" agent skill from https://github.com/moonpay/skills/tree/main/skills/moonpay-wallet-statusline into .github/skills/moonpay-wallet-statusline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "moonpay-wallet-statusline", 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 moonpay/skills --skill moonpay-wallet-statusline -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install moonpay/skills moonpay-wallet-statusline --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moonpay/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/moonpay-wallet-statusline .opencode/skills/moonpay-wallet-statusline && 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 "moonpay-wallet-statusline" agent skill from https://github.com/moonpay/skills/tree/main/skills/moonpay-wallet-statusline into .opencode/skills/moonpay-wallet-statusline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "moonpay-wallet-statusline", 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.
moonpay-wallet-statuslineShow MoonPay wallet balances in a compatible CLI status line using a local cache and refresh script.
Moonpay Wallet Statusline is an agent skill from moonpay/skills. Show MoonPay wallet balances in a compatible CLI status line using a local cache and refresh script. Use when the user asks to "show balances in the status bar", "add wallet to the CLI status line", or wants a persistent balance display while working.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Bitcoin. The repository describes itself as: Skills for AI agents to move money — on-ramps, swaps, wallets, deposits, and more via the MoonPay CLI. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aa672ab. 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.
Shell commands in SKILL.md call:
jqbashnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Moonpay Wallet Statusline loads about 3.4k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 783 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); files beside SKILL.md are not scanned.
The full file from moonpay/skills at commit aa672ab, republished under its MIT licence (© moonpay). 783 words, ~3,403 tokens.
.claude/skills/moonpay-wallet-statusline/SKILL.md (or your agent's skills folder).Display cached MoonPay wallet balances in a compatible CLI status line. This skill creates:
~/.config/moonpay/statusline.json — tracked wallets, chains, and format~/.config/moonpay/refresh-statusline.sh — refreshes balances from the MoonPay CLI~/.config/moonpay/statusline-cache.txt — pre-rendered ANSI output for the status lineAny compatible status display can read the cache file directly.
npm i -g @moonpay/climp login then mp verifymp wallet listjq installed: which jqbc installed: which bc# List wallets
mp wallet list
mp --json wallet list
# Fetch balances (used by the refresh script)
mp --json bitcoin balance retrieve --wallet <btc-address>
mp --json token balance list --wallet <address> --chain <chain>
# Refresh the status line cache
bash ~/.config/moonpay/refresh-statusline.shsolana, ethereum, base, polygon, arbitrum, optimism, bnb, avalanche, tron, bitcoin, ton, filecoin
Bitcoin uses a separate command (mp bitcoin balance retrieve) and does not return USD values, so it is excluded from USD totals.
Run:
mp verify
mp wallet list
which jq
which bcIf the user wants integration with a specific CLI, verify that CLI's status line entry point too.
Examples:
# Claude Code
test -f ~/.claude/statusline.sh && echo "statusline script present"
# Cursor CLI
test -f ~/.cursor/statusline.sh && echo "cursor statusline script present"If the target CLI does not yet have a status line configured, help the user set that up first, then come back to this skill.
Run mp wallet list and ask the user which wallet address(es) to track. Create one config entry per address and per chain.
Skip testnets/devnets by default. Exclude chains containing:
testnetdevnetsepoliaamoytempoamount — symbol + balance (example: BTC 0.00071)amount+usd — symbol + balance + USD when available (example: mpSOL 0.00092 ($0.08))total+breakdown — total USD first, then token breakdown (example: $12.48 | SOL 0.03 ($4.55) | USDC 7.93 ($7.93))If the same symbol appears on multiple chains, keep separate entries rather than merging them.
Create the config directory if needed:
mkdir -p ~/.config/moonpayWrite ~/.config/moonpay/statusline.json. Each entry must represent exactly one wallet address on exactly one chain. Prefer storing the resolved address directly instead of a wallet name.
{
"entries": [
{
"label": "btc-wallet",
"address": "bc1qexample...",
"chain": "bitcoin"
},
{
"label": "base-wallet",
"address": "0x1234...abcd",
"chain": "base"
},
{
"label": "sol-wallet",
"address": "So1anaExamplePubkey...",
"chain": "solana"
}
],
"format": "amount+usd"
}Write ~/.config/moonpay/refresh-statusline.sh, then make it executable with chmod +x ~/.config/moonpay/refresh-statusline.sh.
This script:
~/.config/moonpay/statusline.jsonaddress and one chain#!/usr/bin/env bash
set -euo pipefail
CONFIG="$HOME/.config/moonpay/statusline.json"
CACHE="$HOME/.config/moonpay/statusline-cache.txt"
TMP_CACHE="$(mktemp "${CACHE}.tmp.XXXXXX")"
BOLD_CYAN=$'\033[1;36m'
WHITE=$'\033[0;37m'
DIM_GREEN=$'\033[2;32m'
DIM=$'\033[2m'
RESET=$'\033[0m'
cleanup() {
rm -f "$TMP_CACHE"
}
trap cleanup EXIT
require_bin() {
command -v "$1" >/dev/null 2>&1 || {
echo "missing dependency: $1" >&2
exit 1
}
}
trim_number() {
printf "%s" "$1" | sed -E 's/(\.[0-9]*[1-9])0+$/\1/; s/\.0+$//'
}
format_usd() {
printf '$%.2f' "${1:-0}"
}
join_by() {
local separator="$1"
shift
local first=1
for item in "$@"; do
if [[ $first -eq 1 ]]; then
printf "%s" "$item"
first=0
else
printf "%s%s" "$separator" "$item"
fi
done
}
require_bin mp
require_bin jq
require_bin bc
[[ -f "$CONFIG" ]] || exit 1
FORMAT="$(jq -r '.format // "amount"' "$CONFIG")"
ENTRY_COUNT="$(jq '.entries | length' "$CONFIG")"
[[ "$ENTRY_COUNT" -gt 0 ]] || {
rm -f "$CACHE"
exit 0
}
declare -a RENDERED=()
USD_TOTAL="0"
HAS_USD_TOTAL=0
while IFS= read -r entry; do
entry_label="$(jq -r '.label // empty' <<<"$entry")"
wallet_address="$(jq -r '.address // empty' <<<"$entry")"
chain="$(jq -r '.chain // empty' <<<"$entry")"
[[ -n "$wallet_address" && -n "$chain" ]] || {
echo "invalid config entry: each item needs address and chain" >&2
exit 1
}
if [[ "$chain" == "bitcoin" ]]; then
if ! btc_json="$(mp --json bitcoin balance retrieve --wallet "$wallet_address" 2>/dev/null)"; then
echo "failed to fetch bitcoin balance for ${entry_label:-$wallet_address}" >&2
exit 1
fi
btc_amount="$(jq -r '.total.btc // empty' <<<"$btc_json")"
[[ -n "$btc_amount" && "$btc_amount" != "0" ]] || continue
amount_display="$(trim_number "$btc_amount")"
RENDERED+=("${BOLD_CYAN}₿@bitcoin${RESET} ${WHITE}${amount_display}${RESET}")
continue
fi
if ! token_json="$(mp --json token balance list --wallet "$wallet_address" --chain "$chain" 2>/dev/null)"; then
echo "failed to fetch token balances for ${entry_label:-$wallet_address} on ${chain}" >&2
exit 1
fi
while IFS= read -r token_entry; do
symbol="$(jq -r '.symbol // empty' <<<"$token_entry")"
amount="$(jq -r '.balance.amount // empty' <<<"$token_entry")"
usd_value="$(jq -r '.balance.value // empty' <<<"$token_entry")"
[[ -n "$symbol" && -n "$amount" ]] || continue
amount_display="$(trim_number "$amount")"
token_label="${symbol}@${chain}"
if [[ -n "$usd_value" && "$usd_value" != "null" ]]; then
USD_TOTAL="$(echo "$USD_TOTAL + $usd_value" | bc -l)"
HAS_USD_TOTAL=1
fi
case "$FORMAT" in
amount)
RENDERED+=("${BOLD_CYAN}${token_label}${RESET} ${WHITE}${amount_display}${RESET}")
;;
amount+usd)
if [[ -n "$usd_value" && "$usd_value" != "null" ]]; then
RENDERED+=("${BOLD_CYAN}${token_label}${RESET} ${WHITE}${amount_display}${RESET} ${DIM_GREEN}($(format_usd "$usd_value"))${RESET}")
else
RENDERED+=("${BOLD_CYAN}${token_label}${RESET} ${WHITE}${amount_display}${RESET}")
fi
;;
total+breakdown)
if [[ -n "$usd_value" && "$usd_value" != "null" ]]; then
RENDERED+=("${BOLD_CYAN}${token_label}${RESET} ${WHITE}${amount_display}${RESET} ${DIM_GREEN}($(format_usd "$usd_value"))${RESET}")
else
RENDERED+=("${BOLD_CYAN}${token_label}${RESET} ${WHITE}${amount_display}${RESET}")
fi
;;
*)
RENDERED+=("${BOLD_CYAN}${token_label}${RESET} ${WHITE}${amount_display}${RESET}")
;;
esac
done < <(
jq -c '
(.items // . // [])[]
| select(((.balance.amount // "0") | tonumber? // 0) > 0)
' <<<"$token_json"
)
done < <(jq -c '.entries[]' "$CONFIG")
if [[ ${#RENDERED[@]} -eq 0 ]]; then
rm -f "$CACHE"
exit 0
fi
SEPARATOR="${DIM} | ${RESET}"
TOKENS_LINE="$(join_by "$SEPARATOR" "${RENDERED[@]}")"
if [[ "$FORMAT" == "total+breakdown" && "$HAS_USD_TOTAL" -eq 1 ]]; then
printf "%s%s%s" "${DIM_GREEN}$(format_usd "$USD_TOTAL")${RESET}" "$SEPARATOR" "$TOKENS_LINE" >"$TMP_CACHE"
else
printf "%s" "$TOKENS_LINE" >"$TMP_CACHE"
fi
mv "$TMP_CACHE" "$CACHE"bash ~/.config/moonpay/refresh-statusline.shVerify the cache file:
cat ~/.config/moonpay/statusline-cache.txtFor plain text:
sed 's/\x1b\[[0-9;]*m//g' ~/.config/moonpay/statusline-cache.txtThe generic pattern is:
~/.config/moonpay/statusline-cache.txtAny CLI that can run a script on status line render can use the cached output directly:
cat ~/.config/moonpay/statusline-cache.txtIf the target CLI does not support ANSI colors, strip them first:
sed 's/\x1b\[[0-9;]*m//g' ~/.config/moonpay/statusline-cache.txtAdd this block to ~/.claude/statusline.sh before the final render/output section. Match the surrounding script style if variable names differ.
# Wallet balances
WALLET_CACHE="$HOME/.config/moonpay/statusline-cache.txt"
WALLET_STR=""
if [ -f "$WALLET_CACHE" ]; then
WALLET_STR="$(cat "$WALLET_CACHE")"
fi
if [ -n "$WALLET_STR" ]; then
[ -n "$LINE3" ] && LINE3="${LINE3}${SEP}"
LINE3="${LINE3}${WALLET_STR}"
fiOptional on Claude Code v2.1.85+: add a PostToolUse hook to ~/.claude/settings.json so balance-moving MoonPay commands refresh the cache automatically.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"if": "Bash(mp token swap:*)",
"command": "bash ~/.config/moonpay/refresh-statusline.sh 2>/dev/null || true",
"async": true
},
{
"type": "command",
"if": "Bash(mp token send:*)",
"command": "bash ~/.config/moonpay/refresh-statusline.sh 2>/dev/null || true",
"async": true
},
{
"type": "command",
"if": "Bash(mp token bridge:*)",
"command": "bash ~/.config/moonpay/refresh-statusline.sh 2>/dev/null || true",
"async": true
},
{
"type": "command",
"if": "Bash(mp bitcoin send:*)",
"command": "bash ~/.config/moonpay/refresh-statusline.sh 2>/dev/null || true",
"async": true
},
{
"type": "command",
"if": "Bash(mp buy:*)",
"command": "bash ~/.config/moonpay/refresh-statusline.sh 2>/dev/null || true",
"async": true
}
]
}
]
}
}Cursor CLI uses ~/.cursor/cli-config.json with a statusLine.command entry that typically points at ~/.cursor/statusline.sh. Add the same cache-read pattern to that script, for example:
WALLET_CACHE="$HOME/.config/moonpay/statusline-cache.txt"
WALLET_STR=""
if [ -f "$WALLET_CACHE" ]; then
WALLET_STR="$(cat "$WALLET_CACHE")"
fi
if [ -n "$WALLET_STR" ]; then
[ -n "$LINE3" ] && LINE3="${LINE3}${SEP}"
LINE3="${LINE3}${WALLET_STR}"
fiIf the user's script uses different variable names or a single-line layout, adapt the snippet to match the existing format.
For any other CLI tool with a scriptable status line:
cat ~/.config/moonpay/statusline-cache.txt or the ANSI-stripped variantbash ~/.config/moonpay/refresh-statusline.sh into that mechanismTell the user:
~/.config/moonpay/statusline-cache.txtmoonpay-wallet-statusline-refresh to refresh manuallyAny agent with a terminal status display can read the cache file directly:
cat ~/.config/moonpay/statusline-cache.txtIf the target status display does not support ANSI colors, strip ANSI codes first:
sed 's/\x1b\[[0-9;]*m//g' ~/.config/moonpay/statusline-cache.txt| Error | Cause | Fix |
|---|---|---|
mp: command not found | MoonPay CLI not installed | npm i -g @moonpay/cli |
jq: command not found | jq not installed | Install via package manager |
bc: command not found | bc not installed | Install via package manager |
mp verify failed | Not authenticated or expired auth | Run mp login then mp verify |
| Empty cache after refresh | No balances found on configured entries | Check configured addresses/chains and verify the wallet has funds |
| Status line does not update in the target CLI | CLI status line not set up yet or cache not wired in | Configure that CLI's status line first, then add the wallet cache block |
© moonpay, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/moonpay-wallet-statusline of moonpay/skills.
Open the folder on GitHubat commit aa672ab
Moonpay Wallet Statusline 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 |
|---|---|---|---|---|---|---|
| Moonpay Wallet Statusline this skillmoonpay/skills | 113 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Stacks PR Reviewstacks-network/stacks-core | 3.1k | — | ~1.1k | Automated safety check: Pass | GPL-3.0 | |
| Ff Worktreesdamus-io/damus | 2.1k | — | ~451 | Automated safety check: Pass | GPL-3.0 | |
| Filing User Bug Reportsdamus-io/damus | 2.1k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| ApocdataApocData/ApocData-skill | 104 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Preparing Release Changelogdamus-io/damus | 2.1k | — | ~1.1k | Automated safety check: Pass | GPL-3.0 |
stacks-network/stacks-core
Review repository changes as they would be reviewed in a pull request.
damus-io/damus
Fast-forward master and every git worktree branch up to a target ref (default github/master), skipping any worktree with unmerged commits.
damus-io/damus
Process conversations or chat logs to identify reported bugs, search for existing GitHub issues, update existing issues when new undocumented details are discovered, and create new issues for…
ApocData/ApocData-skill
A-share data service with structured announcement parsing: every announcement carries an AI summary, category, importance level and sentiment, fully traceable to source.
damus-io/damus
Prepare the CHANGELOG.md for a Damus release by running the changelog script, curating the output, and committing the result.
dex-original/okx-agent-trade-kit
A skill your agent uses when the user asks about: 'any crypto news', 'latest news', 'market update', 'daily briefing', 'BTC news', 'ETH news', 'news on SOL', 'search SEC ETF', 'regulation news'…
moonpay/skills
A skill your agent uses when accessing Alchemy APIs for RPC calls, token balances, NFT metadata, asset transfers, transaction simulation, or Alchemy-specific features.
moonpay/skills
Integrates Alchemy blockchain APIs using an API key. An agent skill from moonpay/skills.
moonpay/skills
Query blockchain data via Allium APIs. An agent skill from moonpay/skills.
moonpay/skills
Paid API marketplace for AI agents via Corbits. An agent skill from moonpay/skills.
moonpay/skills
Blockchain analytics via Dune REST API — execute DuneSQL queries against live on-chain data, discover decoded contract tables, and monitor credit usage.
moonpay/skills
Set up the MoonPay CLI, authenticate, and manage local wallets.
Works with
Show MoonPay wallet balances in a compatible CLI status line using a local cache and refresh script. Moonpay Wallet Statusline is an agent skill from moonpay/skills. Show MoonPay wallet balances in a compatible CLI status line using a local cache and refresh script.
Moonpay Wallet Statusline fits situations like: the user asks to show balances in the status bar; add wallet to the CLI status line; wants a persistent balance display while working.
Run `npx skills add moonpay/skills --skill moonpay-wallet-statusline -a claude-code`. Or copy the skill folder (skills/moonpay-wallet-statusline in moonpay/skills) into .claude/skills/moonpay-wallet-statusline in your project. Claude Code loads it when a task matches its description.
Run `npx skills add moonpay/skills --skill moonpay-wallet-statusline -a codex`. Or copy the skill folder (skills/moonpay-wallet-statusline in moonpay/skills) into .agents/skills/moonpay-wallet-statusline 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 moonpay/skills --skill moonpay-wallet-statusline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/moonpay-wallet-statusline, .gemini/skills/moonpay-wallet-statusline, .github/skills/moonpay-wallet-statusline and .opencode/skills/moonpay-wallet-statusline in your project.
Going by SKILL.md and its folder, Moonpay Wallet Statusline needs the command-line tools its instructions call (jq, bash and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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. Review the folder before installing.
Moonpay Wallet Statusline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k 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 Moonpay Wallet Statusline: Stacks PR Review (stacks-network/stacks-core, 3.1k stars), Ff Worktrees (damus-io/damus, 2.1k stars), Filing User Bug Reports (damus-io/damus, 2.1k stars) and Apocdata (ApocData/ApocData-skill, 104 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
moonpay (a GitHub organization) maintains it in moonpay/skills, which has 113 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on September 10, 2026.
Source: moonpay/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.