AI-powered CLI tool that connects natural language with developer workflows
Project description
██████╗ ███████╗ ██████╗██████╗ ██╗ ██╗██████╗ ████████╗
██╔══██╗██╔════╝██╔════╝██╔══██╗╚██╗ ██╔╝██╔══██╗╚══██╔══╝
██║ ██║█████╗ ██║ ██████╔╝ ╚████╔╝ ██████╔╝ ██║
██║ ██║██╔══╝ ██║ ██╔══██╗ ╚██╔╝ ██╔═══╝ ██║
██████╔╝███████╗╚██████╗██║ ██║ ██║ ██║ ██║
╚═════╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
AI-powered CLI tool that connects natural language with developer workflows:
- Git commit generation (with optional auto-commit and auto-push)
- Shell command generation (PowerShell & Linux Bash support)
- Slang / abbreviation decoding
- Streaming output — responses print in real time as they generate
- Self-healing shell commands, dangerous-command blocking, and a dry-run mode for safety
Powered by Google Gemini API.
Why
Writing a commit message, or figuring out the right shell command, usually means breaking flow: open a browser tab or a separate AI chat, copy-paste context back and forth, then come back to the terminal to actually run something. decrypt skips that round-trip — it works right where you already are.
For commits specifically: it shows a git diff --stat --cached preview so you can see exactly what's changing, then commits and pushes in one go if it looks right. No extra window, no copy-pasting a diff into a chat.
(The slang decoder is the odd one out — it's the original joke feature this tool started as. Kept it around as a nod to where decrypt came from.)
Features
1. Commit Generator (default mode)
Generates Conventional Commit messages from:
- staged git diff (
git diff --staged) - or manual input text
Shows a git diff --stat --cached preview before asking for confirmation, then prompts to run git commit and git push.
# From staged diff
git add .
decrypt
# From description
decrypt "fix auth bug in jwt middleware"
# Auto-execute (skip prompts)
decrypt --auto
2. Shell Command Generator
Convert natural language into executable terminal commands. Supports both PowerShell and Bash.
# Windows PowerShell (default shell mode)
decrypt -s "find all png files larger than 10MB and delete them"
# Linux / macOS Bash
decrypt -b "kill all processes on port 3000"
Built-in safety guards:
- Self-healing — a failed command is automatically re-generated and corrected by the AI
- Dangerous command blocking — protection against
rm -rf, fork bombs, and similar - 30s timeout — commands can't hang indefinitely
3. Slang Decoder
Expands internet slang, abbreviations, and vowel-less text into readable text.
decrypt -sl "hru btw idk"
4. Interactive Mode
Run without input arguments to start a loop:
decrypt
5. Dry-Run Mode (--dry-run)
Only generates output, never executes anything.
decrypt --dry-run -s "delete all node_modules folders"
decrypt --dry-run -c "add caching layer for api"
Installation
From PyPI
pip install decrypt
Using pipx
pipx install decrypt
Local development install
git clone https://github.com/REvDl/Scripts.git
cd Scripts/automation_tool/DecrypMessage
pip install .
Configuration
On first run, the tool configures automatically:
- Gemini API key
- Default language
Stored at:
~/.config/decrypt/.env
Reset configuration:
decrypt --config
CLI Usage
usage: decrypt [-h] [-cm] [-s] [-b] [-sl] [-c] [-l LANG] [-dr] [-a] [text]
AI-powered CLI tool
• Conventional Commits
• Shell Commands
• Slang Decoder
positional arguments:
text Optional text input. Commit mode (default): if empty, uses git diff; if provided, generates commit from this description.
options:
-h, --help show this help message and exit
-cm, --commit Mode: Generate Git commit message from text or staged diffs (default)
-s, --shell Mode: Generate an executable shell command from natural language
-b, --bash Mode: Generate an executable Linux Bash command from natural language
-sl, --slang Mode: Accurately expand and decipher internet abbreviations and slang
-c, --config Force re-configure API key and language
-l, --lang LANG Transcription language (default from .env)
-dr, --dry-run Mode: generating commands without executing them
-a, --auto Auto-execute mode (skips confirmation prompts)
Tech Stack
- Python 3.10+
- Google Gemini API (
google-genai) - Tenacity (with model fallback handling)
- Pydantic Settings
- argparse
Project structure
decrypt/
├── decrypt/
│ ├── __init__.py
│ ├── __main__.py # python -m decrypt
│ ├── ai.py # Gemini API calls, streaming, model fallback
│ ├── cli.py # argparse, entry point
│ ├── config.py # read/write .env config, first-run setup
│ ├── launcher.py # command execution, self-healing, safety checks
│ └── ui.py # shared terminal styling (colors, banner)
├── pyproject.toml
├── LICENSE
├── requirements.txt
├── .env.example
└── README.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file decrypt-1.1.7.tar.gz.
File metadata
- Download URL: decrypt-1.1.7.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77ae1425e5c3d1319677af7a3d1ce5d913692de007626d9bc1726609af367db5
|
|
| MD5 |
fcd764d6abcba5ece6fd4d72a48c9a08
|
|
| BLAKE2b-256 |
3ba1bd1e78d8fa374ff0c4543a30f526804cbfafdd1bbe89a660510da8ef4fb2
|
File details
Details for the file decrypt-1.1.7-py3-none-any.whl.
File metadata
- Download URL: decrypt-1.1.7-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7421a69169b8578dd6da386cc64fae57ffa5bf78c6a2496bd6be54ad36fb9ef9
|
|
| MD5 |
a5c0b5ee97d6875f5e819696b767e8f1
|
|
| BLAKE2b-256 |
b0f004efcd07bf2dd806c66c36220998da79936e239c9186e5a4d623d9cfba62
|