Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decrypt-1.1.7.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

decrypt-1.1.7-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

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

Hashes for decrypt-1.1.7.tar.gz
Algorithm Hash digest
SHA256 77ae1425e5c3d1319677af7a3d1ce5d913692de007626d9bc1726609af367db5
MD5 fcd764d6abcba5ece6fd4d72a48c9a08
BLAKE2b-256 3ba1bd1e78d8fa374ff0c4543a30f526804cbfafdd1bbe89a660510da8ef4fb2

See more details on using hashes here.

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

Hashes for decrypt-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7421a69169b8578dd6da386cc64fae57ffa5bf78c6a2496bd6be54ad36fb9ef9
MD5 a5c0b5ee97d6875f5e819696b767e8f1
BLAKE2b-256 b0f004efcd07bf2dd806c66c36220998da79936e239c9186e5a4d623d9cfba62

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page