Skip to main content

A penify cli tool to generate Documentation, Commit-summary.

Reason this release was yanked:

new product namespace

Project description

Penify CLI Tool

A CLI tool to generate smart commit messages, code documentation, and more.

Installation

Install from PyPI:

pip install penifycli

Usage

Penify CLI provides several subcommands for different functionalities, organized into basic commands (no login required) and advanced commands (login required).

Basic Commands (No login required)

Commit

Generate smart commit messages using local LLM:

penifycli commit [-m "Optional message"] [-e] [-d]

Options:

  • -m, --message: Optional custom commit message
  • -e, --terminal: Open editor to modify commit message before committing
  • -d, --description: Generate commit message with both title and description (without this flag, only title is generated)

Config

Configure local LLM and JIRA settings:

# Configure LLM settings
penifycli config llm --model MODEL_NAME [--api-base API_URL] [--api-key API_KEY]

# Configure LLM settings through web interface
penifycli config llm-web

# Configure JIRA settings
penifycli config jira --url JIRA_URL --username USERNAME --api-token TOKEN [--verify]

# Configure JIRA settings through web interface
penifycli config jira-web

Advanced Commands (Login required)

Login

To log in and obtain an API token:

penifycli login

This command will open a browser window for authentication. After successful login, the API key will be saved locally for future use.

Documentation Generation

Generate documentation for Git diff, files or folders:

# Generate documentation for latest Git commit diff
penifycli docgen

# Generate documentation for specific file or folder
penifycli docgen -l /path/to/file/or/folder

Options:

  • -l, --location: Path to specific file or folder for documentation generation (defaults to current directory)

Git Hook Management

Install or uninstall Git post-commit hooks:

# Install Git hook
penifycli docgen install-hook [-l /path/to/repo]

# Uninstall Git hook
penifycli docgen uninstall-hook [-l /path/to/repo]

Options:

  • -l, --location: Path to the Git repository (defaults to current directory)

Authentication

Penify CLI uses an API token for authentication with advanced features.

If no token is available and you try to access an advanced feature, you'll be prompted to log in.

Local LLM Configuration

For commit message generation, Penify can use a local LLM. Configure it using:

penifycli config llm --model MODEL_NAME --api-base API_URL --api-key API_KEY

Common configurations:

  • OpenAI: --model gpt-3.5-turbo --api-base https://api.openai.com/v1 --api-key YOUR_KEY
  • Anthropic: --model claude-2 --api-base https://api.anthropic.com --api-key YOUR_KEY

JIRA Integration

Configure JIRA integration to enhance commit messages with issue details:

penifycli config jira --url https://your-domain.atlassian.net --username your-email@example.com --api-token YOUR_API_TOKEN

Development

To set up the development environment:

  1. Clone the repository:

    git clone https://github.com/SingularityX-ai/penify-cli.git
    
  2. Install the package in editable mode:

    pip install -e .
    

License

This project is licensed under the MIT License.

Author

Suman Saurabh (ss.sumansaurabh92@gmail.com)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Issues

If you encounter any problems or have suggestions, please file an issue on the GitHub repository.

Support

For automated API Documentation, Architecture Documentation, Code Documentation, Pull Request Documentation, or if you need a demo, please join our Discord support channel.

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

penifycli-0.2.2.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

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

penifycli-0.2.2-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file penifycli-0.2.2.tar.gz.

File metadata

  • Download URL: penifycli-0.2.2.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for penifycli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 882ea28556335a5ce262531718a700d6a5c255cd5817fc9f0a7e715d02a6f52f
MD5 1be67fa057b30c2089702aa425196012
BLAKE2b-256 02b970bba02a9ce4a9aaed77feeed570bc61399687f8de072222b10a589708ed

See more details on using hashes here.

File details

Details for the file penifycli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: penifycli-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for penifycli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5144db280fb4846ed68a59388cc97c8f2449c16496239c14b4060c1716d46029
MD5 2babce503ec1a07ea55009941fdd5f8b
BLAKE2b-256 d10c495a7d8bdefbbf2a6413863946f258da4efa013929cf3b4a91f8dc1fc84b

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