Docs/Tools & Features/Git Integration

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

ToolDescription
git_statusWorking tree status (staged, unstaged, untracked)
git_diffView changes (staged, unstaged, or between refs)
git_logBrowse commit history
git_addStage files
git_commitCreate commits with messages
git_pushPush commits (auto-detects upstream)
gh_pr_createCreate GitHub pull requests
gh_pr_viewView PR details, comments, and status

Git LFS, for repos that use it:

ToolDescription
git_lfs_statusLFS tracking status
git_lfs_ls_filesList LFS-tracked files
git_lfs_pullFetch LFS objects
git_lfs_pushPush LFS objects
git_lfs_locksList file locks
git_lfs_lockLock a file
git_lfs_unlockUnlock 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.