carbon-badge — скилл для Claude Code: что делает и как установить
Генерирует бейдж shields.io с оценкой углеродного следа Claude Code за месяц. Пригодится для добавления статистики в личный README профиля GitHub.
npx skills add gwittebolle/claude-carbon --skill carbon-badge -a claude-codeЧто делает carbon-badge
Скилл запускает Bash-скрипт, который находит локальную установку claude-carbon через settings.json, переменные окружения или кэш плагинов. На Windows пути адаптируются через cygpath. Для разбора конфигурации скрипту требуется утилита jq.
В результате агент выдаёт готовую разметку Markdown для shields.io, прямую ссылку на картинку и пояснения к методике расчёта. Значения генерируются как статическое изображение с датой месяца.
Бейдж рассчитан строго на личный профиль разработчика или персональный репозиторий, а не на команды. Если скрипт generate-badge.sh отсутствует в старой версии, придётся сначала вызвать /carbon-update.
Какие задачи решает
- добавить в профиль GitHub бейдж с экологическим следом от работы в Claude Code
- сформировать ссылку на shields.io с показателями текущего месяца
- получить готовый Markdown-код со ссылкой на методику расчёта
- обновить показатели углеродного следа в описании персонального проекта
Примеры запросов агенту
- Сгенерируй бейдж с углеродным следом через /carbon-badge
- Запусти /carbon-badge и покажи Markdown для README
- Сделай shields.io бейдж с моим carbon footprint
Как установить carbon-badge
1Через Skills CLI (Vercel)
npx skills add gwittebolle/claude-carbon --skill carbon-badge -a claude-code2Вручную: положить файлы
~/.claude/skills/carbon-badge/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/carbon-badge/
1Через Skills CLI (Vercel)
npx skills add gwittebolle/claude-carbon --skill carbon-badge -a codex2Вручную: положить файлы
.agents/skills/carbon-badge/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add gwittebolle/claude-carbon --skill carbon-badge -a cursor2Вручную: положить файлы
.cursor/skills/carbon-badge/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install gwittebolle/claude-carbon carbon-badge2Вручную: положить файлы
.github/skills/carbon-badge/SKILL.md1Через Skills CLI (Vercel)
npx skills add gwittebolle/claude-carbon --skill carbon-badge -a gemini-cli2Командой платформы
gemini skills install https://github.com/gwittebolle/claude-carbon --path skills/carbon-badgeВручную: положить файлы
.devin/skills/carbon-badge/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add gwittebolle/claude-carbon --skill carbon-badge -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о carbon-badge
Как установить carbon-badge в Claude Code?
Выполните команду npx skills add gwittebolle/claude-carbon --skill carbon-badge -a claude-code. Файл навыка сохранится в ~/.claude/skills/carbon-badge/SKILL.md.
Что делает скилл carbon-badge?
Он запускает локальный скрипт генерации бейджа shields.io с оценкой выбросов углерода за месяц и выводит готовый код для вставки в Markdown.
Как обновлять показатели на бейдже?
Картинка статична, поэтому данные автоматически не обновляются. Для актуализации цифр и месяца нужно повторно запустить /carbon-badge.
Исходный текст
SKILL.md · MIT
---
name: carbon-badge
description: Generate a shields.io badge of your Claude Code carbon footprint for your READMEs
---
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.
# Windows (Git Bash): CLAUDE_* variables and the paths stored in settings.json can
# arrive in the native "C:\Users\..." spelling, which bash cannot open. cygpath
# ships with Git for Windows; everywhere else this is the identity function.
ccp() {
case "${OSTYPE:-}" in msys*|cygwin*) ;; *) printf '%s' "$1"; return 0 ;; esac
case "$1" in
[A-Za-z]:[\\/]*|*\\*) cygpath -u "$1" 2>/dev/null || printf '%s' "$1" ;;
*) printf '%s' "$1" ;;
esac
}
CFG="$(ccp "${CLAUDE_CONFIG_DIR:-$HOME/.claude}")"
# A jq the installer fetched into the data folder (a Mac older than macOS 15 has none)
if ! command -v jq >/dev/null 2>&1 && [ -x "$CFG/claude-carbon/bin/jq" ]; then PATH="$CFG/claude-carbon/bin:$PATH"; fi
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 path, shell-escaped, or in double quotes on Windows:
# unquote, expand ~ and unescape spaces
SL_CMD="${SL_CMD#\"}"; SL_CMD="${SL_CMD%\"}"
SL_CMD="${SL_CMD//\\ / }"; SL_CMD="${SL_CMD/#\~/$HOME}"; SL_CMD="$(ccp "$SL_CMD")"
[ -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="$(ccp "$CLAUDE_PLUGIN_ROOT")"
[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_CARBON_DIR:-}" ] && REPO_DIR="$(ccp "$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, the raw badge URL and a short note on where the badge belongs. Show all of it exactly as printed — never recompute, reformat or re-escape the number, the month or the URL. The badge is one developer's total, dated with the month it was generated, and it links to the methodology. It belongs in the user's profile README or a personal project, not in a team or organisation repository. The badge is a static image, so re-running `/carbon-badge` is how they refresh the figure and its month.
If the script is missing (an install that predates the badge), suggest `/carbon-update`.
© gwittebolle · MIT · gwittebolle/claude-carbon