# Git

Clone a Beeuni project's repository, push changes, and review agent work through change requests.

Canonical page: https://beeuni.ai/docs/git

Each project has a git repository. It stores your agents, skills, configuration,
and accumulated state. Use the web app, the Beeuni CLI, or your own git client
to edit it.

## Clone a project

Install the [CLI](/docs/cli), sign in, and clone the project:

```bash
beeuni login
beeuni projects clone <project_id> my-project
cd my-project
```

The CLI configures authentication for the project. Find the clone address under
**Customize → Settings → Git repo → Use your own Git client**. Use the project's
`git_origin_url`, returned by `beeuni projects info <project_id> --json`.

Your Beeuni token authenticates the clone. Credentials for a connected git
account stay on the server.

## Edit and push

Create a branch, edit your files, and push the change:

```bash
git checkout -b improve-triage
# Edit agents/, skills/, or beeuni.yaml.
git add .
git commit -m "Improve ticket triage"
git push origin improve-triage
beeuni cr open --head improve-triage --title "Improve ticket triage"
```

You need permission to read the project repository to clone or fetch it.
Writing and merging need their own permissions. A refused operation does not
grant additional access.

## Session branches

Each [session](/docs/work/sessions) starts on a separate branch named after its
session ID. The default starting point is the project's default branch.
You can fetch a session's branch with your own git client to inspect its work.

The agent commits its changes and opens a [change request](/docs/work/change-requests).
Review the diff and checks before merging. Session changes stay separate until
the change request merges.

## Change requests

The project's **Review** page lists change requests. Open one to inspect its
diff, discuss the changes, and merge or close it. The CLI provides the same flow:

```bash
beeuni cr ls
beeuni cr view <change_request_id>
beeuni cr diff <change_request_id>
beeuni cr merge <change_request_id>
```

Agents have no merge permission by default. A project admin can explicitly grant
`project.gitops.merge`. The grant and the agent's role both constrain its access.

## Apply configuration changes

Agents, skills, and tools use the configuration on the project's base branch.
Merge configuration changes there, then reload a running session when needed.
Editing the session's own branch alone does not change its active configuration.
See [Config convergence](/docs/work/runtime#config-convergence).
