{"_id":"gity","_rev":"27-20eb4d907ba23389e10dab70b4e730ee","name":"gity","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"gity","version":"0.1.0","keywords":["git","commit","ai","openai","anthropic","llm","cli"],"author":{"name":"Marko Jakic","email":"marko@astrodev.studio"},"license":"ISC","_id":"gity@0.1.0","maintainers":[{"name":"mk0y","email":"jakicmeister@gmail.com"}],"homepage":"https://github.com/mk0y/gity#readme","bugs":{"url":"https://github.com/mk0y/gity/issues"},"bin":{"gity":"dist/gity.js"},"dist":{"shasum":"6d69c018c8767895d1fbb74716b51fa9c429ab4a","tarball":"https://registry.npmjs.org/gity/-/gity-0.1.0.tgz","fileCount":13,"integrity":"sha512-7uSS9qOhvt3lQRaFFfT7zKqSFUhQntlRo+yaN2GgLgDER1X5ima/P2iHDWbBTGGO8JbT3+3eLLEZiVdHA/flHQ==","signatures":[{"sig":"MEUCIQCey2SNtP6p1f53/lkGrLkfR1s4tr10SjLFb6kQfSRPhwIgOGueLokaJbEILfX7kXbYFsXWHlNy/g7YVemTU2c2o5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36868},"main":"dist/gity.js","type":"module","types":"./dist/gity.d.ts","engines":{"node":">=16.0.0"},"gitHead":"c42e435364e551e1ded8d7f153d5d15380081edf","scripts":{"dev":"tsc && node dist/gity.js","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/gity.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"mk0y","email":"jakicmeister@gmail.com"},"repository":{"url":"git+https://github.com/mk0y/gity.git","type":"git"},"_npmVersion":"11.1.0","description":"AI-powered Git commit message generator using multiple LLM providers","directories":{},"_nodeVersion":"20.17.0","dependencies":{"dotenv":"^16.4.7","readline":"^1.3.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/gity_0.1.0_1741721211343_0.6241185417249258","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"gity","version":"0.1.1","keywords":["git","commit","ai","openai","anthropic","llm","cli"],"author":{"name":"Marko Jakic","email":"marko@astrodev.studio"},"license":"ISC","_id":"gity@0.1.1","maintainers":[{"name":"mk0y","email":"jakicmeister@gmail.com"}],"homepage":"https://github.com/mk0y/gity#readme","bugs":{"url":"https://github.com/mk0y/gity/issues"},"bin":{"gity":"dist/gity.js"},"dist":{"shasum":"22504922dd0a90203622394ea82fbca6ca473892","tarball":"https://registry.npmjs.org/gity/-/gity-0.1.1.tgz","fileCount":13,"integrity":"sha512-MB4zZrVt9+AdtR9mMkRNCrpcFOHmQt8ORYF+TKPsNstCvl985WEHDDL5GMF+DT6Rd6wHKk2F2pMeNMY3aEt8Cg==","signatures":[{"sig":"MEQCIB8sPHE447V27+sslEE5hiXLsC3cvabw93hLVrJgVJ9kAiBgX5jkFCpFqg/oA1m5pYE2usLRbQa1xXyDEZOpp0UhVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43282},"main":"dist/gity.js","type":"module","types":"./dist/gity.d.ts","engines":{"node":">=16.0.0"},"gitHead":"22b7fe0e2eea7b7b703e0bf44cb323d769a6f7e2","scripts":{"dev":"tsc && node dist/gity.js","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/gity.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"mk0y","email":"jakicmeister@gmail.com"},"repository":{"url":"git+https://github.com/mk0y/gity.git","type":"git"},"_npmVersion":"11.1.0","description":"AI-powered Git commit message generator using multiple LLM providers","directories":{},"_nodeVersion":"20.17.0","dependencies":{"dotenv":"^16.4.7","readline":"^1.3.0","node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/gity_0.1.1_1741849141150_0.8647174595780096","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"gity","version":"0.1.2","description":"AI-powered Git commit message generator using multiple LLM providers","main":"dist/gity.js","bin":{"gity":"dist/gity.js"},"type":"module","scripts":{"build":"tsc","prepublishOnly":"npm run build","start":"node dist/gity.js","dev":"tsc && node dist/gity.js","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/mk0y/gity.git"},"keywords":["git","commit","ai","openai","anthropic","llm","cli"],"author":{"name":"Marko Jakic","email":"marko@astrodev.studio"},"license":"ISC","bugs":{"url":"https://github.com/mk0y/gity/issues"},"homepage":"https://github.com/mk0y/gity#readme","devDependencies":{"@types/node":"^22.13.10","typescript":"^5.0.0"},"dependencies":{"dotenv":"^16.4.7","node-fetch":"^3.3.2","readline":"^1.3.0"},"engines":{"node":">=16.0.0"},"_id":"gity@0.1.2","gitHead":"5573a4e7e4aa45904943c913d59660c6b6ca056d","types":"./dist/gity.d.ts","_nodeVersion":"20.17.0","_npmVersion":"11.1.0","dist":{"integrity":"sha512-JvTx1jgp1mvjJhj5TlcOUfmEltLRKO3QWXo0cX0S5gEDXw1QbbGfdO3JXkCYPgAL8PqtZoCvEuMf8Zv3SE0U2A==","shasum":"74ee743f6f32d2d985e376d89dd92dce298a4516","tarball":"https://registry.npmjs.org/gity/-/gity-0.1.2.tgz","fileCount":24,"unpackedSize":69541,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCQJkAVH9CkD4XiP00rKtW2ghgbNi2zuM4zpInjlMmRwAIgeZADmaLYuEqLBPz8Wo9ZcX/0vVPEtnnhdqrgDYLYVQk="}]},"_npmUser":{"name":"mk0y","email":"jakicmeister@gmail.com"},"directories":{},"maintainers":[{"name":"mk0y","email":"jakicmeister@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gity_0.1.2_1741884858436_0.8098479715808131"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-11T19:26:51.224Z","modified":"2025-03-13T16:54:18.873Z","0.0.1":"2015-04-06T17:18:21.333Z","0.0.2":"2015-04-07T05:32:57.588Z","0.0.3":"2015-04-07T05:54:13.657Z","0.0.4":"2015-04-07T06:28:31.279Z","0.0.5":"2015-04-07T07:36:53.559Z","0.0.6":"2015-04-07T08:43:43.011Z","0.0.7":"2015-04-08T05:12:31.168Z","0.0.8":"2015-04-08T06:02:52.401Z","0.0.9":"2015-04-08T19:26:54.919Z","0.0.10":"2015-04-08T20:53:02.134Z","1.0.0":"2015-04-09T02:41:39.684Z","1.0.1":"2015-04-12T07:00:18.178Z","1.0.2":"2015-04-19T08:21:05.353Z","1.0.3":"2015-04-19T09:01:22.571Z","1.0.4":"2015-05-11T04:44:34.099Z","1.0.5":"2015-05-11T04:47:26.479Z","0.1.0":"2025-03-11T19:26:51.525Z","0.1.1":"2025-03-13T06:59:01.344Z","0.1.2":"2025-03-13T16:54:18.697Z"},"bugs":{"url":"https://github.com/mk0y/gity/issues"},"author":{"name":"Marko Jakic","email":"marko@astrodev.studio"},"license":"ISC","homepage":"https://github.com/mk0y/gity#readme","keywords":["git","commit","ai","openai","anthropic","llm","cli"],"repository":{"type":"git","url":"git+https://github.com/mk0y/gity.git"},"description":"AI-powered Git commit message generator using multiple LLM providers","maintainers":[{"name":"mk0y","email":"jakicmeister@gmail.com"}],"readme":"# Gity\n\nAI-powered Git commit message generator using various LLM providers.\n\n## Overview\n\nGity is a command-line tool that uses Large Language Models to automatically generate meaningful Git commit messages based on your staged changes. It analyzes the diff of your staged files and suggests a concise, descriptive commit message following best practices.\n\n## Features\n\n- 🔍 Analyzes your staged Git changes\n- 💡 Generates meaningful commit messages using LLM models\n- 🔄 Support for multiple LLM providers (OpenAI, Anthropic, etc.)\n- ✏️ Allows editing the suggested message in your preferred editor\n- 🔄 Option to regenerate a new message\n- 🌐 Open your repository in the browser with a simple command\n- ✅ Simple and intuitive CLI interface\n\n## Installation\n\n### Using npx (recommended)\n\n```bash\nnpx gity\n```\n\n### Global Installation\n\n```bash\nnpm install -g gity\n```\n\nThen use it in any Git repository:\n\n```bash\ngity\n```\n\n## Prerequisites\n\n- Node.js 16 or higher\n- Git\n- API key for your chosen LLM provider (OpenAI by default)\n\n## Setup\n\n### OpenAI (Default)\n\n1. Get an OpenAI API key from [OpenAI's platform](https://platform.openai.com/api-keys)\n2. Set your API key as an environment variable:\n\n```bash\nexport OPENAI_API_KEY=your_api_key_here\n```\n\n### Anthropic Claude\n\n1. Get an Anthropic API key from [Anthropic's console](https://console.anthropic.com/)\n2. Set your API key as an environment variable:\n\n```bash\nexport ANTHROPIC_API_KEY=your_api_key_here\nexport LLM_PROVIDER=anthropic\n```\n\n### Environment Variables\n\nYou can configure Gity using the following environment variables:\n\n- `OPENAI_API_KEY`: API key for OpenAI (required when using OpenAI provider)\n- `ANTHROPIC_API_KEY`: API key for Anthropic (required when using Anthropic provider)\n- `LLM_PROVIDER`: LLM provider to use (default: \"openai\", options: \"openai\", \"anthropic\")\n- `LLM_MODEL`: Model to use with the provider (optional)\n- `LLM_MAX_TOKENS`: Maximum tokens for the response (optional)\n\nAlternatively, you can create a `.env` file in your project root with these variables.\n\n## Usage\n\n### Generate Commit Message\n\n1. Stage your changes with `git add`\n2. Run `gity`\n3. Choose an option:\n   - Press Enter to accept and commit the suggested message\n   - Press `e` to edit the message in your default editor\n   - Press `r` to regenerate a new message\n   - Press `q` to quit without committing\n\n### Open Repository in Browser\n\nTo open the current repository in your default web browser:\n\n```bash\ngity open\n```\n\nThis command parses your `.git/config` file, extracts the repository URL, and opens it in your default browser. It supports both SSH and HTTPS remote URL formats.\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/mk0y/gity.git\ncd gity\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n\n# Run locally\nnpm start\n```\n\n## Extending with New LLM Providers\n\nGity is designed to be easily extended with new LLM providers. To add a new provider:\n\n1. Implement the `LLMProvider` interface in `services/llm-service.ts`\n2. Add your provider to the `getLLMProvider` factory function\n3. Update the `getApiKey` function in `git-sage.ts` to handle your provider's API key\n\n## License\n\nISC\n\n## Contributing\n\nContributions are welcome! Feel free to open issues or submit pull requests.\n","readmeFilename":"README.md"}