Review and ship
Every change an agent makes is visible to you. This page shows you how to review those changes, copy them into your own checkout, and open a pull request.
Follow every step
A thread shows what the agent did as it happens:
- Commands and tool calls, each with its input and output.
- File reads and edits. Edits appear as coloured diffs.
- Plans and subagents. See Threads.
For the full record, open Activity. It lists every event with its time, including sandbox steps and governance decisions. Press Verify audit to check that the log hasn't been changed.
Review the changes
Open Files, then the Changes tab. It lists every file the thread added, changed, renamed or deleted, with the number of lines added (+) and removed (−).
Select a file to see its diff:
- Removed lines are red and added lines are green.
- Use Changes and File to switch between the diff and the whole file.
- A new file opens on its content.
The diff compares against the commit the thread started from. It includes the agent's own commits as well as uncommitted edits. A very large diff is cut short with a note.
If the agent wrote an HTML report, the thread's output bar shows Open report ↗. It opens in your browser.
Copy the changes into your checkout
To test the work on your own machine:
- Press ⬇ Copy to this Mac in the thread toolbar. On Windows the button reads ⬇ Copy to this PC.
- Check the destination. It is your checkout of the project, unless you press Choose a folder.
- Read the list. Each file is marked New, Replaces or Deletes.
- Press Copy N files, where N is the number of files. If existing files would be overwritten, the button reads Overwrite and copy N files instead. Commit or stash your own changes first.
- When the copy finishes, press Open folder or Open in VS Code.
Only the files the agent changed are copied, including its commits. Git-ignored files are left out, and nothing else in the folder is touched. Your branch then shows the work as local changes, which you can see with git status and git diff. Copying never wakes the sandbox, and each copy is recorded in the thread's Activity log.
Push a branch and open a pull request
Threadrun has no Open pull request button. The agent opens the pull request when you ask it to. Set this up once:
- Connect GitHub under Settings → Accounts → GitHub. You can use the GitHub CLI (
gh auth login), aGH_TOKENenvironment variable, or a token you paste into the app. The app keeps a pasted token in your keychain. - Make sure the token can push. It needs the
reposcope, or Contents and Pull requests read and write access for a fine-grained token. Create a token ↗ opens GitHub withrepo,workflowandread:orgpre-filled. - Start the thread on a GitHub project. If GitHub isn't connected, the composer warns The agent won't be able to push.
Then say what you want in your task. For example: "When you're done, commit to a new branch, push it, and open a pull request." On a GitHub project, each thread works on its own branch.
Commits use your GitHub name and your no-reply email address. In the sandbox, the token lives in memory and is never written to the workspace.
Preview results
- Files previews Markdown, code, images, SVG and CSV without leaving Threadrun.
- HTML pages render inside Threadrun, in a built-in browser (Page), with their styles, scripts and images. Code shows the source. Links to other websites open in your own browser.
- Open in browser ↗ opens a page or PDF in your own browser, through a private link that works only for that thread.
Export a thread
Open Activity and press Export JSONL. Threadrun saves every event in the thread, one per line. Keep the file as a record, or share it. See Threads.