Skip to content

Working with Threads

In the Tarsk UI, isolated thread workspaces are labeled branches. Each branch is a full git clone on its own git branch with an independent chat session. This page uses “branch” for UI labels and “thread” where referring to the underlying data model.

  1. Select a project to enter the chat view (or project landing page).
  2. Click Branches in the chat footer (bottom-right).
  3. Click + in the popover, or press ⌘⇧T.

Tarsk:

  • Creates a new directory at ~/Library/Application Support/Tarsk/data/{repo-slug}/ (derived from the git URL; numeric suffix if the name already exists)
  • Clones (or copies) the project repository into that directory
  • Checks out a new git branch
  • Runs the project’s Setup Script if one is configured
  • Opens the branch’s chat view

The branch is ready to use. Type a message to start working with the AI agent.

Click Branches in the chat footer and select a branch from the list. Each branch remembers:

  • Its chat history (all previous conversations)
  • The currently selected model
  • Its git branch and all file changes
  • Whether the dev server is running

Status dots next to each branch indicate uncommitted changes (brand color), an open pull request (orange), or agent activity (animated).

Switching branches never interrupts work in other branches. If the AI agent is mid-run in one branch, you can switch to another and the agent keeps running in the background.

Click Open in in the chat header to open the branch’s directory in your preferred IDE:

IDENotes
VS CodeOpens the branch directory as a workspace
CursorOpens the branch directory
WindsurfOpens the branch directory
XcodeOpens the .xcodeproj or .xcworkspace if present
Android StudioOpens the project
KiroOpens the branch directory
TerminalOpens a terminal at the branch directory
Devin DesktopOpens the branch directory in Devin
AntigravityOpens the branch directory in Antigravity IDE

Your preferred editor is saved when you pick one from the Open in menu and applies across projects.

Working in your IDE alongside the chat is a natural flow: ask the agent to make a change, review and adjust it in your editor, then ask for the next step.

When the AI agent is processing a message, an animated status dot appears on that branch in the Branches list. You can switch to other branches or open dock panels while the agent continues in the background.

Hover a branch in the Branches popover and click the trash icon, or use the delete control when prompted. A confirmation dialog appears. Deleting a branch:

  • Removes it from the project and database
  • Deletes the branch’s directory and git clone from disk

This is irreversible. If the git branch was pushed to a remote, it remains there and can be recovered.

A common pattern is running multiple branches simultaneously:

  1. Branch 1: “Implement feature X” — agent is actively writing code
  2. Branch 2: “Write tests for feature X” — agent works independently on the same codebase
  3. Branch 3: “Review the diff for feature Y” — you’re reviewing a previous piece of work

Each branch operates on its own clone, so there are no race conditions or merge conflicts during agent work. You decide when to merge or compare branches afterwards.

ActionShortcut
Create branch⌘⇧T
Toggle sidebar⌘B