GIT mode and Cowboy mode
Friday runs in one of two modes. The mode is picked at startup based on where you launch from. You can't switch mid-session; restart with the right flag.
Which mode am I in?
- Launched in a git repo, no flags: GIT mode.
- Launched outside a git repo: Cowboy mode (auto-fallback).
- Launched with
friday --cowboy(or-c): Cowboy mode.
Friday's header shows the current branch in GIT mode. In Cowboy mode there's no branch line.
What changes between them
| GIT mode | Cowboy mode | |
|---|---|---|
| Thread isolation | Each thread runs in its own worktree on friday/thread/<id> | All threads share Dispatch's directory |
| Branches | Each thread on its own branch | None |
| Merge model | AcceptThread queues a cherry-pick onto your current branch | No merging; changes land in place |
/base-branch | Available | Not available |
/pr-stack | Available | Not available |
/diff modal | Reads git status and git diff | Available, limited |
| GitHub PR tools | Dispatch can create and update PRs | Not exposed |
| Parallel work | Real isolation, real parallelism | Threads exist but share the directory; risk of stepping on each other |
When to use GIT mode
Almost always. GIT mode is the path the rest of these docs assume. Use it when:
- You're working in a project that has a git history.
- You want each piece of work on its own branch.
- You want to run more than one thread at a time.
- You want to open PRs from inside Friday.
This is the default. You don't need a flag.
When to use Cowboy mode
Use it when there's no git repo, or a repo would get in the way: scratch directories, config files, one-off scripts. See Cowboy mode for the full list and the gotchas.
Trade-offs
GIT mode buys you isolation at the cost of more git activity. Every thread is a real branch with real commits. If you abandon a thread, the branch may stay around (Friday keeps it if there are commits ahead of source). That can leave behind friday/thread/<id> branches you'll want to prune from time to time.
Cowboy mode is faster to spin up (no worktree creation, no branch creation) but you lose the safety net. Two threads editing the same file will overwrite each other; there's no merge queue to catch it. Treat it as single-threaded.
Read next
- Cowboy mode: the page-of-record for Cowboy specifics.
- Worktrees: how GIT-mode threads stay isolated.
- Dispatch, threads, and subagents: the agent model that both modes share.