Skip to main content

ARR Tool

Um kit compacto de produtividade para quem trabalha com código. O ARR Tool reúne utilitários de Git, rede e configuração em uma CLI simples, com uma integração de IA para sugerir mensagens de commit a partir das mudanças do projeto.

Python 3.10+

Por que existe

Pequenas tarefas aparecem o tempo todo no fluxo de desenvolvimento: preparar uma mensagem de commit, gerar um identificador, conferir uma porta ou criar um exemplo de configuração sem os valores secretos. O ARR Tool coloca essas ações em comandos curtos e deixa a lógica reunida em um motor Python reutilizável.

Funcionalidades

Comando O que faz
arr-tool commit-message Lê o git diff do diretório atual e pede à IA uma sugestão de mensagem de commit em uma linha. Não cria o commit.
arr-tool uuid Gera um UUID versão 4.
arr-tool verify-port <porta> Verifica se uma conexão TCP com localhost nessa porta é aceita.
arr-tool env-example Lê .env e gera ou sobrescreve .env.example com os nomes das variáveis e valores vazios.

Instalação

Requer Python 3.10 ou superior.

Instalação via PyPI

A forma mais simples de instalar o ARR Tool é diretamente pelo PyPI:

python -m pip install arr-tool

Depois da instalação, o comando arr-tool estará disponível no ambiente:

arr-tool uuid

Instalação para desenvolvimento

Para clonar o projeto e trabalhar diretamente no código-fonte:

git clone https://github.com/arthurrodriguessdev/arr-tool.git
cd arr-tool
python -m venv .venv
source .venv/bin/activate  # Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install .

A instalação inclui as dependências Python da integração com IA. Os comandos locais (uuid, verify-port e env-example) não precisam de credenciais de IA.

Uso

Depois de instalar, o comando arr-tool fica disponível no ambiente:

arr-tool uuid
# Generated UUID: 2c1c3a73-8f90-4a0a-a8d4-2ed3a56a6c31

arr-tool verify-port 8000
# The status port is: AVAILABLE

arr-tool env-example
# Your file was generated successfully

O resultado de verify-port refere-se a uma conexão TCP em localhost: AVAILABLE significa que nenhum serviço aceitou a conexão durante a verificação; NO AVAILABLE significa que a conexão foi aceita.

Sugestão de mensagem de commit

O comando precisa ser executado dentro de um repositório Git com alterações visíveis em git diff. Configure no arquivo .env as credenciais do provedor compatível com a API OpenAI (Groq é o exemplo abaixo):

GROQ_API_KEY=sua_chave_de_api
GROQ_API_URL=https://api.groq.com/openai/v1
GROQ_API_MODEL=seu_modelo_disponivel

Então execute:

arr-tool commit-message
# Generated message: adicionar verificação de porta TCP

GROQ_API_URL e GROQ_API_MODEL dependem da API e do modelo disponíveis na sua conta. Mantenha credenciais em .env, não as publique e revise a sugestão antes de usá-la. O diff é enviado ao provedor configurado para gerar a mensagem.

Uso como biblioteca Python

As operações também podem ser chamadas diretamente. O motor está disponível no módulo application_engine:

from arr_tool.application_engine import Engine

engine = Engine()

identifier = engine.generate_uuid()
print(identifier)

port_is_available = engine.socket_verify(8000)
print(port_is_available)

Para gerar uma sugestão de commit, use Engine().commit_message() com as variáveis de ambiente configuradas. O método usa o git diff do diretório de trabalho atual e requer acesso à API de IA.

Arquitetura

O fluxo é intencionalmente pequeno: a CLI interpreta o comando, o motor executa a operação e os adaptadores especializados acessam Git, rede, sistema de arquivos ou o provedor de IA.

flowchart LR
	pessoa[Pessoa desenvolvedora] --> cli[CLI · argparse]
	cli --> engine[Engine · application_engine]
	engine --> git[Git · diff]
	engine --> uuid[UUID · biblioteca padrão]
	engine --> socket[Socket TCP · localhost]
	engine --> env[Arquivos .env]
	engine --> prompt[Prompts · template de commit]
	prompt --> model[ModelAI · cliente OpenAI]
	model --> api[API compatível · Groq]

Estrutura do código

src/arr_tool/
├── cli.py                 # Interface de linha de comando
├── application_engine.py  # Orquestração das operações
├── ai.py                  # Cliente da API e leitura de configuração
└── prompts.py             # Instruções para a sugestão de commit

Licença

Este projeto está licenciado sob a MIT License.

Metadata

Release files for arr-tool 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arr-tool 1.0.0
File Size Uploaded
arr_tool-1.0.0.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arr-tool 1.0.0
File Interpreter ABI Platform
arr_tool-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.1 kB

Release files / arr_tool-1.0.0.tar.gz

Download URL arr_tool-1.0.0.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
de91e2247854c228949066e0956be2b1443e06ac53e07a66fac8900ecac39978
BLAKE2b-256 checksum
How to use checksums
3e9e4a637bd126326f7794fc579a84a64c685412502834490f572c6985f0afbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / arr_tool-1.0.0-py3-none-any.whl

Download URL arr_tool-1.0.0-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf49cfb376b165e63021fc7195935d26f5fb687c9d57a7e299b39d631a8ab5b9
BLAKE2b-256 checksum
How to use checksums
9207e5450dc6e1d34b1239afa31730aca334b9856214122244790989e1729316
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page