Git Integration
Dynamo includes built-in git tools — no shelling out for everyday operations. (They do use your installed git — and the git_lfs_* tools all need git lfs. The GitHub PR tools are a further exception: gh_pr_create and gh_pr_view require the GitHub CLI (gh) installed and authenticated.)
Available Tools
| Tool | Description |
|---|---|
git_status | Working tree status (staged, unstaged, untracked) |
git_diff | View changes (staged, unstaged, or between refs) |
git_log | Browse commit history |
git_add | Stage files |
git_commit | Create commits with messages |
git_push | Push commits (auto-detects upstream) |
gh_pr_create | Create GitHub pull requests |
gh_pr_view | View PR details, comments, and status |
Git LFS, for repos that use it:
| Tool | Description |
|---|---|
git_lfs_status | LFS tracking status |
git_lfs_ls_files | List LFS-tracked files |
git_lfs_pull | Fetch LFS objects |
git_lfs_push | Push LFS objects |
git_lfs_locks | List file locks |
git_lfs_lock | Lock a file |
git_lfs_unlock | Unlock a file |
How It Works
Dynamo understands your git context automatically:
- Knows which branch you're on
- Sees staged and unstaged changes
- Reads commit history for context
- Can create well-formatted commits and PRs
Permission levels: reads (git_status, git_diff, git_log, gh_pr_view, the LFS query tools) are safe and run automatically; writes (git_add, git_commit, gh_pr_create, ordinary pushes, and the LFS transfer and lock tools) are write and prompt once per model. Two cases escalate to dangerous: git_push to main/master or with any force flag, and git_lfs_unlock --force. "Allow all" is never offered on a dangerous call, so you can't batch-approve one. But a grant taken earlier on the same tool at write level does cover it — allowing all git_push on an ordinary push also covers a later force-push in that session, and grants survive /resume. Auto Mode approves the whole tier regardless.