Git skills for coding agents. They are agentskills.io-compliant and shipped as a Claude Code plugin.
agitentic:git-fork— fork a GitHub repository and clone it with the contributor-style two-remote layout. The local default branch tracksupstream/<default>; aforkremote points at your fork.agitentic:git-clone— clone a repo locally with the same two-remote layout, against an existing fork (no fork creation, no repo-settings changes).agitentic:git-sync— fetchupstream/<branch>and propagate it to local<branch>andfork/<branch>. Fast-forward by default;--forceallows hard-reset + force-push. Branch defaults to upstream's default branch.agitentic:git-create— create a new public GitHub repository, initialise a local clone with one empty commit onmain, push, and apply your standard repo settings.
Each skill lives under plugins/agitentic/skills/<name>/ and is a
self-contained agentskills.io skill (SKILL.md + a scripts/
directory).
The repo is a Claude Code plugin marketplace. Install via:
/plugin marketplace add robobryce/agitentic
/plugin install agitentic@robobryce-agitentic
Then invoke a skill by name, e.g. /agitentic:git-fork.
Each skill is a thin wrapper around a self-contained shell script. You can call them directly:
plugins/agitentic/skills/git-fork/scripts/git-fork <repo> [account] [directory]
plugins/agitentic/skills/git-clone/scripts/git-clone <repo> [account] [directory]
plugins/agitentic/skills/git-sync/scripts/git-sync [--branch <branch>] [--force]
plugins/agitentic/skills/git-create/scripts/git-create <name> [account] [directory]Or drop them on your $PATH to make them git subcommands:
cp plugins/agitentic/skills/git-fork/scripts/git-fork ~/bin/git-fork
cp plugins/agitentic/skills/git-clone/scripts/git-clone ~/bin/git-clone
cp plugins/agitentic/skills/git-sync/scripts/git-sync ~/bin/git-sync
cp plugins/agitentic/skills/git-create/scripts/git-create ~/bin/git-create
git fork brevdev/brev-cli
git clone brevdev/brev-cli
git sync
git create my-tool<repo>—owner/name, or a GitHub HTTPS / SSH URL.[account]— destination owner for the fork. Defaults to the authenticatedghuser. Pass""to use the default while still specifying[directory].[directory]— local directory to clone into. Defaults to the repo name.
After forking, git-fork applies repo settings to the fork via
gh repo edit (see Repo settings below).
Example:
$ git-fork brevdev/brev-cli
==> Cloning brevdev/brev-cli (remote: upstream)
==> Forking brevdev/brev-cli → robobryce/brev-cli
==> Applying repo settings to robobryce/brev-cli
==> Adding fork remote → https://github.com/robobryce/brev-cli.git
==> Done.
fork https://github.com/robobryce/brev-cli.git (fetch)
fork https://github.com/robobryce/brev-cli.git (push)
upstream https://github.com/brevdev/brev-cli.git (fetch)
upstream https://github.com/brevdev/brev-cli.git (push)<repo>—owner/name, or a GitHub HTTPS / SSH URL. The upstream repo.[account]— owner of the existing fork. Defaults to the authenticatedghuser. Pass""to use the default while still specifying[directory].[directory]— local directory to clone into. Defaults to the repo name.
Unlike git-fork, this does not create a fork or apply repo settings —
the fork must already exist on GitHub.
Example:
$ git-clone brevdev/brev-cli
==> Verifying fork robobryce/brev-cli exists
==> Cloning brevdev/brev-cli into ./brev-cli (remote: upstream)
==> Adding fork remote → https://github.com/robobryce/brev-cli.git
==> Done.
fork https://github.com/robobryce/brev-cli.git (fetch)
fork https://github.com/robobryce/brev-cli.git (push)
upstream https://github.com/brevdev/brev-cli.git (fetch)
upstream https://github.com/brevdev/brev-cli.git (push)Fast-forward local <branch> and fork/<branch> to upstream/<branch>.
Without flags, refuses to discard divergent commits; pass --force for
a hard-reset + force-push (--force-with-lease). <branch> defaults
to upstream's default branch.
Example:
$ git-sync
==> Fetching upstream/main
==> Fast-forwarding local main to upstream/main
==> Pushing main → fork
==> Done.
local main → 5ad5c19...
fork/main → 5ad5c19...<name>— repository name. Just the name, notowner/name(use[account]for the owner).[account]— GitHub user or organization. Defaults to the authenticatedghuser. Pass""to use the default while still specifying[directory].[directory]— local directory to initialise. Defaults to the repo name.
Creates github.com/<account>/<name> (public), initialises
./<directory>, makes an empty initial commit on main, pushes, and
applies repo settings (see Repo settings below).
Example:
$ git-create my-tool
==> Creating robobryce/my-tool on GitHub (public)
==> Initialising ./my-tool
==> Pushing initial commit
==> Applying repo settings to robobryce/my-tool
==> Done.
origin https://github.com/robobryce/my-tool.git (fetch)
origin https://github.com/robobryce/my-tool.git (push)git-fork and git-create both apply repo settings to the GitHub repo
they touch (the new fork or the new repo, respectively). Defaults:
| Setting | Default |
|---|---|
delete-branch-on-merge |
true |
enable-wiki |
false |
enable-projects |
false |
enable-merge-commit |
false |
enable-squash-merge |
false |
Override any subset of these by writing a [repo] section in
~/.agitentic (git config format):
[repo]
enable-wiki = true
enable-merge-commit = trueKeys map to gh repo edit flags. Built-in defaults still apply for
keys not in the file, so you only need to specify what you want to
change. Set $AGITENTIC_CONFIG to read from a different path.
The following must be in your $PATH:
bashgitgh, the GitHub CLI. It must be authenticated.
.claude-plugin/
marketplace.json - Claude Code plugin marketplace manifest
plugins/
agitentic/
.claude-plugin/
plugin.json - Plugin manifest
skills/
${SKILL}/ - An individual skill
SKILL.md - agentskills.io skill (metadata + instructions)
scripts/
.github/workflows/ci.yml - Lint scripts, validate manifests, sanity-check skills
LICENSE.txt - Apache 2.0 with LLVM exception
Apache License 2.0 with LLVM exception. See LICENSE.txt.