/ Documentation

Security & privacy

API Key Storage (Secure):

  • Primary: OS keychain via keytar (macOS Keychain, Windows Credential Vault, Linux Secret Service).
  • Fallback: AES-256-CBC encryption in ~/.gitgenie/config.json.
  • Encryption format: <random-iv>:<ciphertext> with unique per-user key.
  • Keys never leave your machine and are never hardcoded in source.

Data Privacy:

  • Only staged diff is sent to Gemini AI (added/removed lines & file headers).
  • No untracked files, personal data, or full repository content is transmitted.
  • Avoid staging secrets; keep .env files in .gitignore.

Contributing / roadmap

Planned: PR automation, partial diff selection, stats mode, model selection flag. Contribute: fork → branch → changes → gg "feat xyz" --genie → PR.

FAQ

Q: How do I rotate API keys? A: Just run gg config <new_key> to overwrite the existing one.

Q: What if I hit quota on my API key? A: Swap to another key using gg config <backup_key>.

Q: Is key storage secure? A: Yes—uses OS keychain when available, fallback to AES-256-CBC encryption with per-user keys.

Q: Windows support? A: Yes (PowerShell tested), uses Windows Credential Vault for secure storage.

Q: Can it open PRs? A: Not yet (roadmap), but generates PR titles for manual creation.

Q: Model configurable? A: Currently fixed to gemini-2.0-flash.

Q: How does --osc work? A: Prompts for issue number, creates branch type/#<issue_number>-shorttitle (short title from Gemini if --genie is used, otherwise from your message).

Publish (maintainers)

npm version patch   # or minor / major
npm publish --access public

Support