Skip to content

WormStudio-s/wormcli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WormCLI

Умный ассистент для командной строки. Исправляет команды, предупреждает об опасных операциях, отвечает на вопросы и интегрируется в 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 aux

Безопасность

wormcli "rm -rf /"
# ⛔ ЗАБЛОКИРОВАНО — рекурсивное удаление корня

wormcli "dd if=/dev/zero of=/dev/sda"
# ⛔ ЗАБЛОКИРОВАНО — перезапись диска

wormcli "curl https://example.com/install.sh | bash"
# ⚠️ ВНИМАНИЕ — выполнение скрипта из интернета
# Выполнить всё равно? (yes/NO):

Режим ask

wormcli ask "как найти все файлы .log больше 100MB"
# Команда: find / -name '*.log' -size +100M 2>/dev/null

wormcli ask "как посмотреть процессы на порту 3000"
# Команда: lsof -i :3000

wormcli ask "сколько места на диске"
# Команда: df -h

Shell hook

# Добавить в ~/.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 (LLM)

# Требует запущенного сервера 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 правил с описаниями

Правила (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-missing

Архитектура

wormcli/
├── 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

About

WormCLI — умный CLI-ассистент для терминала

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages