diff --git a/loop/agent.go b/loop/agent.go
index d1ff360..4adf80f 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -164,6 +164,9 @@
 
 	// TokenContextWindow returns the TokenContextWindow size of the model the agent is using.
 	TokenContextWindow() int
+
+	// ModelName returns the name of the model the agent is using.
+	ModelName() string
 }
 
 type CodingAgentMessageType string
@@ -481,6 +484,11 @@
 	return a.config.Service.TokenContextWindow()
 }
 
+// ModelName returns the name of the model the agent is using.
+func (a *Agent) ModelName() string {
+	return a.config.Model
+}
+
 // GetConvo returns the conversation interface for debugging purposes.
 func (a *Agent) GetConvo() ConvoInterface {
 	return a.convo
@@ -1090,6 +1098,8 @@
 	InDocker     bool
 	OneShot      bool
 	WorkingDir   string
+	// Model is the name of the LLM model being used
+	Model string
 	// Outside information
 	OutsideHostname   string
 	OutsideOS         string
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index cc183d3..dcb315f 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -159,6 +159,7 @@
 	DiffLinesRemoved     int                           `json:"diff_lines_removed"`              // Lines removed from sketch-base to HEAD
 	OpenPorts            []Port                        `json:"open_ports,omitempty"`            // Currently open TCP ports
 	TokenContextWindow   int                           `json:"token_context_window,omitempty"`
+	Model                string                        `json:"model,omitempty"` // Name of the model being used
 	SessionEnded         bool                          `json:"session_ended,omitempty"`
 	CanSendMessages      bool                          `json:"can_send_messages,omitempty"`
 	EndedAt              time.Time                     `json:"ended_at,omitempty"`
@@ -1386,6 +1387,7 @@
 		DiffLinesRemoved:     diffRemoved,
 		OpenPorts:            s.getOpenPorts(),
 		TokenContextWindow:   s.agent.TokenContextWindow(),
+		Model:                s.agent.ModelName(),
 	}
 }
 
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index 04a18ba..fa591b2 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -35,6 +35,7 @@
 	slug                     string
 	retryNumber              int
 	skabandAddr              string
+	model                    string
 }
 
 // TokenContextWindow implements loop.CodingAgent.
@@ -42,6 +43,11 @@
 	return 200000
 }
 
+// ModelName implements loop.CodingAgent.
+func (m *mockAgent) ModelName() string {
+	return m.model
+}
+
 func (m *mockAgent) NewIterator(ctx context.Context, nextMessageIdx int) loop.MessageIterator {
 	m.mu.RLock()
 	// Send existing messages that should be available immediately
@@ -293,6 +299,7 @@
 		branchName:               "sketch/test-branch",
 		branchPrefix:             "sketch/",
 		slug:                     "test-slug",
+		model:                    "fake-model",
 	}
 
 	// Add the initial messages before creating the server
@@ -428,6 +435,7 @@
 	mockAgent := &mockAgent{
 		workingDir:   t.TempDir(), // Use a temp directory
 		branchPrefix: "sketch/",
+		model:        "fake-model",
 	}
 
 	// Create the server with the mock agent
@@ -475,6 +483,7 @@
 	mockAgent := &mockAgent{
 		workingDir:   t.TempDir(), // Use a temp directory
 		branchPrefix: "sketch/",
+		model:        "fake-model",
 	}
 
 	// Create the server with the mock agent
@@ -514,6 +523,7 @@
 		messageCount: 0,
 		sessionID:    "test-session",
 		branchPrefix: "sketch/",
+		model:        "fake-model",
 	}
 
 	ctx := context.Background()
@@ -618,6 +628,7 @@
 		branchPrefix:  "test-",
 		workingDir:    "/tmp/test",
 		sessionID:     "test-session",
+		model:         "fake-model",
 		slug:          "test-slug",
 		skabandAddr:   "http://localhost:8080",
 	}
@@ -686,6 +697,7 @@
 	mockAgent := &mockAgent{
 		workingDir:   t.TempDir(),
 		branchPrefix: "sketch/",
+		model:        "fake-model",
 	}
 
 	// Create the server with the mock agent
@@ -771,6 +783,7 @@
 	mockAgent := &mockAgent{
 		workingDir:   t.TempDir(),
 		branchPrefix: "sketch/",
+		model:        "fake-model",
 	}
 
 	// Create the server with the mock agent
