snakehug
Anaconda-Sandbox/snakehugСкилл для Claude Code, решающий проблему активации conda/mamba/pixi в неинтерактивных оболочках. Один раз настраивает окружение, сохраняет конфигурацию в CLAUDE.md и автоматически применяет её в последующих сессиях.
Установка
git clone https://github.com/Anaconda-Sandbox/snakehug.gitREADME
snakehug 🐍🦀🤗
Автоматическая активация conda/mamba/pixi окружений для Claude Code. Никаких ошибок
conda activateв неинтерактивных оболочках — Claude спрашивает один раз и запоминает навсегда.
Зачем это нужно
AI-ассистенты запускают неинтерактивные оболочки, которые не загружают конфигурацию shell. Из-за этого conda activate завершается ошибкой «Run 'conda init' first», Python-команды выполняются в неправильном окружении, а тесты падают из-за отсутствующих зависимостей.
Этот скилл обучает Claude корректным паттернам активации и запоминает выбор пользователя:
| Без snakehug | С snakehug |
|---|---|
conda activate завершается ошибкой | Работает автоматически |
| Неправильное Python-окружение | Правильное окружение каждый раз |
| Ручная настройка в каждой сессии | Однократная интерактивная настройка |
| Забывает между сессиями | Сохраняется в CLAUDE.md проекта |
Как это работает
- Первый запуск — Claude определяет доступные менеджеры окружений, спрашивает какой использовать, выводит список окружений и уточняет нужное
- Сохранение конфигурации — полная рабочая команда активации сохраняется в
CLAUDE.mdпроекта - Последующие запуски — автоматически использует сохранённый паттерн
Ключевая идея: сохранять полную команду активации, работающую в чистой оболочке, а не просто имя окружения.
Установка
Глобальный скилл
mkdir -p ~/.claude/skills
git clone https://github.com/Anaconda-Sandbox/snakehug ~/.claude/skills/snakehugПример сессии
Вы: run pytest
Claude: Сначала нужно настроить Python-окружение. Проверяю доступные варианты...
Какой менеджер окружений вы используете?
○ conda
○ mamba
○ micromamba
○ none
Вы: [выбирает conda]
Claude: Найдены следующие окружения. Какое использовать для этого проекта?
○ weather-dashboard (/Users/you/miniconda3/envs/weather-dashboard)
○ data-science (/Users/you/miniconda3/envs/data-science)
○ Создать новое окружение
Вы: [выбирает weather-dashboard]
Claude: Проверяю активацию... ✓ Python 3.11.14
Сохранено в CLAUDE.md. Запускаю pytest...
===== test session starts =====
collected 6 items
test_weather.py ✓✓✓✓✓✓
===== 6 passed in 0.03s =====
В последующих сессиях сохранённое окружение используется автоматически.
Поддерживаемые инструменты
| Менеджер | Метод активации |
|---|---|
| conda | source <prefix>/etc/profile.d/conda.sh && conda run |
| mamba | eval "$(mamba shell hook --shell bash)" && mamba run |
| micromamba | eval "$(micromamba shell hook --shell bash)" && micromamba run |
| pixi | pixi run (на основе проекта) |
Автоматически оборачиваемые команды
- Python: python, python3
- Менеджеры пакетов: pip, pip3
- Тестирование: pytest, py.test, tox, nox
- Линтинг: mypy, ruff, black, isort, flake8, pylint
- Ноутбуки: jupyter, ipython, jlpm
- Инструменты сборки: poetry, pdm, hatch, flit
- Веб-фреймворки: uvicorn, gunicorn, flask, django-admin, celery
- Прочее: pre-commit
Структура файлов
snakehug/
├── .claude/skills/snakehug/
│ ├── SKILL.md # Основные инструкции скилла
│ └── activation-patterns.md # Справочник паттернов для разных платформ и оболочек
├── README.md
├── BLOG_POST.md # История разработки и извлечённые уроки
└── LICENSE
Устранение неполадок
Если активация перестала работать:
- Удалите раздел «Python Environment» из
CLAUDE.mdвашего проекта - Попросите Claude выполнить любую Python-команду
- Claude повторно запустит процесс настройки
Совместимость
Скилл использует открытый стандарт Agent Skills и должен работать с:
- Claude Code (
~/.claude/skills/) - Cursor (
.cursor/skills/) - VS Code, GitHub Copilot и другими совместимыми агентами
Лицензия
MIT