diff --git a/claudetool/browse/browse_test.go b/claudetool/browse/browse_test.go
index d417a06..f82c35e 100644
--- a/claudetool/browse/browse_test.go
+++ b/claudetool/browse/browse_test.go
@@ -12,7 +12,6 @@
 	"time"
 
 	"github.com/chromedp/chromedp"
-	"github.com/stretchr/testify/require"
 	"sketch.dev/llm"
 )
 
@@ -324,23 +323,37 @@
 		resizeTool := tools.NewResizeTool()
 		input := json.RawMessage(`{"width": 375, "height": 667}`)
 		content, err := resizeTool.Run(ctx, input)
-		require.NoError(t, err)
-		require.Contains(t, content[0].Text, "success")
+		if err != nil {
+			t.Fatalf("Error: %v", err)
+		}
+		if !strings.Contains(content[0].Text, "success") {
+			t.Fatalf("Expected success in response, got: %s", content[0].Text)
+		}
 
 		// Navigate to a test page and verify using JavaScript to get window dimensions
 		navInput := json.RawMessage(`{"url": "https://example.com"}`)
 		content, err = tools.NewNavigateTool().Run(ctx, navInput)
-		require.NoError(t, err)
-		require.Contains(t, content[0].Text, "success")
+		if err != nil {
+			t.Fatalf("Error: %v", err)
+		}
+		if !strings.Contains(content[0].Text, "success") {
+			t.Fatalf("Expected success in response, got: %s", content[0].Text)
+		}
 
 		// Check dimensions via JavaScript
 		evalInput := json.RawMessage(`{"expression": "({width: window.innerWidth, height: window.innerHeight})"}`)
 		content, err = tools.NewEvalTool().Run(ctx, evalInput)
-		require.NoError(t, err)
+		if err != nil {
+			t.Fatalf("Error: %v", err)
+		}
 
 		// The dimensions might not be exactly what we set (browser chrome, etc.)
 		// but they should be close
-		require.Contains(t, content[0].Text, "width")
-		require.Contains(t, content[0].Text, "height")
+		if !strings.Contains(content[0].Text, "width") {
+			t.Fatalf("Expected width in response, got: %s", content[0].Text)
+		}
+		if !strings.Contains(content[0].Text, "height") {
+			t.Fatalf("Expected height in response, got: %s", content[0].Text)
+		}
 	})
 }
diff --git a/dear_llm.md b/dear_llm.md
index 1c01983..51545d9 100644
--- a/dear_llm.md
+++ b/dear_llm.md
@@ -22,3 +22,7 @@
 ## Meta
 
 The program you are working on is Sketch. The program you are running is Sketch. This can be slightly confusing: Carefully distinguish the prompt and tools you have from the codebase you are working on. Modifying the code does not change your prompt or tools.
+
+## Testing
+
+- Do NOT use the testify package. Write tests using the standard Go testing library only.
diff --git a/go.mod b/go.mod
index 462a675..95c16f2 100644
--- a/go.mod
+++ b/go.mod
@@ -3,6 +3,7 @@
 go 1.24.3
 
 require (
+	github.com/chromedp/cdproto v0.0.0-20250403032234-65de8f5d025b
 	github.com/chromedp/chromedp v0.13.6
 	github.com/creack/pty v1.1.24
 	github.com/dustin/go-humanize v1.0.1
@@ -16,7 +17,6 @@
 	github.com/pkg/sftp v1.13.9
 	github.com/richardlehane/crock32 v1.0.1
 	github.com/sashabaranov/go-openai v1.38.2
-	github.com/stretchr/testify v1.10.0
 	go.skia.org/infra v0.0.0-20250421160028-59e18403fd4a
 	golang.org/x/crypto v0.37.0
 	golang.org/x/net v0.39.0
@@ -28,9 +28,7 @@
 
 require (
 	github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
-	github.com/chromedp/cdproto v0.0.0-20250403032234-65de8f5d025b // indirect
 	github.com/chromedp/sysutil v1.1.0 // indirect
-	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/go-json-experiment/json v0.0.0-20250211171154-1ae217ad3535 // indirect
 	github.com/gobwas/httphead v0.1.0 // indirect
 	github.com/gobwas/pool v0.2.1 // indirect
@@ -38,11 +36,9 @@
 	github.com/kr/fs v0.1.0 // indirect
 	github.com/mattn/go-colorable v0.1.13 // indirect
 	github.com/mattn/go-isatty v0.0.20 // indirect
-	github.com/pmezard/go-difflib v1.0.0 // indirect
 	golang.org/x/mod v0.24.0 // indirect
 	golang.org/x/sys v0.32.0 // indirect
 	golang.org/x/text v0.24.0 // indirect
-	gopkg.in/yaml.v3 v3.0.1 // indirect
 )
 
 tool golang.org/x/tools/cmd/stringer
diff --git a/go.sum b/go.sum
index 1e248df..65d5385 100644
--- a/go.sum
+++ b/go.sum
@@ -154,7 +154,6 @@
 golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
 golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
