sankalp b35d97a2f4 💅 style(devtools/commitgen/generator.py): update system and user prompts
Updates the system prompt to provide more detailed instructions on writing
conventional commit messages. The user prompt is also updated to request
code changes for generating the commit message.
This change:
- Improves the user experience by providing clearer instructions
- Encourages the use of the correct emoji prefix for each commit type
- Ensures that the generated commit messages match the conventional format
2025-06-04 13:49:13 +05:45
2025-06-04 09:39:28 +05:45
2025-06-04 09:39:28 +05:45
2025-06-04 09:22:01 +05:45
2025-06-04 09:39:28 +05:45
2025-06-04 09:39:28 +05:45
2025-06-04 09:39:28 +05:45

DevTools

A collection of developer tools to enhance your workflow. This package includes tools for generating commit messages, changelogs, and .gitignore files, all accessible from a single unified CLI: devtools.

Installation

# Clone the repository
$ git clone https://github.com/S4NKALP/DevTools.git
$ cd devtools

# Install in editable mode
$ pip install -e .

Configuration

API Keys

The tools use various APIs that require API keys. You can set these using the config command:

# Set AI provider API key (required for AI features)
# For OpenRouter
devtools config set OPENROUTER_API_KEY "your-openrouter-api-key"

# For OpenAI
devtools config set OPENAI_API_KEY "your-openai-api-key"

# For Google Gemini
devtools config set GOOGLE_API_KEY "your-google-api-key"

# For Anthropic Claude
devtools config set ANTHROPIC_API_KEY "your-anthropic-api-key"

# For Hugging Face
devtools config set HUGGINGFACE_API_KEY "your-huggingface-api-key"

# Set GitHub token (recommended for license generator)
devtools config set GITHUB_TOKEN "your-github-token"

Or set them in your environment:

# AI Provider API keys
export OPENROUTER_API_KEY="your-openrouter-api-key"
export OPENAI_API_KEY="your-openai-api-key"
export GOOGLE_API_KEY="your-google-api-key"
export ANTHROPIC_API_KEY="your-anthropic-api-key"
export HUGGINGFACE_API_KEY="your-huggingface-api-key"

# GitHub token for license generator
export GITHUB_TOKEN="your-github-token"

Or create a .env file in your project root:

OPENROUTER_API_KEY=your-openrouter-api-key
OPENAI_API_KEY=your-openai-api-key
GOOGLE_API_KEY=your-google-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key
HUGGINGFACE_API_KEY=your-huggingface-api-key
GITHUB_TOKEN=your-github-token

Managing Configuration

# Show all configuration
devtools config show

# Show specific value
devtools config show OPENROUTER_API_KEY

# Delete a value
devtools config delete OPENROUTER_API_KEY

# Clear all configuration
devtools config clear

Configuration files are stored in:

  • ~/.devtools/config.yaml

Example config.yaml:

# API Keys
OPENROUTER_API_KEY:
OPENAI_API_KEY:
GOOGLE_API_KEY:
ANTHROPIC_API_KEY:
HUGGINGFACE_API_KEY:
GITHUB_TOKEN:

# AI Settings
provider: openrouter # or "openai", "gemini", "claude", "huggingface"
model: mistralai/mixtral-8x7b-instruct # model name for the selected provider
max_tokens: 1024
temperature: 0.7
output_format: text

# Commit Settings
conventional_commits: true

# Repository Settings
repositories: []

Configuration via CLI

You can set up all configuration options for DevTools using the CLI. This is the recommended way to configure your ~/.devtools/config.yaml file:

# Set AI provider (required for AI features)
devtools config set provider "openrouter"  # or "openai", "gemini", "claude", "huggingface"

# Set preferred AI model (optional, depends on provider)
# For OpenRouter
devtools config set model "mistralai/mixtral-8x7b-instruct"
# For OpenAI
devtools config set model "gpt-4-turbo-preview"
# For Gemini
devtools config set model "gemini-pro"
# For Claude
devtools config set model "claude-3-opus-20240229"
# For Hugging Face
devtools config set model "mistralai/Mixtral-8x7B-Instruct-v0.1"

# Set temperature for AI completions (optional, default is 0.7)
devtools config set temperature 0.7

# Set maximum tokens for AI completions (optional, default is 150)
devtools config set max_tokens 150

# Set conventional commit style (optional, default is true)
devtools config set conventional_commits true

# Set output format (optional, e.g., text or markdown)
devtools config set output_format text

# Set repositories list (optional, usually not needed)
devtools config set repositories "[]"

To view your current configuration:

devtools config show

To delete a config value:

devtools config delete output_format

To clear all config:

devtools config clear

All configuration is stored in ~/.devtools/config.yaml and can be managed entirely through these commands. You do not need to manually edit the YAML file.

Usage

All tools are available under the main devtools command:

devtools [COMMAND] [SUBCOMMAND] [OPTIONS]

Commit Message Generator

Generate and apply commit messages, create changelogs, and manage configuration.

Generate Commit Message

devtools commit generate [OPTIONS]

Options:

  • --files, -f [FILE]... Specific files to generate commit messages for
  • --repo, -r PATH Repository path (default: current directory)
  • --commit, -c Automatically commit changes
  • --push, -p Push changes after commit
  • --conventional/--no-conventional Use conventional commit format (default: True)
  • --no-stage Skip automatic staging of changes
  • --sign Sign commits with GPG
  • --temperature FLOAT AI temperature (0.0-1.0)

Commit messages follow the conventional format with emojis:

  • ✨ feat: New feature
  • 🐛 fix: Bug fix
  • 📚 docs: Documentation
  • 💅 style: Formatting, missing semi colons, etc
  • ♻️ refactor: Code refactoring
  • ✅ test: Adding tests
  • 🔧 chore: Maintenance

Changelog Generation

# Generate from git history
devtools commit changelog generate [OPTIONS]

# Generate interactively
devtools changelog generate [OPTIONS]

# Generate from a file
devtools changelog generate-from-file [OPTIONS]

Options:

  • --version, -v VERSION Version number for the changelog entry (required)
  • --from-tag, -t TAG Generate changelog from this tag
  • --days, -d N Generate changelog from the last N days
  • --commits, -n N Generate changelog from the last N commits
  • --output, -o FILE Output file path (default: CHANGELOG.md)
  • --temperature FLOAT AI temperature (0.0-1.0)
  • --input, -i FILE Input file with changes (for file-based generation)

The changelog generator supports three modes:

  1. Git history: Automatically generates changelog from commit history
  2. Interactive: Enter changes manually with emoji prefixes
  3. File-based: Generate from a file containing changes

Changes are grouped by type with emojis:

  • ✨ Added
  • 🔄 Changed
  • 🐛 Fixed
  • 🚀 Performance
  • 📝 Documentation
  • 🔧 Maintenance
  • 🗑️ Removed
  • 🔒 Security

Repository Status

devtools commit status

Gitignore Generator

Generate .gitignore files for your project, either by auto-detecting project types or specifying technologies.

Auto-detect Project Types

devtools gitignore auto [OPTIONS]

Options:

  • --directory, -d DIR Directory to scan (default: current directory)
  • --output, -o FILE Output file path (default: .gitignore)

Generate for Specific Technologies

devtools gitignore generate python django vscode [OPTIONS]

Options:

  • --output, -o FILE Output file path (default: .gitignore)

The generator uses the gitignore.io API to fetch templates. No API key is required.


License Generator

Generate LICENSE files for your project using templates from GitHub's license API.

# List available licenses
devtools license list

# Generate a license
devtools license generate [OPTIONS]

Options:

  • --type, -t TYPE Type of license to generate (e.g., mit, apache-2.0, gpl-3.0)
  • --author, -a NAME Name of the author/copyright holder
  • --year, -y YEAR Year for the copyright notice (defaults to current year)
  • --output, -o FILE Output file path (default: LICENSE)

Example:

# List available licenses
devtools license list

# Interactive mode
devtools license generate

# With all options specified
devtools license generate --type mit --author "John Doe" --year 2024 --output LICENSE

The license generator uses GitHub's license API to fetch templates. For optimal performance:

  1. Set up a GitHub token:

    devtools config set GITHUB_TOKEN "your-github-token"
    

    This increases your API rate limit from 60 to 5,000 requests per hour.

  2. If no token is set, the tool will use a fallback list of common licenses.

If an invalid license type is provided, the tool will display a list of available licenses.


Features

  • Commit Message Generator:
    • AI-powered commit message suggestions using multiple providers:
      • OpenRouter (Mixtral 8x7B)
      • OpenAI (GPT-4, GPT-3.5)
      • Google Gemini
      • Anthropic Claude
      • Hugging Face
    • Conventional commit format with emojis
    • GPG signing and push support
    • Changelog generation from commit history
    • Repository status with diff previews
  • Gitignore Generator:
    • Auto-detects project types and generates .gitignore
    • Uses gitignore.io API for up-to-date templates
    • No API key required
    • Falls back to generic template if API is unavailable
  • License Generator:
    • Generates LICENSE files using GitHub's license API
    • Supports all licenses available on GitHub
    • Interactive license selection
    • Automatic year and author replacement

Requirements

  • Python 3.8+
  • Git
  • AI Provider API key (one of):
    • OpenRouter API key
    • OpenAI API key
    • Google API key
    • Anthropic API key
    • Hugging Face API key
  • GitHub token (recommended for license generator)

Development

# Install dependencies
pip install -r requirements.txt

# Run tests
pytest

# Lint
ruff .

Contributing

Contributions are welcome! Please open issues or submit pull requests.

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the LICENSE file for details.

S
Description
AI-powered CLI for semantic commits, changelogs, and automated project essentials.
https://pypi.org/project/devgen-cli/
Readme GPL-3.0
935 KiB
0 Stars 1 Watchers 0 Forks
V 0.3.0
Latest
2026-07-03 13:23:50 +00:00
Languages
Python 100%