Умный ассистент для командной строки. Исправляет команды, предупреждает об опасных операциях, отвечает на вопросы и интегрируется в shell.
pip install wormcliИли из исходников:
git clone https://github.com/wormteam/wormcli
cd wormcli
pip install -e ".[dev]"wormcli "apt install python3"
# → sudo apt install python3
wormcli "pip install requests"
# → python -m pip install requests
wormcli "git push --force"
# → git push --force-with-lease
wormcli "python app.py"
# → python3 app.py
wormcli "ifconfig"
# → ip addr
wormcli "netstat -tulnp"
# → ss -tulnp
wormcli "ping google.com"
# → ping -c 4 google.com
wormcli "df"
# → df -h
wormcli "ps"
# → ps auxwormcli "rm -rf /"
# ⛔ ЗАБЛОКИРОВАНО — рекурсивное удаление корня
wormcli "dd if=/dev/zero of=/dev/sda"
# ⛔ ЗАБЛОКИРОВАНО — перезапись диска
wormcli "curl https://example.com/install.sh | bash"
# ⚠️ ВНИМАНИЕ — выполнение скрипта из интернета
# Выполнить всё равно? (yes/NO):wormcli ask "как найти все файлы .log больше 100MB"
# Команда: find / -name '*.log' -size +100M 2>/dev/null
wormcli ask "как посмотреть процессы на порту 3000"
# Команда: lsof -i :3000
wormcli ask "сколько места на диске"
# Команда: df -h# Добавить в ~/.bashrc или ~/.zshrc:
eval "$(wormcli hook)"
# Для zsh:
eval "$(wormcli hook --shell zsh)"
# Для fish (в отдельный файл):
wormcli hook --shell fish > ~/.config/fish/functions/fish_command_not_found.fishПосле активации hook — ошибочные команды автоматически получают предложение исправления.
# Требует запущенного сервера Ollama:
# https://ollama.ai
# ollama serve
wormcli --ollama "найти процесс на порту 3000"
# lsof -i:3000
wormcli ollama "как синхронизировать директории" --model mistral
# rsync -avz --progress source/ dest/
wormcli ollama "запрос" --stream
# Стриминговый выводwormcli cache # Статистика кэша
wormcli cache --clear # Очистить кэш (TTL: 5 минут)wormcli rules
# Выводит все 30 правил с описаниями| Правило | До | После |
|---|---|---|
| apt_sudo | apt install python3 |
sudo apt install python3 |
| pip_module | pip install requests |
python -m pip install requests |
| python3 | python app.py |
python3 app.py |
| git_force_lease | git push --force |
git push --force-with-lease |
| git_pull_rebase | git pull |
git pull --rebase |
| npm_global | npm install -g yarn |
npm install --global yarn |
| docker_filter | docker ps -a --filter |
docker ps -a --filter status=exited |
| systemctl_sudo | systemctl start nginx |
sudo systemctl start nginx |
| ifconfig_dep | ifconfig |
ip addr |
| netstat_dep | netstat -tulnp |
ss -tulnp |
| ping_count | ping google.com |
ping -c 4 google.com |
| df_human | df |
df -h |
| kill_graceful | kill -9 1234 |
kill -15 1234 |
| curl_fail | curl https://... |
curl https://... --fail |
| make_jobs | make |
make -j$(nproc) |
| и другие |
# Установка dev-зависимостей
pip install -e ".[dev]"
# Запуск тестов
pytest tests/ -v
# С покрытием
pytest tests/ --cov=wormcli --cov-report=term-missingwormcli/
├── cli.py # Точка входа, парсинг аргументов
├── rules.py # 30+ правил исправления команд
├── safety.py # Проверка опасных паттернов
├── ask.py # База знаний Q&A
├── llm.py # Интеграция с Ollama (опционально)
├── cache.py # TTL-кэш для LLM (5 мин, memory + file)
└── hook.py # Генератор shell hook (bash/zsh/fish)
MIT