diff --git a/loop/agent.go b/loop/agent.go
index ee6d8d7..24f3a70 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -132,6 +132,9 @@
 	OutsideWorkingDir() string
 	GitOrigin() string
 
+	// GitUsername returns the git user name from the agent config.
+	GitUsername() string
+
 	// DiffStats returns the number of lines added and removed from sketch-base to HEAD
 	DiffStats() (int, int)
 	// OpenBrowser is a best-effort attempt to open a browser at url in outside sketch.
@@ -723,6 +726,11 @@
 	return a.gitOrigin
 }
 
+// GitUsername returns the git user name from the agent config.
+func (a *Agent) GitUsername() string {
+	return a.config.GitUsername
+}
+
 // DiffStats returns the number of lines added and removed from sketch-base to HEAD
 func (a *Agent) DiffStats() (int, int) {
 	return a.gitState.DiffStats()
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index b5fddb4..57c36ab 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -81,6 +81,7 @@
 	WorkingDir           string                        `json:"working_dir"` // deprecated
 	OS                   string                        `json:"os"`          // deprecated
 	GitOrigin            string                        `json:"git_origin,omitempty"`
+	GitUsername          string                        `json:"git_username,omitempty"`
 	OutstandingLLMCalls  int                           `json:"outstanding_llm_calls"`
 	OutstandingToolCalls []string                      `json:"outstanding_tool_calls"`
 	SessionID            string                        `json:"session_id"`
@@ -1270,6 +1271,7 @@
 		OutsideWorkingDir:    s.agent.OutsideWorkingDir(),
 		InsideWorkingDir:     getWorkingDir(),
 		GitOrigin:            s.agent.GitOrigin(),
+		GitUsername:          s.agent.GitUsername(),
 		OutstandingLLMCalls:  s.agent.OutstandingLLMCallCount(),
 		OutstandingToolCalls: s.agent.OutstandingToolCalls(),
 		SessionID:            s.agent.SessionID(),
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index d93c360..0903774 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -25,6 +25,7 @@
 	currentState             string
 	subscribers              []chan *loop.AgentMessage
 	stateTransitionListeners []chan loop.StateTransition
+	gitUsername              string
 	initialCommit            string
 	branchName               string
 	branchPrefix             string
@@ -238,6 +239,7 @@
 func (m *mockAgent) OutsideHostname() string                     { return "test-host" }
 func (m *mockAgent) OutsideWorkingDir() string                   { return "/app" }
 func (m *mockAgent) GitOrigin() string                           { return "" }
+func (m *mockAgent) GitUsername() string                         { return m.gitUsername }
 func (m *mockAgent) OpenBrowser(url string)                      {}
 func (m *mockAgent) CompactConversation(ctx context.Context) error {
 	// Mock implementation - just return nil
