Skip to content

Git Llama🦙 provides an offline-first, command line interface to git

License

Notifications You must be signed in to change notification settings

tlehman/git-llama

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

git-llama

Go Report Card

Git Llama provides an offline-first, LLM command line interface to git source control that translates your prompt like:

git-llama "show me the last 5 commits, just the commit messages"

Into the real command:

git log -5 --pretty=format:%s

Build with Nix

If you have nix flakes enabled, you can install git-llama with:

nix develop

Then run make.

Install

Git Llama depends on ollama. The first iteration of git-llama has a decoupled architecture that doesn't try to install ollama for you. If this is a feature you really want, please file a feature request issue and I will write it for you.

Architecture

git llama architecture

TODO

  • Check if ollama is started in background
  • Add SQLite vector database sqlite-vec
  • Write the vector db module with an interface that lets you insert, update and get the embeddings from the db
  • Write the input -> Embedding Model code
  • Write Semantic Search code
  • Pair every command with it's inverse (if possible) and lots of unit tests

Appendix

Check the sqlite_version and the vec_version

// check the sqlite_version and the vec_version
stmt, _, err := vecdb.DB.Prepare(`SELECT sqlite_version(), vec_version()`)
if err != nil {
	fmt.Printf("failed getting vec_version(): %s\n", err)
	return nil, err
}
stmt.Step()
fmt.Printf("sqlite_version() = %s, vec_version() = %s\n", stmt.ColumnText(0), stmt.ColumnText(1))

About

Git Llama🦙 provides an offline-first, command line interface to git

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published