Рубрика «cli» - 2

Всё началось с бага, на который я убил вечер. В Tauri фронтенд вызывает Rust-команды так:

const user = await invoke("get_user", { userId: 42 });

Строка с именем команды, объект с аргументами, никакой проверки типов. У меня в Rust аргумент назывался user_id, и я честно передал user_id с фронта. В рантайме прилетело что-то вроде invalid args 'userId' for command 'get_user' — Tauri по умолчанию переименовывает snake_case-аргументы в camelCase. Это написано в документации, я это даже знал. Но знание, которое не проверяет компилятор, — не знание, а примета.

Дальше по классике: возвращаемый тип у invoke — anyЧитать полностью »

Give a man a gun and he can rob a bank. Give a man a bank and he can rob the world.

Предыстория

Занимаясь bug bounty, я постоянно сталкивался с одной проблемой — существующие инструменты либо устарели, либо закрытые, либо написаны так что добавить свой плагин целый квест. Nikto последний раз серьёзно обновлялся много лет назад, а современных асинхронных альтернатив на Python практически нет.

Так появился WebScan — асинхронный CLI-сканер безопасности на чистом Python с модульной архитектурой. За неделю с момента релиза проект получил внешних контрибьюторов и вырос до 15 плагинов.

Что умеет CLI-сканер

Читать полностью »

День 1. "Мне больше не придётся крякать Фотошоп и Вегас!".
День 2. Научился блюрить лица и айпишники через командную строку.
День 4. Провёл сравнительное тестирование аппаратных и программных видеокодеков.
День 8. Натравил ИИ-агентов на задачу по монтажу видео.
День 16. Объясняю жене, почему не могу просто запустить Paint и нажать две кнопки.

В последнее время моя работа во многом сосредоточена на вопросах Remote Desktop и стриминга медиа в реальном времени. Я часто использую FFmpeg в работе - и со временем всё чаще и чаще.

Читать полностью »

Когда сайт не открывается, браузер показывает «Не удалось установить соединение». Это всё, что он знает. Но «не открывается» - это десяток разных историй. ISP подменил DNS-ответ. Провайдер режет TCP по IP. ТСПУ читает SNI в TLS ClientHello и сбрасывает соединение. Сайт открывается, но возвращает 200 OK с заглушкой «доступ ограничен». Каждый случай требует своих действий - и, что важнее, означает разные вещи о том, где именно стоит фильтр.

Читать полностью »

В данной статье я описал, с какими проблемами я встретился, будучи студентом, который на постоянной основе использует obsidian, из-за которых я создал свой экспортер подграфа в obsidian.


Читать полностью »

У любой удобной штуки есть момент, когда она начинает раздражать.

С Codex у меня это случилось, когда аккаунтов стало больше одного. Один рабочий, один личный, один запасной. И дальше начинается обычная бытовая возня: то не тот auth.json, то уже кончился лимит, то вообще непонятно, под каким профилем сейчас запущен CLI.

Можно, конечно, хранить несколько файлов и копировать их руками:

cp auth-work.json ~/.codex/auth.json

Но это ровно тот способ, который сначала кажется нормальным, а потом внезапно бесит каждый день.

Я в итоге написал маленький bash-скрипт codex-auth, который делает три простые вещи:

Всё началось на второй паре по системному программированию. Нам дали задачу: написать CLI-утилиту для анализа логов - парсить файл, фильтровать записи по уровню ошибок, считать статистику, выводить красиво в консоль. "Ну понятно", - открыл я vim и началось мое долгое приключение...

Неделя. Две. Утилита называлась logz, она умела читать логи nginx и apache, фильтровать по уровню (DEBUG, INFO, WARN, ERROR), по дате, по IP, выводила топ адресов с наибольшим числом ошибок, рисовала простенький bar-chart прямо в терминале через unicode-символы. Только вот я сидел как-то вечером, запустил wc -l main.c - 3147 строкЧитать полностью »

Манифест персонального агентного минимализма - от инженера, который 10 лет строил enterprise-системы и устал от сложности

Кто я и зачем пишу

Меня зовут Егор Зиновьев, я IT-архитектор. Десять лет в enterprise - Java, DevOps, fintech, команды до 70 человек, 20+ систем.

Последние месяцы я работаю с персональным AI-агентом, который закрывает 100% моих DevSecOps-задач - от покупки вертуалок до security-аудита Docker-образов. Один агент, без фреймворков, без оркестраторов, без векторных баз данных.

Эта статья - про архитектуру, которая за этим стоит. Я назвал её Jarvis Pattern.

Проблема: индустрия продаёт строительные леса как архитектуру

Читать полностью »

Привет. Делаю расширение для VS Code, которое даёт OpenCode CLI полноценный графический интерфейс.

Суть простая: OpenCode — мощный CLI-агент, но работать с ним в терминале на длинных сессиях не всегда удобно. Хотелось нормально видеть, что происходит — tool calls, изменения файлов, контекст, токены. Не форк, не отдельный продукт — именно UI-слой поверх OpenCode, который общается с ним через SDK и SSE-стриминг.

Если вы уже работаете с OpenCode и у вас есть существующие сессии — можно продолжить работу с ними прямо через расширение. Вся история, контекст, tool calls — всё подхватывается.

Что умеет

Читать полностью »

Я студент и соло‑разработчик, который только начинает заходить в devops‑тематику. Сам я не админ и не держу в проде десяток серверов, поэтому решил не выдумывать «боли» из головы, а посмотреть, на что реально жалуются люди в статьях и форумах.

Одна жалоба повторялась достаточно часто: «Когда что‑то падает, приходится обходить несколько серверов, смотреть логи по отдельности и пытаться сложить картину вручную. ELK/syslog решают, но ради пары сервисов это перебор.»

После этого я решил собрать небольшой прототип LogRangerЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js