# Thira - Git Hooks Manager
[](https://crates.io/crates/thira)
[](https://www.npmjs.com/package/thira)
[](https://pypi.org/project/thira/)
Thira is a Git hooks manager and commit message linter that helps you maintain consistent commit messages and automate your Git workflows.
## Features
- **Easy Git hooks management**: Install, update, and remove Git hooks with a single command. Supports all standard Git hook events and custom hooks directories.
- **Conventional commit message validation**: Enforces customizable commit message rules based on the Conventional Commits standard, including type, scope, and subject/body length.
- **Custom script automation**: Define and run custom scripts for any workflow, with support for sequential or parallel execution, environment variables, and working directories.
- **Flexible YAML configuration**: Manage hooks, scripts, and linting rules in a single, human-readable `hooks.yaml` file.
- **Cross-platform support**: Works seamlessly on macOS, Linux, and Windows.
- **Colorful and informative CLI**: User-friendly command-line interface with colored output, helpful error messages, and command trees.
- **Auto-installation and validation**: Automatically installs hooks and validates configuration integrity for a smooth developer experience.
- **Real-time terminal UI**: Displays live output and progress for long-running scripts and hook executions.
- **Integrates with Cargo, npm, and pip**: Installable via multiple package managers for easy adoption in any workflow.
## Documentation
Our documentation is split into several sections for easier navigation:
- [Installation Guide](https://github.com/ervan0707/thira/blob/main/docs/installation.md) - How to install and set up Thira
- [Basic Usage](https://github.com/ervan0707/thira/blob/main/docs/basic-usage.md) - Getting started with Thira
- [Configuration Guide](https://github.com/ervan0707/thira/blob/main/docs/configuration.md) - Complete reference for hooks.yaml configuration
- [Hook Management](https://github.com/ervan0707/thira/blob/main/docs/hook-management.md) - Managing Git hooks
- [Script Management](https://github.com/ervan0707/thira/blob/main/docs/script-management.md) - Creating and managing custom scripts
- [Commit Message Guidelines](https://github.com/ervan0707/thira/blob/main/docs/commit-guidelines.md) - How to write valid commit messages
## Quick Start
```sh
# Install with installer
curl -sSL https://raw.githubusercontent.com/ervan0707/thira/main/install.sh | bash
# Install with Cargo
cargo install thira
# Install with NPM
npm install -g thira
# Install with pip
pip install thira
# Install with Nix (flakes)
nix profile install github:ervan0707/thira
# Or run directly without installing
nix run github:ervan0707/thira
# Initialize configuration
thira hooks init
# Install Git hooks
thira hooks install
```
Your Git hooks are now managed by Thira! Check out the [Basic Usage](https://github.com/ervan0707/thira/blob/main/docs/basic-usage.md) guide for more details.
## Project Status
This project is under active development. Feel free to open issues and submit pull requests.
## License
This project is licensed under the MIT License – see the [LICENSE](https://github.com/ervan0707/thira/blob/main/LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/ervan0707/thira",
"name": "thira",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "cli, automation, workflow, development, git-hooks, commit-linter",
"author": null,
"author_email": "Ervan <ervanroot@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/91/f4/5bf1e88e7432375d07d7cb1d39fc155be815819e22f41f548b20ef3230d3/thira-0.1.0.tar.gz",
"platform": null,
"description": "# Thira - Git Hooks Manager\n\n[](https://crates.io/crates/thira)\n[](https://www.npmjs.com/package/thira)\n[](https://pypi.org/project/thira/)\n\nThira is a Git hooks manager and commit message linter that helps you maintain consistent commit messages and automate your Git workflows.\n\n## Features\n\n- **Easy Git hooks management**: Install, update, and remove Git hooks with a single command. Supports all standard Git hook events and custom hooks directories.\n- **Conventional commit message validation**: Enforces customizable commit message rules based on the Conventional Commits standard, including type, scope, and subject/body length.\n- **Custom script automation**: Define and run custom scripts for any workflow, with support for sequential or parallel execution, environment variables, and working directories.\n- **Flexible YAML configuration**: Manage hooks, scripts, and linting rules in a single, human-readable `hooks.yaml` file.\n- **Cross-platform support**: Works seamlessly on macOS, Linux, and Windows.\n- **Colorful and informative CLI**: User-friendly command-line interface with colored output, helpful error messages, and command trees.\n- **Auto-installation and validation**: Automatically installs hooks and validates configuration integrity for a smooth developer experience.\n- **Real-time terminal UI**: Displays live output and progress for long-running scripts and hook executions.\n- **Integrates with Cargo, npm, and pip**: Installable via multiple package managers for easy adoption in any workflow.\n\n## Documentation\n\nOur documentation is split into several sections for easier navigation:\n\n- [Installation Guide](https://github.com/ervan0707/thira/blob/main/docs/installation.md) - How to install and set up Thira\n- [Basic Usage](https://github.com/ervan0707/thira/blob/main/docs/basic-usage.md) - Getting started with Thira\n- [Configuration Guide](https://github.com/ervan0707/thira/blob/main/docs/configuration.md) - Complete reference for hooks.yaml configuration\n- [Hook Management](https://github.com/ervan0707/thira/blob/main/docs/hook-management.md) - Managing Git hooks\n- [Script Management](https://github.com/ervan0707/thira/blob/main/docs/script-management.md) - Creating and managing custom scripts\n- [Commit Message Guidelines](https://github.com/ervan0707/thira/blob/main/docs/commit-guidelines.md) - How to write valid commit messages\n\n## Quick Start\n\n```sh\n# Install with installer\ncurl -sSL https://raw.githubusercontent.com/ervan0707/thira/main/install.sh | bash\n\n# Install with Cargo\ncargo install thira\n\n# Install with NPM\nnpm install -g thira\n\n# Install with pip\npip install thira\n\n# Install with Nix (flakes)\nnix profile install github:ervan0707/thira\n\n# Or run directly without installing\nnix run github:ervan0707/thira\n\n# Initialize configuration\nthira hooks init\n\n# Install Git hooks\nthira hooks install\n```\n\nYour Git hooks are now managed by Thira! Check out the [Basic Usage](https://github.com/ervan0707/thira/blob/main/docs/basic-usage.md) guide for more details.\n\n## Project Status\n\nThis project is under active development. Feel free to open issues and submit pull requests.\n\n## License\n\nThis project is licensed under the MIT License \u2013 see the [LICENSE](https://github.com/ervan0707/thira/blob/main/LICENSE) file for details.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Git hooks manager and commit message linter for automating development workflows",
"version": "0.1.0",
"project_urls": {
"Bug Reports": "https://github.com/ervan0707/thira/issues",
"Documentation": "https://github.com/ervan0707/thira#readme",
"Homepage": "https://github.com/ervan0707/thira",
"Repository": "https://github.com/ervan0707/thira"
},
"split_keywords": [
"cli",
" automation",
" workflow",
" development",
" git-hooks",
" commit-linter"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "03c74144cec9b2a22dc961089e037b5772d23a8d4d0948a3061cbe694f615975",
"md5": "4f1f55fabab9ddaceb22b09ac38dc23c",
"sha256": "9c4809ffae1589d82cd04625d973cbce36202584575f984e93ed55f34310609f"
},
"downloads": -1,
"filename": "thira-0.1.0-py3-none-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "4f1f55fabab9ddaceb22b09ac38dc23c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1304111,
"upload_time": "2025-08-13T16:26:07",
"upload_time_iso_8601": "2025-08-13T16:26:07.945635Z",
"url": "https://files.pythonhosted.org/packages/03/c7/4144cec9b2a22dc961089e037b5772d23a8d4d0948a3061cbe694f615975/thira-0.1.0-py3-none-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b3d41fea770e7980e3503f5670099566c27ec03162bbceec5d5fe30844995e52",
"md5": "4cf1473a310ece6876a5e8ea09c78c42",
"sha256": "b58d70c4abbe34b9cace2d3e3241ee297cc8993274afde9496d0226508e5c1f5"
},
"downloads": -1,
"filename": "thira-0.1.0-py3-none-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "4cf1473a310ece6876a5e8ea09c78c42",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1225950,
"upload_time": "2025-08-13T16:26:06",
"upload_time_iso_8601": "2025-08-13T16:26:06.510901Z",
"url": "https://files.pythonhosted.org/packages/b3/d4/1fea770e7980e3503f5670099566c27ec03162bbceec5d5fe30844995e52/thira-0.1.0-py3-none-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "da402750f4002e882aace24a3236b796a219be84464212bd40aaa1b76450cfd5",
"md5": "216689591f4b191b05a5f841676fceae",
"sha256": "b3727a1428029487f6711e12427e78ba7cdae1f2da7fd51d320ef2696506430c"
},
"downloads": -1,
"filename": "thira-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "216689591f4b191b05a5f841676fceae",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1270029,
"upload_time": "2025-08-13T16:26:09",
"upload_time_iso_8601": "2025-08-13T16:26:09.011255Z",
"url": "https://files.pythonhosted.org/packages/da/40/2750f4002e882aace24a3236b796a219be84464212bd40aaa1b76450cfd5/thira-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "64294b985c3e18f2eaead094df834ae051fc04d4e30efb3c25e7447234b66dbc",
"md5": "d3edd40d38dc22d7f36a76be16d9c08d",
"sha256": "10431d848a0ad6e82f58434452816aca014674fc1e96cea8c2d1e88647f583d9"
},
"downloads": -1,
"filename": "thira-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "d3edd40d38dc22d7f36a76be16d9c08d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1381768,
"upload_time": "2025-08-13T16:26:10",
"upload_time_iso_8601": "2025-08-13T16:26:10.371490Z",
"url": "https://files.pythonhosted.org/packages/64/29/4b985c3e18f2eaead094df834ae051fc04d4e30efb3c25e7447234b66dbc/thira-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f83b20cb73f8c8571fe41fbbef987293e147ba8461070a2fa4cb97b0280ee6b0",
"md5": "d5481c19a22de03be635931366e1f57c",
"sha256": "e3fff4c9aa26ed40756600ba8db3bd37139c6da9bf7440463ae0aa91eb00fe0a"
},
"downloads": -1,
"filename": "thira-0.1.0-py3-none-win_amd64.whl",
"has_sig": false,
"md5_digest": "d5481c19a22de03be635931366e1f57c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1238367,
"upload_time": "2025-08-13T16:26:14",
"upload_time_iso_8601": "2025-08-13T16:26:14.423131Z",
"url": "https://files.pythonhosted.org/packages/f8/3b/20cb73f8c8571fe41fbbef987293e147ba8461070a2fa4cb97b0280ee6b0/thira-0.1.0-py3-none-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "08daa8fd5f414d070ca183973bc63668cac1bba31957f43d6f6dfc64388ebd37",
"md5": "f0364a7bfd231c8814ac4d9ab34aa480",
"sha256": "2f5effb80671d7849d89e9d78804a3e7c1cab5c967e98de39c942b0de9048b53"
},
"downloads": -1,
"filename": "thira-0.1.0-py3-none-win_arm64.whl",
"has_sig": false,
"md5_digest": "f0364a7bfd231c8814ac4d9ab34aa480",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1152228,
"upload_time": "2025-08-13T16:26:12",
"upload_time_iso_8601": "2025-08-13T16:26:12.885610Z",
"url": "https://files.pythonhosted.org/packages/08/da/a8fd5f414d070ca183973bc63668cac1bba31957f43d6f6dfc64388ebd37/thira-0.1.0-py3-none-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "91f45bf1e88e7432375d07d7cb1d39fc155be815819e22f41f548b20ef3230d3",
"md5": "ea4f58063d047afabefdfe430ba415de",
"sha256": "64b0289e0672c91b8aeb070da8cebc2e45e2c240b8aca663afa7365d4320f979"
},
"downloads": -1,
"filename": "thira-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "ea4f58063d047afabefdfe430ba415de",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 36242,
"upload_time": "2025-08-13T16:26:11",
"upload_time_iso_8601": "2025-08-13T16:26:11.874110Z",
"url": "https://files.pythonhosted.org/packages/91/f4/5bf1e88e7432375d07d7cb1d39fc155be815819e22f41f548b20ef3230d3/thira-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-13 16:26:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ervan0707",
"github_project": "thira",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "thira"
}