Adding User Guide to README.md
diff --git a/README.md b/README.md
index 618704e..52ef677 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,63 @@
 
 Join if you want! https://discord.gg/6w9qNRUDzS
 
+## User Guide
+
+Start sketch by running `sketch` in a git repository. It will open your browser
+to the Sketch chat interface, but you can also use the CLI interface. Use `-open=false`
+if you want to use just the CLI interface.
+
+Ask Sketch about your code base or ask Sketch to implement a feature. It may take
+a little while for Sketch to do its work, so hit the bell (🔔) icon to enable
+browser notifications. We won't spam you or anything; it will notify you
+when the Sketch agent's turn is done, and there's something to look at.
+
+### How Sketch Works
+
+<!-- TODO: innie/outtie picture -->
+
+When you start Sketch, it creates a Dockerfile, builds it, copies your
+repository into it, and starts a Docker container, with the "inside" Sketch
+running inside. This design let's you <b>run multiple sketches in parallel</b>
+since they each have their own sandbox. It also lets Sketch work without worry:
+it can trash its own container, but it can't trash your machine.
+
+Sketch's agentic loop uses tool calls (mostly shell commands, but also a handful
+of other important tools) to allow the LLM to interact with your code base.
+
+### Getting Your Git Changes Out
+
+<!-- TODO: git picture -->
+
+Sketch is trained to make git commits. When those happen, they are
+automatically pushed to the git repository where you started sketch with branch
+names `sketch/*`. Use `git branch -a --sort=creatordate | grep sketch/ | tail`
+to find them. The UI keeps track of the latest branch it pushed and displays it
+prominently. You can use `git cherry-pick $(git merge-base origin/main
+sketch/foo` or `git merge sketch/foo` or `git reset --hard sketch/foo` and so
+on to pull those branches into your workspace. Use the same workflows you would
+as if you were pulling in a friend's Pull Request.
+
+You can ask Sketch to `git fetch sketch-host` and rebase onto some commit or
+other. Doing so will also fetch where you started Sketch, and we do a bit of
+"git fetch refspec configuration" to make `origin/main` work as a git reference.
+
+Don't be afraid of asking Sketch to rebase, merge/squash commits, rewrite commit
+messages, and so forth; it's good at it!
+
+### Reviewing Diffs
+
+The diff view shows you changes since Sketch started. Leaving comments on lines
+adds them to the chat box, and, when you hit send, Sketch goes to work addressing your
+comments.
+
+### Using the Browser Tools
+
+You can ask Sketch to browse a web page and take screenshots. There are tools
+both for taking screenshots and "reading images," the latter of which sends the
+image to the LLM. This functionality is handy if you're working on a web page and
+want to see what the in-progress change looks like.
+
 ## Development
 
 [![Go Reference](https://pkg.go.dev/badge/sketch.dev.svg)](https://pkg.go.dev/sketch.dev)