diff --git a/cmd/sketch/main.go b/cmd/sketch/main.go
index 1dd4802..ce5646e 100644
--- a/cmd/sketch/main.go
+++ b/cmd/sketch/main.go
@@ -204,6 +204,7 @@
 	gitRemoteURL      string
 	commit            string
 	outsideHTTP       string
+	branchPrefix      string
 }
 
 // parseCLIFlags parses all command-line flags and returns a CLIFlags struct
@@ -234,6 +235,7 @@
 	userFlags.StringVar(&flags.dockerArgs, "docker-args", "", "additional arguments to pass to the docker create command (e.g., --memory=2g --cpus=2)")
 	userFlags.Var(&flags.mounts, "mount", "volume to mount in the container in format /path/on/host:/path/in/container (can be repeated)")
 	userFlags.BoolVar(&flags.termUI, "termui", true, "enable terminal UI")
+	userFlags.StringVar(&flags.branchPrefix, "branch-prefix", "sketch/", "prefix for git branches created by sketch")
 
 	// Internal flags (for sketch developers or internal use)
 	// Args to sketch innie:
@@ -393,6 +395,7 @@
 		ExperimentFlag: flags.experimentFlag.String(),
 		TermUI:         flags.termUI,
 		MaxDollars:     flags.maxDollars,
+		BranchPrefix:   flags.branchPrefix,
 	}
 
 	if err := dockerimg.LaunchContainer(ctx, config); err != nil {
@@ -508,6 +511,7 @@
 		GitRemoteAddr: flags.gitRemoteURL,
 		OutsideHTTP:   flags.outsideHTTP,
 		Commit:        flags.commit,
+		BranchPrefix:  flags.branchPrefix,
 	}
 	agent := loop.NewAgent(agentConfig)
 
diff --git a/dockerimg/dockerimg.go b/dockerimg/dockerimg.go
index 0759b22..cd0906f 100644
--- a/dockerimg/dockerimg.go
+++ b/dockerimg/dockerimg.go
@@ -115,6 +115,9 @@
 
 	// Outtie's HTTP server
 	OutsideHTTP string
+
+	// Prefix for git branches created by sketch
+	BranchPrefix string
 }
 
 // LaunchContainer creates a docker container for a project, installs sketch and opens a connection to it.
@@ -541,6 +544,7 @@
 		"-termui="+fmt.Sprintf("%t", config.TermUI),
 		"-verbose="+fmt.Sprintf("%t", config.Verbose),
 		"-x="+config.ExperimentFlag,
+		"-branch-prefix="+config.BranchPrefix,
 	)
 	if config.Model != "" {
 		cmdArgs = append(cmdArgs, "-model="+config.Model)
diff --git a/loop/agent.go b/loop/agent.go
index f5c6e07..fd01f33 100644
--- a/loop/agent.go
+++ b/loop/agent.go
@@ -66,6 +66,9 @@
 	// Loop begins the agent loop returns only when ctx is cancelled.
 	Loop(ctx context.Context)
 
+	// BranchPrefix returns the configured branch prefix
+	BranchPrefix() string
+
 	CancelTurn(cause error)
 
 	CancelToolUse(toolUseID string, cause error) error
@@ -935,11 +938,18 @@
 	GitRemoteAddr string
 	// Commit to checkout from Outtie
 	Commit string
+	// Prefix for git branches created by sketch
+	BranchPrefix string
 }
 
 // NewAgent creates a new Agent.
 // It is not usable until Init() is called.
 func NewAgent(config AgentConfig) *Agent {
+	// Set default branch prefix if not specified
+	if config.BranchPrefix == "" {
+		config.BranchPrefix = "sketch/"
+	}
+
 	agent := &Agent{
 		config:         config,
 		ready:          make(chan struct{}),
@@ -1312,13 +1322,13 @@
 			if params.BranchName != cleanBranchName(params.BranchName) {
 				return nil, fmt.Errorf("branch_name parameter must be alphanumeric hyphenated slug")
 			}
-			branchName := "sketch/" + params.BranchName
+			branchName := a.config.BranchPrefix + params.BranchName
 			if branchExists(a.workingDir, branchName) {
 				return nil, fmt.Errorf("branch %q already exists; please choose a different branch name", branchName)
 			}
 
 			a.SetBranch(branchName)
-			response := fmt.Sprintf("switched to branch sketch/%q - DO NOT change branches unless explicitly requested", branchName)
+			response := fmt.Sprintf("switched to branch %q - DO NOT change branches unless explicitly requested", branchName)
 
 			styleHint, err := claudetool.CommitMessageStyleHint(ctx, a.repoRoot)
 			if err != nil {
@@ -1338,6 +1348,11 @@
 	return a.ready
 }
 
+// BranchPrefix returns the configured branch prefix
+func (a *Agent) BranchPrefix() string {
+	return a.config.BranchPrefix
+}
+
 func (a *Agent) UserMessage(ctx context.Context, msg string) {
 	a.pushToOutbox(ctx, AgentMessage{Type: UserMessageType, Content: msg})
 	a.inbox <- msg
@@ -1815,7 +1830,7 @@
 }
 
 func (a *Agent) handleGitCommits(ctx context.Context) ([]*GitCommit, error) {
-	msgs, commits, error := a.gitState.handleGitCommits(ctx, a.SessionID(), a.repoRoot, a.SketchGitBaseRef())
+	msgs, commits, error := a.gitState.handleGitCommits(ctx, a.SessionID(), a.repoRoot, a.SketchGitBaseRef(), a.config.BranchPrefix)
 	for _, msg := range msgs {
 		a.pushToOutbox(ctx, msg)
 	}
@@ -1824,7 +1839,7 @@
 
 // handleGitCommits() highlights new commits to the user. When running
 // under docker, new HEADs are pushed to a branch according to the title.
-func (ags *AgentGitState) handleGitCommits(ctx context.Context, sessionID string, repoRoot string, baseRef string) ([]AgentMessage, []*GitCommit, error) {
+func (ags *AgentGitState) handleGitCommits(ctx context.Context, sessionID string, repoRoot string, baseRef string, branchPrefix string) ([]AgentMessage, []*GitCommit, error) {
 	ags.mu.Lock()
 	defer ags.mu.Unlock()
 
@@ -1892,7 +1907,7 @@
 			commits = append(commits, headCommit)
 		}
 
-		originalBranch := cmp.Or(ags.branchName, "sketch/"+sessionID)
+		originalBranch := cmp.Or(ags.branchName, branchPrefix+sessionID)
 		branch := originalBranch
 
 		// TODO: I don't love the force push here. We could see if the push is a fast-forward, and,
diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index 0819459..94d1037 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -76,6 +76,7 @@
 	InitialCommit        string                        `json:"initial_commit"`
 	Title                string                        `json:"title"`
 	BranchName           string                        `json:"branch_name,omitempty"`
+	BranchPrefix         string                        `json:"branch_prefix,omitempty"`
 	Hostname             string                        `json:"hostname"`    // deprecated
 	WorkingDir           string                        `json:"working_dir"` // deprecated
 	OS                   string                        `json:"os"`          // deprecated
@@ -1267,6 +1268,7 @@
 		InitialCommit:        s.agent.SketchGitBase(),
 		Title:                s.agent.Title(),
 		BranchName:           s.agent.BranchName(),
+		BranchPrefix:         s.agent.BranchPrefix(),
 		OS:                   s.agent.OS(),
 		OutsideHostname:      s.agent.OutsideHostname(),
 		InsideHostname:       s.hostname,
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index 8575253..59c5ac9 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -28,6 +28,7 @@
 	initialCommit            string
 	title                    string
 	branchName               string
+	branchPrefix             string
 	workingDir               string
 	sessionID                string
 }
@@ -232,6 +233,7 @@
 func (m *mockAgent) Diff(commit *string) (string, error)         { return "", nil }
 func (m *mockAgent) OS() string                                  { return "linux" }
 func (m *mockAgent) SessionID() string                           { return m.sessionID }
+func (m *mockAgent) BranchPrefix() string                        { return m.branchPrefix }
 func (m *mockAgent) CurrentTodoContent() string                  { return "" } // Mock returns empty for simplicity
 func (m *mockAgent) OutstandingLLMCallCount() int                { return 0 }
 func (m *mockAgent) OutstandingToolCalls() []string              { return nil }
@@ -262,6 +264,7 @@
 		initialCommit:            "abcd1234",
 		title:                    "Test Title",
 		branchName:               "sketch/test-branch",
+		branchPrefix:             "sketch/",
 	}
 
 	// Add the initial messages before creating the server
@@ -395,7 +398,8 @@
 func TestGitRawDiffHandler(t *testing.T) {
 	// Create a mock agent
 	mockAgent := &mockAgent{
-		workingDir: t.TempDir(), // Use a temp directory
+		workingDir:   t.TempDir(), // Use a temp directory
+		branchPrefix: "sketch/",
 	}
 
 	// Create the server with the mock agent
@@ -441,7 +445,8 @@
 func TestGitShowHandler(t *testing.T) {
 	// Create a mock agent
 	mockAgent := &mockAgent{
-		workingDir: t.TempDir(), // Use a temp directory
+		workingDir:   t.TempDir(), // Use a temp directory
+		branchPrefix: "sketch/",
 	}
 
 	// Create the server with the mock agent
@@ -480,6 +485,7 @@
 		messages:     []loop.AgentMessage{},
 		messageCount: 0,
 		sessionID:    "test-session",
+		branchPrefix: "sketch/",
 	}
 
 	ctx := context.Background()
@@ -495,7 +501,9 @@
 // TestPortEventsEndpoint tests the /port-events HTTP endpoint
 func TestPortEventsEndpoint(t *testing.T) {
 	// Create a mock agent that implements the CodingAgent interface
-	agent := &mockAgent{}
+	agent := &mockAgent{
+		branchPrefix: "sketch/",
+	}
 
 	// Create a server with the mock agent
 	server, err := server.New(agent, nil)
@@ -537,7 +545,9 @@
 
 // TestPortEventsEndpointMethodNotAllowed tests that non-GET requests are rejected
 func TestPortEventsEndpointMethodNotAllowed(t *testing.T) {
-	agent := &mockAgent{}
+	agent := &mockAgent{
+		branchPrefix: "sketch/",
+	}
 	server, err := server.New(agent, nil)
 	if err != nil {
 		t.Fatalf("Failed to create server: %v", err)
diff --git a/termui/termui.go b/termui/termui.go
index 1890231..139f09e 100644
--- a/termui/termui.go
+++ b/termui/termui.go
@@ -47,7 +47,7 @@
 {{else if eq .msg.ToolName "title" -}}
 🏷️  {{.input.title}}
 {{else if eq .msg.ToolName "precommit" -}}
-🌱 git branch: sketch/{{.input.branch_name}}
+🌱 git branch: {{.branch_prefix}}{{.input.branch_name}}
 {{else if eq .msg.ToolName "about_sketch" -}}
 📚 About Sketch
 {{else if eq .msg.ToolName "codereview" -}}
@@ -159,7 +159,7 @@
 		return
 	}
 	buf := bytes.Buffer{}
-	if err := toolUseTmpl.Execute(&buf, map[string]any{"msg": resp, "input": inputData, "output": resp.ToolResult}); err != nil {
+	if err := toolUseTmpl.Execute(&buf, map[string]any{"msg": resp, "input": inputData, "output": resp.ToolResult, "branch_prefix": ui.agent.BranchPrefix()}); err != nil {
 		ui.AppendSystemMessage("error: %v", err)
 		return
 	}
diff --git a/webui/src/types.ts b/webui/src/types.ts
index 53cc96f..713f9f6 100644
--- a/webui/src/types.ts
+++ b/webui/src/types.ts
@@ -68,6 +68,7 @@
 	initial_commit: string;
 	title: string;
 	branch_name?: string;
+	branch_prefix?: string;
 	hostname: string;
 	working_dir: string;
 	os: string;
diff --git a/webui/src/web-components/sketch-tool-card.ts b/webui/src/web-components/sketch-tool-card.ts
index 10fc6c0..a6c252a 100644
--- a/webui/src/web-components/sketch-tool-card.ts
+++ b/webui/src/web-components/sketch-tool-card.ts
@@ -1,7 +1,7 @@
 import { css, html, LitElement } from "lit";
 import { unsafeHTML } from "lit/directives/unsafe-html.js";
 import { customElement, property, state } from "lit/decorators.js";
-import { ToolCall, MultipleChoiceOption, MultipleChoiceParams } from "../types";
+import { ToolCall, MultipleChoiceOption, MultipleChoiceParams, State } from "../types";
 import { marked, MarkedOptions, Renderer } from "marked";
 import DOMPurify from "dompurify";
 
@@ -600,6 +600,9 @@
   @property()
   open: boolean;
 
+  @property()
+  state: State;
+
   static styles = css`
     .summary-text {
       font-style: italic;
@@ -630,10 +633,10 @@
     return html`
       <sketch-tool-card .open=${this.open} .toolCall=${this.toolCall}>
         <span slot="summary" class="summary-text">
-          Branch: sketch/${inputData.branch_name}
+          Branch: ${this.state?.branch_prefix}${inputData.branch_name}
         </span>
         <div slot="input">
-          <div>Set branch to: <code>sketch/${inputData.branch_name}</code></div>
+          <div>Set branch to: <code>${this.state?.branch_prefix}${inputData.branch_name}</code></div>
         </div>
       </sketch-tool-card>
     `;
