{"id":25726843,"url":"https://github.com/created-by-varun/gyst","last_synced_at":"2026-06-19T14:31:55.873Z","repository":{"id":279048952,"uuid":"937588652","full_name":"created-by-varun/gyst","owner":"created-by-varun","description":"Gyst (GIT your shit together) is an AI powered git assistant","archived":false,"fork":false,"pushed_at":"2025-03-05T06:05:32.000Z","size":2501,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-05T07:20:06.828Z","etag":null,"topics":["cli","git","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/created-by-varun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"not.varun","thanks_dev":null,"custom":null}},"created_at":"2025-02-23T12:42:08.000Z","updated_at":"2025-03-05T06:05:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b9c845e-4dba-48c9-9f92-ca65c14a9d12","html_url":"https://github.com/created-by-varun/gyst","commit_stats":null,"previous_names":["created-by-varun/gyst"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/created-by-varun/gyst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/created-by-varun%2Fgyst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/created-by-varun%2Fgyst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/created-by-varun%2Fgyst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/created-by-varun%2Fgyst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/created-by-varun","download_url":"https://codeload.github.com/created-by-varun/gyst/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/created-by-varun%2Fgyst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34536274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","rust"],"created_at":"2025-02-25T23:27:40.455Z","updated_at":"2026-06-19T14:31:55.866Z","avatar_url":"https://github.com/created-by-varun.png","language":"Rust","funding_links":["https://buymeacoffee.com/not.varun"],"categories":[],"sub_categories":[],"readme":"# Gyst - AI-Powered Git Commit Assistant\n\nGyst is a command-line tool that simplifies git commit workflows by using AI to analyze changes and generate meaningful commit messages. It helps developers maintain consistent commit history and save time while following best practices.\n\n## Features\n\n- **AI-Powered Commit Messages**: Automatically generate meaningful commit messages based on your changes\n- **Conventional Commit Format**: All messages follow the conventional commit format\n- **Multiple Suggestions**: Get multiple commit message options to choose from\n- **Quick Mode**: Fast commit workflow without confirmation prompts\n- **Interactive Editing**: Edit generated messages before committing\n- **Smart Diff Analysis**: Analyze staged changes for better context\n- **Command Help**: Get AI-powered suggestions for Git commands based on what you want to do\n- **Cloud-Powered by Default**: Uses our cloud service for AI operations (no API key required)\n- **Flexible Configuration**: Option to use direct API access if preferred\n\n## Installation\n\n### Quick Install (macOS)\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/created-by-varun/gyst/master/install.sh | bash\n```\n\n### Manual Installation\n\n1. Download the latest release for your architecture from the [releases page](https://github.com/created-by-varun/gyst/releases)\n2. Make it executable: `chmod +x gyst-darwin-$(uname -m)`\n3. Move it to your PATH: `sudo mv gyst-darwin-$(uname -m) /usr/local/bin/gyst`\n\n### Updating\n\nTo update gyst to the latest version, you can use either method:\n\n1. Using the install script (recommended):\n\n   ```bash\n   curl -fsSL https://raw.githubusercontent.com/created-by-varun/gyst/master/install.sh | bash\n   ```\n\n   The script will automatically detect and replace any existing installation.\n\n2. Manual update:\n\n   ```bash\n   # Remove existing installation\n   sudo rm -f /usr/local/bin/gyst\n\n   # Download and install the latest version\n   curl -fsSL https://raw.githubusercontent.com/created-by-varun/gyst/master/install.sh | bash\n   ```\n\nTo check your current version:\n\n```bash\ngyst --version\n```\n\n## Configuration\n\n### Server Mode vs. Direct API Mode\n\nGyst operates in two modes:\n\n1. **Server Mode (Default)**: Uses our cloud service at `https://gyst-cli.vercel.app` to handle AI operations\n\n   - No API key required\n   - Faster response times\n   - Always up-to-date with the latest models\n\n2. **Direct API Mode**: Connects directly to the Anthropic API\n   - Requires your own API key\n   - Useful in environments with restricted internet access\n   - Gives you control over model selection\n\nBy default, Gyst uses Server Mode for the best user experience. You can switch modes using the configuration command:\n\n```bash\n# Enable server mode (default)\ngyst config --use-server true\n\n# Switch to direct API mode\ngyst config --use-server false\n```\n\n### Setting Up API Key (Only for Direct API Mode)\n\nIf you've disabled server mode, you'll need to set up your AI provider API key:\n\n```bash\ngyst config --api-key your-api-key-here\n```\n\nThe configuration is stored in `~/.gyst/config.toml`:\n\n```toml\n[ai]\nprovider = \"anthropic\"  # AI provider (currently supports Anthropic)\napi_key = \"your-api-key\" # API key (required only in direct API mode)\nmodel = \"claude-3-5-haiku-20241022\"  # Model to use\n\n[git]\nmax_diff_size = 1000  # Maximum diff size in lines\n\n[commit]\nmax_subject_length = 72  # Maximum length of commit subject line\n\n[server]\nuse_server = true  # Whether to use server mode (default: true)\n```\n\n## Commands\n\n### Generate and Create Commit\n\n```bash\ngyst commit [options]\n# or use the shorthand\ngyst c [options]\n```\n\nAnalyzes staged changes and generates a commit message using AI.\n\n**Options:**\n\n- `-q, --quick`: Skip confirmation and use the generated message directly\n- `-p, --push`: Push changes to the remote repository after committing\n- Default behavior: Shows the message and prompts for:\n  - `Y` (default): Accept and use the message\n  - `n`: Reject and abort commit\n  - `e`: Open in editor to modify message\n\n**Example:**\n\n```bash\n# Interactive mode (using full command)\ngyst commit\n\n# Interactive mode (using shorthand)\ngyst c\n\n# Quick mode\ngyst commit -q\n# or\ngyst c -q\n\n# Commit and push\ngyst commit -p\n\n# Quick commit and push\ngyst commit -q -p\n# or\ngyst c -qp\n```\n\n### Get Multiple Suggestions\n\n```bash\ngyst suggest\n```\n\nGenerates three commit message suggestions for you to choose from. If there are no staged changes, it will offer to stage all changes first.\n\n**Example:**\n\n```bash\n# Get 3 suggestions\ngyst suggest\n```\n\n### Get Git Command Suggestions\n\n```bash\ngyst explain \"your description here\"\n```\n\nGet AI-powered suggestions for Git commands based on natural language descriptions of what you want to do.\n\n**Examples:**\n\n```bash\n# Find out how to undo the last commit\ngyst explain \"how do I undo my last commit\"\n\n# Learn how to create and switch to a new branch\ngyst explain \"create and switch to a new branch\"\n\n# Get help with resolving merge conflicts\ngyst explain \"how to resolve merge conflicts\"\n```\n\n### Branch Health Analysis\n\n```bash\ngyst branch health [options]\n```\n\nAnalyze and report the health status of git branches in your repository. Helps identify stale branches, track activity, and manage branch maintenance.\n\n**Options:**\n\n- `--all`: Include all branches (local and remote)\n- `--remote`: Only analyze remote branches\n- `--local`: Only analyze local branches (default)\n- `--days \u003cnumber\u003e`: Consider activity within last N days\n- `--author \u003cn\u003e`: Filter branches by author\n- `--format \u003cformat\u003e`: Output format (text, json, markdown)\n\n**Examples:**\n\n```bash\n# View health of local branches\ngyst branch health\n\n# Include remote branches\ngyst branch health --all\n\n# Filter by age (30 days)\ngyst branch health --days 30\n\n# Filter by author\ngyst branch health --author \"John Doe\"\n\n# Output in markdown format\ngyst branch health --format markdown\n```\n\nThe command analyzes and reports:\n\n- Branch age and creation date\n- Last activity time\n- Commit frequency and count\n- Author information\n- Distance from main branch (commits ahead/behind)\n- Overall health status:\n  - 🟢 Healthy: Recent activity\n  - 🟡 Needs Attention: Inactive for a while\n  - 🔴 Stale: No activity for extended period\n\n### Configure Settings\n\n```bash\ngyst config [options]\n```\n\nManage Gyst configuration settings.\n\n**Options:**\n\n- `--api-key \u003ckey\u003e`: Set the AI service API key (for direct API mode)\n- `--use-server \u003cbool\u003e`: Enable or disable server mode (true/false)\n- `-s, --show`: Show current configuration (both forms work)\n\n**Example:**\n\n```bash\n# Set API key (for direct API mode)\ngyst config --api-key your-api-key-here\n\n# Enable server mode (default)\ngyst config --use-server true\n\n# Disable server mode and use direct API\ngyst config --use-server false\n\n# View current config\ngyst config --show\n```\n\n### View Diff\n\n```bash\ngyst diff\n```\n\nShows a detailed analysis of staged changes including:\n\n- Added files\n- Modified files\n- Deleted files\n- Renamed files\n- Change statistics\n\n## Best Practices\n\n1. **Stage Changes**: Always stage your changes using `git add` before using Gyst commands\n2. **Review Messages**: While quick mode is convenient, it's recommended to review the AI-generated messages\n3. **Server Mode**: Use the default server mode for the best experience without requiring an API key\n4. **API Key**: Only set up your API key if you've disabled server mode\n5. **Conventional Commits**: Gyst follows the conventional commit format:\n   - Format: `type(scope): description`\n   - Types: feat, fix, docs, style, refactor, perf, test, chore, ci, build\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcreated-by-varun%2Fgyst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcreated-by-varun%2Fgyst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcreated-by-varun%2Fgyst/lists"}