diff --git a/loop/agent.go b/loop/agent.go
index 2cf2e4c..6282705 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -68,6 +68,9 @@
 	// BranchPrefix returns the configured branch prefix
 	BranchPrefix() string
 
+	// LinkToGitHub returns whether GitHub branch linking is enabled
+	LinkToGitHub() bool
+
 	CancelTurn(cause error)
 
 	CancelToolUse(toolUseID string, cause error) error
@@ -992,6 +995,8 @@
 	Commit string
 	// Prefix for git branches created by sketch
 	BranchPrefix string
+	// LinkToGitHub enables GitHub branch linking in UI
+	LinkToGitHub bool
 	// Skaband client for session history (optional)
 	SkabandClient *skabandclient.SkabandClient
 }
@@ -1377,6 +1382,11 @@
 	return a.config.BranchPrefix
 }
 
+// LinkToGitHub returns whether GitHub branch linking is enabled
+func (a *Agent) LinkToGitHub() bool {
+	return a.config.LinkToGitHub
+}
+
 func (a *Agent) UserMessage(ctx context.Context, msg string) {
 	a.pushToOutbox(ctx, AgentMessage{Type: UserMessageType, Content: msg})
 	a.inbox <- msg
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index cc5ccc3..6c2debc 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -95,8 +95,9 @@
 	InsideOS             string                        `json:"inside_os,omitempty"`
 	OutsideWorkingDir    string                        `json:"outside_working_dir,omitempty"`
 	InsideWorkingDir     string                        `json:"inside_working_dir,omitempty"`
-	TodoContent          string                        `json:"todo_content,omitempty"` // Contains todo list JSON data
-	SkabandAddr          string                        `json:"skaband_addr,omitempty"` // URL of the skaband server
+	TodoContent          string                        `json:"todo_content,omitempty"`   // Contains todo list JSON data
+	SkabandAddr          string                        `json:"skaband_addr,omitempty"`   // URL of the skaband server
+	LinkToGitHub         bool                          `json:"link_to_github,omitempty"` // Enable GitHub branch linking in UI
 }
 
 type InitRequest struct {
@@ -1306,6 +1307,7 @@
 		AgentState:           s.agent.CurrentStateName(),
 		TodoContent:          s.agent.CurrentTodoContent(),
 		SkabandAddr:          s.agent.SkabandAddr(),
+		LinkToGitHub:         s.agent.LinkToGitHub(),
 	}
 }
 
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index bb5bd21..5d054fc 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -260,6 +260,7 @@
 
 func (m *mockAgent) GetPortMonitor() *loop.PortMonitor { return loop.NewPortMonitor() }
 func (m *mockAgent) SkabandAddr() string               { return m.skabandAddr }
+func (m *mockAgent) LinkToGitHub() bool                { return false }
 
 // TestSSEStream tests the SSE stream endpoint
 func TestSSEStream(t *testing.T) {
