Skip to content

Conversation

yasunogithub
Copy link

@yasunogithub yasunogithub commented Aug 21, 2025

This Pull Request fixes/closes #{issue_num}.

It changes the following:

  • Add commit helper with a configurable
    RON-based commit helper system supporting multiple helpers
  • Add helper selection UI with keyboard navigation, hotkeys, and
    smooth spinner animations for background execution
  • Implement template variables ({staged_diff}, {staged_files},
    {branch_name}) for flexible command customization and improved
    error handling
    I followed the checklist:
  • I added unittests
  • I ran make check without errors
  • I tested the overall application
  • I added an appropriate item to the changelog
@cruessler
Copy link
Collaborator

@yasunogithub Do you know how other CLI tools interface with LLMs? Is your approach in this PR inspired by similar approaches in other tools?

@yasunogithub
Copy link
Author

@yasunogithub Do you know how other CLI tools interface with LLMs? Is your approach in this PR inspired by similar approaches in other tools?

@cruessler
Honestly, I don't have deep knowledge of how other CLI tools specifically interface with LLMs. But based on what I researched, there seem
to be a few common patterns:

  1. Direct API calls - Tools like aicommits make HTTP requests directly to OpenAI/Anthropic
  2. Local model integration - Tools use ollama or similar for local LLMs
  3. Shell command execution - Some tools spawn subprocesses to call LLM CLIs

Our approach is simple but flexible - we execute any shell command you configure. So you could:

  • Call curl to hit OpenAI API directly
  • Use ollama run llama3.2 for local models
  • Run custom Python/Node scripts
  • Chain multiple commands with pipes

The template variables like {staged_diff} give the commands git context, and the RON config lets you set up multiple helpers with hotkeys.

I chose this approach because any CLI command works - users aren't locked into specific LLM providers or APIs. Want to try a new AI
service? Just update your config file.

@cruessler
Copy link
Collaborator

Thanks for the context! I was mainly asking in order to avoid reinventing the wheel in case there are already existing patterns out there.

@yasunogithub
Copy link
Author

Thanks for the context! I was mainly asking in order to avoid reinventing the wheel in case there are already existing patterns out there.

Thanks, I agree—this implementation is simple but still consistent with the common patterns, so I don't feel like reinventing the wheel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants