DocsAgenC Desktop

Git and pull requests

GitHub CLI sign-in, commit identity, per-project workflow with isolated worktrees, and the pull request rail under the chat.

Most coding work ends in Git: commits, branches, pull requests. AgenC Desktop helps in three places:

  • Settings > Git connects GitHub, sets who commits, and tells the agent how each project likes its commits and pull requests.
  • An isolated worktree option gives every new session in a project its own branch and folder, so parallel sessions do not step on each other.
  • The pull request rail under the chat shows the project's pull requests and their checks while you work.

The agent does the Git work itself, with its normal tools and your permission mode. These settings guide it; they never grant permission to commit, push or merge.

Connect GitHub

The GitHub group in Settings > Git shows whether the GitHub CLI (gh) is installed and signed in: "Signed in as" your account, "Not signed in", or "GitHub CLI not found" ("Install gh, then refresh.").

  • Sign in (or Switch token) asks for a personal access token ("ghp_… or github_pat_…") and passes it to the GitHub CLI. The app does not store it.
  • Refresh checks again.
  • Manage access tokens opens GitHub's token page, where you control which repositories the token can reach.

The pull request rail and the pull request marks in the sidebar use this sign-in.

Default commit identity

Default commit identity sets your Git name and email, with Save. It "Applies to Git outside AgenC too. A project can override it." After saving, the app reads the values back and says "Identity saved and verified."

Project settings

Project settings configures one repository. It opens on the current session's folder; Choose project picks another. The app reads the repository's status, branches, remotes and identity without changing anything, and shows whether the working tree is clean.

New sessions

  • Workspace: "Keep this folder or create an isolated worktree and branch."
    • Current folder: sessions work in the checkout as it is.
    • Isolated worktree: each new session gets its own Git worktree and a new branch, created from the base branch. Uncommitted changes in your checkout are not copied or discarded.
  • Base branch: the starting commit for worktrees and the preferred target for pull requests. It does not fetch. Current commit (HEAD) is one choice.
  • Branch prefix: "Each worktree gets a unique branch with this prefix."

Agent workflow

"Included in the agent's context for new sessions. These preferences do not grant permission to commit, push or merge."

  • Commit messages: Repository convention or Conventional commits.
  • Local checks: commands the agent is asked to run before a pull request, one per line, up to 8. Saving does not run them.
  • Pull requests: Draft or Ready for review.
  • Preferred merge method: Squash, Merge commit or Rebase.

Click Save workflow. "Existing sessions keep the settings they started with." Saving runs no commands, fetches nothing and opens no pull request.

Project commit identity

Identity is Inherit Git identity or Project override, with a name and email that apply only to this repository. Save project identity writes them to the repository's local Git configuration, or removes the local override when you choose inherit. Your global identity does not change.

How worktrees behave

  • Workflow settings are shared by every worktree of the same repository.
  • A session keeps a snapshot of the settings it started with. Editing the project later does not change older sessions.
  • Reopening a session, or continuing one whose agent ended, reuses its worktree with any uncommitted work.
  • Worktrees and their branches are never deleted automatically, even after a session fails to start. Review them, then remove them with Git.
  • Managed worktrees live in the app's data folder, under git-workflow.
  • When a session in Bypass permissions uses a worktree, the worktree is what gets trusted, not your original checkout.

The pull request rail

When a session starts working with Git, a rail appears under the composer with the pull requests of that repository. One shows at a time, and "Show N more" opens the rest over the chat. Each row shows the branch, the lines added and removed, and either its checks or its final state. CI checks opens a summary with how many checks passed, failed or are still running. Click a row to open the pull request in the app's browser. Dismiss removes a row from the rail. A repository without pull requests shows its branch instead, with the number of uncommitted changes or "clean".

The rail needs the GitHub CLI signed in.

Pull requests in the sidebar

When a session's branch has a pull request, its sidebar row shows a branch mark once the session is idle. The tooltip gives the repository, the number and the state: open, draft, checks running, checks failing, has conflicts, merged or closed.

Goal mode and Git

Goal mode always works in its own worktree and leaves its result as a commit; see Goal, Swarm and Plan.