Skill181 repo starsupdated 3d ago
carbon-badge
Generate a shields.io badge of your Claude Code carbon footprint for your READMEs
Install in Claude Code
Copygit clone --depth 1 https://github.com/gwittebolle/claude-carbon /tmp/carbon-badge && cp -r /tmp/carbon-badge/skills/carbon-badge ~/.claude/skills/carbon-badgeThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
Run the following bash script and present the output to the user.
```bash
#!/usr/bin/env bash
# Locate the install wired into the status line (honours CLAUDE_CONFIG_DIR),
# then fall back to CLAUDE_PLUGIN_ROOT / CLAUDE_CARBON_DIR / the default path.
CFG="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
REPO_DIR=""
if command -v jq >/dev/null 2>&1 && [ -f "$CFG/settings.json" ]; then
SL_CMD="$(jq -r '.statusLine.command // empty' "$CFG/settings.json" 2>/dev/null)"
# statusLine.command stores a shell-escaped path: expand ~ and unescape spaces
SL_CMD="${SL_CMD//\\ / }"; SL_CMD="${SL_CMD/#\~/$HOME}"
[ -n "$SL_CMD" ] && [ -f "$SL_CMD" ] && REPO_DIR="$(cd "$(dirname "$SL_CMD")/.." 2>/dev/null && pwd)"
fi
[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && REPO_DIR="$CLAUDE_PLUGIN_ROOT"
[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_CARBON_DIR:-}" ] && REPO_DIR="$CLAUDE_CARBON_DIR"
if [ -z "$REPO_DIR" ]; then
# Pure marketplace installs reach here: no statusLine.command in settings.json and
# no CLAUDE_PLUGIN_ROOT in a skill's bash env. Pick the newest cached plugin copy,
# keeping only candidates that ship the badge script.
CACHE_LATEST=""
for D in "$CFG/plugins/cache"/*/claude-carbon/*/; do
[ -f "${D}scripts/generate-badge.sh" ] || continue
if [ -z "$CACHE_LATEST" ] || [ "$(printf '%s\n%s\n' "$CACHE_LATEST" "$D" | sort -V | tail -1)" = "$D" ]; then
CACHE_LATEST="$D"
fi
done
[ -n "$CACHE_LATEST" ] && REPO_DIR="${CACHE_LATEST%/}"
fi
[ -z "$REPO_DIR" ] && REPO_DIR="$HOME/code/claude-carbon"
bash "$REPO_DIR/scripts/generate-badge.sh"
```
The script prints a ready-to-paste markdown snippet and the raw badge URL. Show both exactly as printed — never recompute, reformat or re-escape the number or the URL. Tell the user to paste the markdown line into any README of theirs; the badge is a static image, so re-running `/carbon-badge` is how they refresh the figure.
If the script is missing (an install that predates the badge), suggest `/carbon-update`.More from this repository
carbon-cardSkill
Generate shareable PNG report cards of your Claude Code carbon footprint
carbon-prSkill
Post the development footprint of the current branch as a sticky PR comment
carbon-reportSkill
Display CO2 emissions report for Claude Code sessions
carbon-updateSkill
Update claude-carbon to the latest version and re-price history (CO2-only)