A penify cli tool to generate Documentation, Commit-summary.
Reason this release was yanked:
productcli change
Project description
Penify CLI Tool
A CLI tool to generate smart commit messages, code documentation, and more.
Features
- Automatically generate documentation for your code
- Support for multiple programming languages
- Git hook integration for automatic documentation on commits
- Folder and file analysis
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:
-
Clone the repository:
git clone https://github.com/SingularityX-ai/penify-cli.git
-
Install the package in editable mode:
pip install -e .
Running Tests
pytest
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
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 penifycli-0.2.4.tar.gz.
File metadata
- Download URL: penifycli-0.2.4.tar.gz
- Upload date:
- Size: 26.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb8a50cebd59fff522961c66a426787860329948dafc12a0f28cc7f7235548dd
|
|
| MD5 |
724f27a4aaea3c8b3d8d49c3c9503d6e
|
|
| BLAKE2b-256 |
82f648ba9489dc1e64c1fb43468eaf7898bae82d1a80c2f52845a8a1554d103e
|
File details
Details for the file penifycli-0.2.4-py3-none-any.whl.
File metadata
- Download URL: penifycli-0.2.4-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e498a19ee55cc24ded8a23675a5b3b7459bcd39fcd62abd656f9e50fe4b0d8bf
|
|
| MD5 |
4df929f93407a763eb9033a84bacb32e
|
|
| BLAKE2b-256 |
32f48eaff2a32a8b84aeb8116bc8e85bf65e0410f2ee28ef408f2bfbd71adbee
|