Git
| Metadata | Value |
|---|---|
| Category | dev |
| Capabilities | shell |
| Website | https://git-scm.com |
Returns shapes
Section titled “Returns shapes”branch— fromget_branchbranch[]— fromlist_branchesgit_commit— fromget_git_commitgit_commit[]— fromlist_git_commits,search_git_commitsrepository— fromget_repositorytag— fromget_tagtag[]— fromlist_tags
Readme
Section titled “Readme”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.
No Auth Required
Section titled “No Auth Required”Git reads from local repositories. No API keys, no tokens — just the git binary that’s already on your machine.
Entity Mappings
Section titled “Entity Mappings”| Git Concept | AgentOS Entity | Relationship |
|---|---|---|
| Commits | git_commit (extends message) | Author → person, commit → in → repository |
| Branches | branch (extends place) | branch → in → repository |
| Tags | tag (existing entity) | tag → tag → git_commit |
| Repositories | repository (existing entity) | Populated from local git info |
# List recent commitsgit_commit.list (skill: git, path: "~/dev/myproject")
# Search commit messagesgit_commit.search (skill: git, path: "~/dev/myproject", query: "readme")
# Get a specific commitgit_commit.get (skill: git, path: "~/dev/myproject", id: "f9f9f57")
# List branchesbranch.list (skill: git, path: "~/dev/myproject")
# Get repo inforepository.get (skill: git, path: "~/dev/myproject")
# Live status (not stored — computed fresh)git.status (path: "~/dev/myproject")
# View diffgit.diff (path: "~/dev/myproject", staged: true)Design Decisions
Section titled “Design Decisions”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.