Skip to content

Git

MetadataValue
Categorydev
Capabilitiesshell
Websitehttps://git-scm.com

Local git repository data — commits, branches, tags, and repo info. Wraps the git CLI to bring version control history into the graph as searchable entities.

Git reads from local repositories. No API keys, no tokens — just the git binary that’s already on your machine.

Git ConceptAgentOS EntityRelationship
Commitsgit_commit (extends message)Author → person, commit → in → repository
Branchesbranch (extends place)branch → in → repository
Tagstag (existing entity)tag → tag → git_commit
Repositoriesrepository (existing entity)Populated from local git info
Terminal window
# List recent commits
git_commit.list (skill: git, path: "~/dev/myproject")
# Search commit messages
git_commit.search (skill: git, path: "~/dev/myproject", query: "readme")
# Get a specific commit
git_commit.get (skill: git, path: "~/dev/myproject", id: "f9f9f57")
# List branches
branch.list (skill: git, path: "~/dev/myproject")
# Get repo info
repository.get (skill: git, path: "~/dev/myproject")
# Live status (not stored — computed fresh)
git.status (path: "~/dev/myproject")
# View diff
git.diff (path: "~/dev/myproject", staged: true)

Commits are messages. git commit -m — you’re sending a message into a repository. The inheritance chain is work → document → post → message → git_commit.

Authors are people with email accounts. Git gives us a name + email pair. The transformer creates a person entity (deduped on email) and links it via the sender relationship. The email becomes an account entity via claims.

Only immutable data is stored. A commit’s hash, message, author, and diff stats never change. Branch ahead/behind counts, working tree status, and other ephemeral state come from utilities that query live.

Tags reuse the existing tag entity. A git tag is a named label applied to a commit — exactly what the tag entity already represents.