Kroma — это лёгкая и мощная библиотека для красивого вывода в терминал на Python.
Kroma делает цветной и стильный терминальный вывод проще, чем colorama, и даёт больше возможностей, чем rich.
#Kroma #Python #Terminal #CLI #DevTools #Rich #Colorama
https://github.com/PowerPCFan/kroma
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - PowerPCFan/kroma
Contribute to PowerPCFan/kroma development by creating an account on GitHub.
1 4👍2
JustHTML — это Python‑парсер HTML5, который «просто работает»: без C‑расширений, системных библиотек и сложного API.
Модуль реализует актуальный WHATWG HTML5 стандарт, поэтому если браузер может распарсить документ, JustHTML тоже сможет, включая сложные правила обработки ошибок.
Он возвращает обычные Python‑объекты и позволяет искать элементы по знакомым CSS‑селекторам через один метод query(), что делает разбор и обход дерева максимально удобным.
#python #html5 #parsing #webscraping #webdev #pythondev #cli #justhtml
https://github.com/EmilStenstrom/justhtml
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - EmilStenstrom/justhtml: A pure Python HTML5 parser that just works. No C extensions to compile. No system dependencies…
A pure Python HTML5 parser that just works. No C extensions to compile. No system dependencies to install. No complex API to learn. - EmilStenstrom/justhtml
1👍2⚡1🔥1
x-ray — это небольшая, но очень полезная Python‑библиотека и CLI‑утилита для поиска «плохих» редактирований в PDF: тех случаев, когда поверх текста просто нарисовали чёрный прямоугольник, но сам текст под ним по‑прежнему можно выделить и прочитать.
from pathlib import Path
from pprint import pprint
import xray
# 1. Указываем путь к PDF
pdf_path = Path("docs/sample.pdf")
# 2. Запускаем проверку: xray сам откроет файл и проанализирует его
bad_redactions = xray.inspect(pdf_path)
# 3. Структура результата:
# {
# 1: [
# {
# "bbox": (x1, y1, x2, y2), # координаты «чёрного прямоугольника»
# "text": "утёкший текст под ним"
# },
# ...
# ],
# 2: [...],
# ...
# }
pprint(bad_redactions)
# 4. Пример пост‑обработки: просто напечатаем найденные утечки по страницам
if not bad_redactions:
print("Плохих редактирований не найдено.")
else:
for page, items in bad_redactions.items():
print(f"\nСтраница {page}:")
for item in items:
bbox = item["bbox"]
text = item["text"]
print(f" BBox: {bbox}")
print(f" Текст: {text}")
Ключевые моменты: xray.inspect(...) принимает путь, URL или bytes; возвращает словарь, где ключи — номера страниц, а значения — списки словарей с координатами прямоугольника (bbox) и текстом, который под ним всё ещё читается.
#xray #Python #PDF #Redaction #BadRedactions #InfoSec #Privacy #LegalTech #PyMuPDF #CLI
https://github.com/freelawproject/x-ray
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - freelawproject/x-ray: A tool to detect whether a PDF has a bad redaction
A tool to detect whether a PDF has a bad redaction - freelawproject/x-ray
1🔥3👍1
tablediff — это минималистичный CLI‑инструмент для diff’а данных между двумя таблицами (dev vs prod, разные БД, миграции и пр.), построенный поверх reladiff и уже проверенный с DuckDB и Snowflake.
tablediff TABLE_A TABLE_B --pk id --conn duckdb://./sample.duckdb
или
tablediff DEV.MART.USERS PROD.MART.USERS --pk USER_ID --conn "snowflake://..."
#tablediff #Python #CLI #DataEngineering #DuckDB #Snowflake #DataQuality #DataDiff #ETL #Analytics
https://github.com/oleg-agapov/tablediff
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - oleg-agapov/tablediff: CLI tool for data diffing between two tables
CLI tool for data diffing between two tables. Contribute to oleg-agapov/tablediff development by creating an account on GitHub.
1 3👍1
stocksTUI — это минималистичный TUI‑клиент для терминала, который показывает котировки акций и крипты, новости и исторические графики прямо в shell, без браузера.
pipx install stocksTUI
stockstui # запуск
stockstui -h # краткая помощь
stockstui --man # полный мануал
stockstui --history TSLA.stockstui --news "NVDA,AMD". stockstui --options AAPL. stockstui --session-list "EV Stocks=TSLA,RIVN,LCID". Для поста про stocksTUI хорошо подойдут такие хэштеги:
#stocksTUI #Python #TUI #Terminal #Stocks #Crypto #Investing #MarketData #FRED #Textual #yfinance #CLI #DevTools
https://github.com/andriy-git/stocksTUI
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - andriy-git/stocksTUI: StocksTUI: Real-time stock market data in your terminal.
StocksTUI: Real-time stock market data in your terminal. - andriy-git/stocksTUI
1⚡4 2🔥1
webctl — это CLI-обёртка над Chromium/Playwright для автоматизации браузера людьми и AI‑агентами, с акцентом на фильтрацию вывода до попадания в контекст LLM и удобную интеграцию со skill‑системами (Claude, Goose и др.).
webctl start, webctl navigate "https://example.com", webctl click 'role=button name~="Submit"', webctl snapshot --interactive-only. webctl snapshot --interactive-only --limit 30 | grep -i "submit" или ... --format jsonl | jq ....webctl init генерирует skill‑/prompt‑файлы для Claude Code, Goose, Gemini, Copilot, Codex, чтобы агент знал, как вызывать webctl. .claude/skills/webctl/SKILL.md, .agents/skills/... и т.п.), загружаются по требованию, чтобы не засорять системный промпт. navigate, back/forward/reload, snapshot, query, screenshot.click, type, select, check, press, scroll, wait ..., плюс status, console, save для сессии.#webctl #Playwright #CLI #BrowserAutomation #AIAgents #LLM #UnixTools #Chromium #DevTools #Automation
https://github.com/cosinusalpha/webctl
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - cosinusalpha/webctl: Browser automation via CLI — for humans and agents
Browser automation via CLI — for humans and agents - cosinusalpha/webctl
1👍2🔥1 1
pycaniuse — это маленький CLI‑инструмент на Python, который позволяет спрашивать caniuse.com прямо из терминала: ввёл запрос — получил сводку по поддержке фич браузерами, без переключения в браузер.
--full даёт интерактивное TUI: можно стрелками/hjkl листать браузеры и версии, вкладки с деталями, заметками и ресурсами. pip install pycaniuse -
caniuse flexbox -
caniuse "css grid" -
caniuse flexbox-gap --full #Python #CLI #WebDev #CanIUse #BrowserCompatibility #Frontend #DeveloperTools
https://github.com/viseshrp/pycaniuse
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - viseshrp/pycaniuse: Query caniuse.com from the terminal
Query caniuse.com from the terminal. Contribute to viseshrp/pycaniuse development by creating an account on GitHub.
Tallyman — это CLI‑утилита, которая показывает не только размер, но и «форму» вашего проекта: сколько строк кода, DevOps‑конфига, дизайна, документации, спецификаций и данных.
.gitignore, умеет интерактивно настроить исключения и spec‑директории, сохраняет конфиг в .tally-config.toml.--image / --image-light) с красивой сводкой для README, докладов и соцсетей.uv tool install tallyman-metrics
tallyman # текущая папка
tallyman --image # PNG-карточка проекта
#python #cli #devtools #metrics #loc #tallyman #uv
https://github.com/mikeckennedy/tallyman
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mikeckennedy/tallyman: A command-line tool that summarizes the size of a codebase by language, showing lines of code with…
A command-line tool that summarizes the size of a codebase by language, showing lines of code with and without comments and blank lines. - mikeckennedy/tallyman
👍3⚡2🔥1
Pywho — удобный CLI‑инспектор для Python‑окружения: одной командой показывает, какой интерпретатор и venv запущены, куда смотрит
sys.path, куда реально резолвятся импорты.pywho выводит интерпретатор (путь, версия, архитектура), активный venv (тип: venv/virtualenv/uv/conda/poetry/pipenv и т.п.), пути site-packages, менеджер пакетов (pip/uv/conda/poetry/pipenv/pyenv) и полный sys.path.Есть режим
pywho --json и pywho --packages (список установленных пакетов с версиями и путями) для CI/issue‑репортов.pywho trace <module> показывает, из какого файла реально грузится модуль, его тип (stdlib/third-party/local), кэширован ли он и какой порядок поиска по sys.path был использован.- Поиск шадоу‑модулей по проекту
pywho scan . проходит дерево проекта и находит файлы, которые шадовят модули stdlib или установленные пакеты, с градацией по важности: HIGH (stdlib), MEDIUM (third-party).Стандартные мусорные директории вроде
.venv, __pycache__, node_modules, dist, build, .git автоматически игнорируются.Можно использовать как библиотеку:
-
inspect_environment() — объект с инфой про интерпретатор, venv, менеджер пакетов, пути, плюс to_dict() для JSON. -
trace_import("name") — программный аналог pywho trace с полями resolved_path, module_type, is_cached, shadows. -
scan_path(Path(".")) — результаты сканирования на шадоу с уровнем серьёзности.- “Works on my machine” debug: попросить пользователя выполнить
pywho --json --packages и приложить результат к issue или в чат.- Онбординг:
pywho для быстрой проверки, что окружение настроено как надо. - CI:
pywho --json --packages > env.json как снимок окружения сборки.#python #pywho #debugging #virtualenv #asyncio #packagemanagement #devtools #cli #stdlib #import #shadowing
https://github.com/AhsanSheraz/pywho
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - AhsanSheraz/pywho: One command to explain your Python environment, trace imports, and detect shadows.
One command to explain your Python environment, trace imports, and detect shadows. - AhsanSheraz/pywho
1🔥3 2👍1
PrettyTable — это классическая и невероятно удобная библиотека для Python, которая позволяет красиво выводить табличные данные прямо в терминале (в виде ASCII-таблиц) и не только!
Если вам нужно быстро визуализировать логи, статистику или просто структурировать вывод в консоли, этот инструмент сэкономит кучу времени.
.csv файлов и SQL-баз данных (через курсор).ColorTable для добавления ANSI-цветов и создания стильных терминальных интерфейсов.pip install prettytablefrom prettytable import PrettyTable
table = PrettyTable(["Город", "Население"])
table.add_row(["Аделаида", 1158259])
table.add_row(["Брисбен", 1857594])
print(table)
#Python #PrettyTable #Terminal #CLI #DataScience #Backend #DevTools #OpenSource #Programming
https://github.com/prettytable/prettytable
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - prettytable/prettytable at opensourceprojects.dev
Display tabular data in a visually appealing ASCII table format - prettytable/prettytable
1👍3🔥2 1
Typerform — это генератор типобезопасных CLI-интерфейсов, работающий на базе Pydantic и Prompt-Toolkit.
Он превращает ваши Pydantic-модели в профессиональные, интерактивные пошаговые CLI-визарды. Забудьте про написание скучных циклов ввода
input() и ручную валидацию — теперь за пользовательский опыт отвечают ваши схемы данных!min_length, ge, EmailStr).:b или :back, чтобы вернуться к предыдущему полю и отредактировать его.when).SecretStr (идеально для паролей и API-ключей).Enum и Literal.List[T] — визард сам запустит цикл для добавления нескольких элементов.pip install pytypeformfrom typing import Literal
from pydantic import BaseModel, Field
from typeform import form
class SetupConfig(BaseModel):
project_name: str = Field(description="Project Name", min_length=3)
environment: Literal["dev", "staging", "prod"] = Field(default="dev")
# Генерация визарда одной строкой!
config = form(SetupConfig, title="Project Setup")
print(config.model_dump())
#Python #Pydantic #CLI #Backend #DevTools #Programming #OpenSource
https://github.com/STHITAPRAJNAS/typeform
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - STHITAPRAJNAS/typeform: A Type-Safe UI/CLI Generator powered by Pydantic.
A Type-Safe UI/CLI Generator powered by Pydantic. Contribute to STHITAPRAJNAS/typeform development by creating an account on GitHub.
2🔥4⚡1👍1
Datanomy - это консольная утилита для изучения "анатомии" ваших столбцевых (columnar) файлов данных.
Она предоставляет удобный интерактивный интерфейс прямо в терминале для просмотра структуры, метаданных и внутренней организации ваших файлов. На данный момент инструмент поддерживает работу с форматом Parquet.
Через современный пакетный менеджер
uv:uv tool install datanomy
или через классический
pip:pip install datanomy
datanomy data.parquet
Если не хотите устанавливать пакет глобально, можно запустить на лету (через uvx):
uvx datanomy data.parquet
#Datanomy #Python #DataEngineering #DataScience #Parquet #CLI #OpenSource #Терминал #BigData
https://github.com/raulcd/datanomy
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - raulcd/datanomy: Dissecting data structures
Dissecting data structures. Contribute to raulcd/datanomy development by creating an account on GitHub.
1👍2🔥2 1
Kirokyu — это локальная (local-first) система управления задачами, написанная на Python, с чистой и гибкой модульной архитектурой.
Проект создан для того, чтобы помочь вам организовывать, отслеживать и выполнять задачи в полностью изолированных рабочих пространствах (workspaces). Каждое такое пространство — это отдельный "бункер" данных со своей собственной базой.
Доменное ядро (бизнес-логика) абсолютно не зависит от инфраструктуры. Хранение данных, механизмы доставки и UI — это просто сменные адаптеры. Это значит, что к одной и той же логике вы можете обращаться через три совершенно разных интерфейса:
streamlit run src/kirokyu/adapters/ui/app.py).kirokyu task create "Купить продукты").uvicorn kirokyu.adapters.api.app:app --reload).Легко разделяйте личные и рабочие дела. Каждый воркспейс хранится в отдельном файле базы данных SQLite в директории
~/.kirokyu/workspaces/.kirokyu workspace create personal
kirokyu workspace create work
Благодаря чистой архитектуре, тип базы данных можно сменить одной переменной окружения
KIROKYU_ADAPTER:sqlite — локальная БД (по умолчанию).json — сохранение в JSON-файл.memory — хранение в оперативной памяти (идеально для тестов).#Python #TaskTracker #HexagonalArchitecture #CleanArchitecture #FastAPI #Streamlit #CLI #OpenSource #DevTools
https://github.com/amryounis/kirokyu
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - amryounis/kirokyu: 🚀 Modular task management system built with Hexagonal Architecture. Features a FastAPI backend and…
🚀 Modular task management system built with Hexagonal Architecture. Features a FastAPI backend and Streamlit frontend. - amryounis/kirokyu
2 3👍2🔥1
Photolab - это CLI-инструмент для цветокоррекции фотографий и подготовки их к печати.
Вместо того чтобы вручную крутить ползунки, photolab автоматически генерирует 9 различных вариантов коррекции (от классического Auto Levels до алгоритмов Gray World) и собирает их на одном удобном контакт-листе (contact sheet). Вы можете выбрать лучший вариант "на глаз" или скомбинировать их сильные стороны перед финальным экспортом с ICC-профилями для принтера.
Изначально утилита создавалась для связки Fuji X-T1 (RAW/RAF) + iPhone (HEIC) + принтер Canon PRO-1000, но отлично работает с любыми камерами и устройствами печати.
Инструмент написан на Python (3.11+) и требует C-компилятор в системе для установки rawpy.
git clone https://github.com/dimatosj/fotomagoufis.git
cd fotomagoufis
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
(Если планируете использовать авто-оценку снимков нейросетью, устанавливайте версию pip install -e ".[evaluate]" и задайте переменную среды ANTHROPIC_API_KEY).
#photolab #Python #Photography #CLI #ColorCorrection #OpenSource #ClaudeAI #Print #DevTools
https://github.com/dimatosj/fotomagoufis
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - dimatosj/fotomagoufis
Contribute to dimatosj/fotomagoufis development by creating an account on GitHub.
1⚡3👍2🔥2
Remote CMD - это легковесная Python-утилита (CLI) и API для управления серверами по SSH. Без лишнего оверхеда, сложных конфигураций Ansible или громоздких bash-циклов.
Инструмент идеально подходит для ситуаций, когда вам нужно быстро выполнить команду на нескольких серверах, раскидать файлы или автоматизировать деплой, используя удобный синтаксис прямо "из коробки".
production, web, db).remote-cmd batch-run -t production "df -h /".sudo команд с паролем).ansible.cfg или конфигураций SSH-агента. Установили через pip — и можно работать.# Установка
pip install remote_cmd_manager
# Добавление сервера
remote-cmd host add web-01 192.168.1.10 ubuntu --key ~/.ssh/id_rsa
# Выполнение команды на одном сервере
remote-cmd run web-01 "uptime"
#Python #SSH #DevOps #SysAdmin #CLI #Automation #OpenSource #DevTools #Администрирование
https://github.com/Vae-Scrooge/remote-cmd
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Vae-Scrooge/remote-cmd: A lightweight Python CLI + API for managing servers over SSH. Add hosts, run commands, transfer…
A lightweight Python CLI + API for managing servers over SSH. Add hosts, run commands, transfer files, target groups by tags — no Ansible DSL required. - Vae-Scrooge/remote-cmd
1🔥4👍2 2
Num2words library - это библиотека для Python и удобная консольная утилита, которая переводит числа в слова (прописью) на десятках языков мира.
Она превращает числа вроде
42 в текст вида «сорок два» или «forty-two», умеет формировать порядковые числительные и корректно форматировать денежные суммы для финансовых отчетов или документов.ru), английский (en), испанский (es), французский (fr), немецкий (de), казахский (kz), украинский (uk) и многие другие, в том числе региональные диалекты.to):cardinal (по умолчанию) — обычные количественные числительные («сорок два»).ordinal — порядковые числительные («сорок второй»).currency — денежные суммы с указанием валюты и разменных монет («два евро четырнадцать центов»).year — проговаривание годов («девятнадцать восемьдесят четыре»).В коде Python:
from num2words import num2words
# Обычное число на русском языке
print(num2words(42, lang='ru'))
# -> "сорок два"
# Порядковое числительное
print(num2words(42, to='ordinal', lang='ru'))
# -> "сорок второй"
# На французском
print(num2words(42, lang='fr'))
# -> "quarante-deux"
В командной строке (CLI):
# Базовый вызов
num2words 10001
# -> ten thousand and one
# Денежный формат на испанском
num2words 2.14 -l es --to currency
# -> dos euros con catorce céntimos
pip install num2words
#Python #Num2words #Localization #NLP #DevTools #OpenSource #CLI #Backend #Программирование
https://github.com/savoirfairelinux/num2words
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - savoirfairelinux/num2words: Modules to convert numbers to words. 42 --> forty-two
Modules to convert numbers to words. 42 --> forty-two - savoirfairelinux/num2words
1🔥3 1
Linecast - это набор интерактивных CLI-приложений для терминала, превращающий открытые гео- и астрономические данные в стильные консольные дашборды с поддержкой мыши: от прогноза погоды и фаз Луны до анимированного радара и полноценных карт с навигацией.
Утилита написана на чистом Python, не требует внешних зависимостей (на macOS и Linux), не запрашивает API-ключи и автоматически подстраивает цвета под текущую палитру вашего терминала.
🌦
linecast weather — детальная погода: текущие условия, почасовой прогноз с градиентом светового дня, прогноз на 7 дней, индекс качества воздуха (AQI) и официальные штормовые предупреждения.☀️
linecast sunshine — движение Солнца по небосводу (по аналогии с циферблатом Solar в Apple Watch), расчет долготы дня, годовой календарь инсоляции (--year) и корректная обработка полярных дней и ночей.🌑
linecast moon — отображение видимой части Луны с физически точными тенями, пепельным светом и реальными созвездиями вокруг из каталога Yale Bright Star. Поддерживает прокрутку времени, переключение на обратную сторону Луны и традиционные лунно-солнечные календари (иврит, исламский, восточноазиатские).🌊
linecast tides — графики морских приливов и отливов с отметками пиковых значений и текущего уровня воды по базам NOAA и Open-Meteo.📡
linecast radar — анимированная карта осадков и спутниковые инфракрасные снимки, отрисованные прямо в терминале с помощью символов Брайля.🗺
linecast maps — векторные и рельефные карты, интерактивный 3D-глобус с линией терминатора (день/ночь) и облачностью из космоса, а также поиск адресов и пошаговая прокладка автомобильных, пеших и веломаршрутов.Попробовать в один клик без установки:
uvx linecast weather
Или через скрипт (задействует системный
python3):curl -sL https://raw.githubusercontent.com/ashuttl/linecast/main/get.sh | sh
Установка как постоянной утилиты:
# Через Homebrew
brew install linecast
# Через uv
uv tool install linecast
# Или через pipx
pipx install linecast
Инструмент поддерживает шрифты Nerd Font (
linecast icons nerd), умеет отдавать данные в формате JSON (--json), а также выводить компактную строку для статус-баров tmux, Waybar или Polybar (--oneline).#Python #Linecast #CLI #Terminal #Weather #Maps #OpenSource #Astronomy #Linux #macOS #DevTools
https://github.com/ashuttl/linecast
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - ashuttl/linecast: Weather, tides, the sun, the moon, maps, and a planetarium, in your terminal. The Old Farmer's Almanac…
Weather, tides, the sun, the moon, maps, and a planetarium, in your terminal. The Old Farmer's Almanac meets Minitel. - ashuttl/linecast
👍3🔥2 2
Plotex - это легковесная библиотека для Python, позволяющая строить графики, диаграммы и визуализировать данные прямо внутри терминала в виде цветного псевдографического текста.
Главное преимущество библиотеки — она полностью автономна: базовый функционал не требует никаких внешних зависимостей и библиотек вроде matplotlib или numpy. При этом она способна превратить обычную консоль в полноценную графическую панель.
line), точечные (scatter), стержневые (stem).Столбчатые и статистические: гистограммы, боксплоты (
box plots), накопленные (stacked) и плавающие столбчатые диаграммы.heatmaps), матрицы ошибок (confusion matrices), полосы погрешностей (error bars) и индикаторы.candlestick) и шкалы дат/времени.import plotext as plt
# Данные для графика
y = [1, 5, 3, 8, 4, 9, 6]
# Настройка и вывод
plt.plot(y)
plt.title("График в терминале")
plt.theme("dark")
plt.show()
pip install plotext
#Python #Plotext #DataVisualization #Terminal #CLI #DataScience #DevTools #OpenSource #Console #Analytics
https://github.com/piccolomo/plotext
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - piccolomo/plotext: plotting on terminal
plotting on terminal. Contribute to piccolomo/plotext development by creating an account on GitHub.
⚡3 2
Большинство инженеров привыкли к ИИ в виде чатов или расширений для автодополнения в IDE. Claude Code переносит агента прямо в терминал: он умеет самостоятельно исследовать архитектуру проекта, читать и редактировать файлы, выполнять тесты, диагностировать логи сборки и работать с Git.
Обучающая программа Claude Academy помогает перейти от поверхностного использования к продвинутым паттернам агентной разработки.
📚Чему учит курс:
CLAUDE.md, оптимизация расхода токенов, алгоритмическое сжатие сессий (/compact) и сброс контекста без потери ключевых архитектурных договоренностей.# Глобальная установка Claude Code
npm install -g @anthropic-ai/claude-code
# Запуск в корне вашего репозитория
cd my-project
claude
#ClaudeCode #Anthropic #Claude #ClaudeAcademy #AIAgents #CLI #DevTools #Programming #LLM #SoftwareEngineering #MCP
Please open Telegram to view this post
VIEW IN TELEGRAM
Claude Academy
How to Use Claude Code: Tutorials & Course · Claude Academy
Learn how to use Claude Code with the Claude Code 101 course and step-by-step tutorials on skills, effort levels, and rolling it out to your team.
Bashautom - это легковесная Python-библиотека для управления персистентными (долгоживущими) сессиями Bash, сохраняющая контекст и состояние шелла между последовательными командами.
При использовании стандартного
subprocess.run() на каждый вызов порождается абсолютно новый изолированный процесс: изменения рабочей директории (cd), экспортированные переменные (export) и активированные виртуальные окружения (source .env) моментально сбрасываются. Библиотека pexpect решает проблему персистентности, но завязана на хрупкий интерактивный парсинг шелл-промптов.bashautom держит один живой процесс /bin/bash в фоновом режиме и возвращает чистый структурированный результат по каждой команде без необходимости писать регулярные выражения и шаблоны expect.cwd) и результаты выполнения скриптов через source сохраняются между вызовами метода .execute().CommandResult: Каждая команда возвращает подробный статус: stdout, stderr, exit_code, флаг success, флаг timed_out и точное время выполнения в секундах (duration).timeout=N), она принудительно прерывается, но сама bash-сессия остается живой и готовой принимать следующие команды.stream_callback) для чтения stdout/stderr по мере генерации (полезно для логов сборки и долгих циклов).SessionManager): Удобное создание, координация и параллельное управление несколькими именованными bash-сессиями в разных директориях.set_env(), get_env(), get_cwd(), проверку PID и флага alive.from bashautom import Session
with Session() as s:
# Состояние сохраняется от шага к шагу:
s.execute("cd /opt/myproject")
s.execute("source .env")
s.execute("export BUILD_ID=42")
# Выполнение с контролем времени
result = s.execute("make build", timeout=120)
if result.success:
print(f"Сборка завершена за {result.duration:.2f} сек")
print(result.stdout)
else:
print(f"Ошибка (код {result.exit_code}):", result.stderr)
Потоковый вывод (Streaming):
from bashautom import Session
from bashautom.session import StreamEvent
def on_output(event: StreamEvent):
print(f"[{event.stream}] {event.data.strip()}")
with Session() as s:
s.execute("for i in 1 2 3; do echo $i; sleep 0.5; done", stream_callback=on_output)
pip install bashautom
#Bashautom #Python #Bash #DevOps #Automation #Linux #MacOS #CLI #Scripting #OpenSource #DevTools
https://github.com/huskago/bashautom
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - huskago/bashautom: Persistent bash sessions for Python - stateful shell automation with timeouts, streaming, and multi…
Persistent bash sessions for Python - stateful shell automation with timeouts, streaming, and multi-session support. - huskago/bashautom
👍3 1