Skip to content

Setup manual

The full install, in plain English.

Eight short sections, every command copy-paste, and a "how to know it worked" check after each step.

Install

Two downloads. One pairing token.

Grab the Chrome extension and the helper script. The full step-by-step guide is right below.

$ node gitlove-agent.mjs start

Setup tutorial

The full install, in plain English.

Designed for non-technical users. Every command is copy-paste, every step has a "how to know it worked" check.

Before you start

Install these three things once. After that, mirroring takes seconds.

Git

The tool that actually copies the code.

Download

Check it worked: git --versiongit version 2.x.x

Node.js (LTS)

Runs the small helper program on your computer.

Download

Check it worked: node --versionv20.x.x or higher

Git LFS (for large files) ships with Git for Windows. On macOS run brew install git-lfs; on Linux sudo apt install git-lfs. Then run git lfs install once.

Add an SSH key to GitHub

An SSH key lets your computer push to GitHub without typing a password. You only do this once per computer.

1Generate a key

Open PowerShell (Windows) or Terminal (macOS / Linux) and paste:

ssh-keygen -t ed25519 -C "your-email@example.com"

Press Enter to accept the default location. Press Enter twice more to skip the passphrase.

2Copy the public key to your clipboard
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
3Paste it into GitHub
Open GitHub SSH settings

Paste into the Key box. Give it any title. Click Add SSH key.

4Test it
ssh -T git@github.com

Expected: Hi <your-username>! You've successfully authenticated…
If it asks "Are you sure you want to continue connecting?" type yes and press Enter.

Step 1 — Install the Chrome extension

The extension is the UI for GitLove. It opens as a side panel in Chrome.

Download extension (.zip)
  1. Unzip the downloaded file. Remember where the folder is.
  2. Open a new Chrome tab, type chrome://extensions and press Enter.
  3. Turn on Developer mode (top-right switch).
  4. Click Load unpacked and pick the unzipped folder.
  5. Click the puzzle icon in Chrome's toolbar and pin GitLove.

Step 2 — Start the helper on your computer

The helper is a tiny program that does the actual git work. It listens only on your own machine (127.0.0.1) — nothing is exposed to the internet.

Windows PowerShell has its own curl that works differently and will give you an "Invalid URI" error. Use the three commands below exactly — one at a time.
  1. 1Make a folder for the helper
    mkdir $env:USERPROFILE\gitlove; cd $env:USERPROFILE\gitlove
  2. 2Download the helper file
    Invoke-WebRequest -Uri "https://gitlove.nulis.in/agent/gitlove-agent.mjs" -OutFile "gitlove-agent.mjs"
  3. 3Start the helper
    node gitlove-agent.mjs start
Paste one command at a time. Press Enter, wait until you get a new prompt, then move to the next one.
What you should see
GitLove agent v0.2.0
Listening on http://127.0.0.1:7878
Pairing token: a7f3-9c2e-bb14-...   ← copy this

Leave this window open. Closing it stops GitLove.

How to know it worked: You see Listening on http://127.0.0.1:7878 in the terminal and a pairing token printed below it.

Step 3 — Connect the extension to the helper

  1. Click the GitLove icon in Chrome to open the side panel.
  2. Open the Setup tab.
  3. Paste the pairing token from the helper window, then click Save.

The helper status dot at the top of the panel should turn green.

How to know it worked: The pill at the top-right of the side panel reads Helper v0.3.0 with a green dot.

Step 4 — Connect your GitHub account

So GitLove can show your repos in a searchable list (instead of you typing each URL). The token stays in your browser and is only used to read your repo list from GitHub.

Open GitHub token page
  1. Click the button above (the link pre-fills the name and three scopes).
  2. Set Expiration to whatever you like (e.g. 90 days or No expiration). Leave the scopes repo, delete_repo, and workflow checked. Click Generate token.
  3. Copy the token (starts with ghp_…). You won't see it again on GitHub.
  4. In the GitLove side panel → SetupGitHub account, paste it and click Connect GitHub.
The token never leaves your browser except to call api.github.com. GitLove has no servers — there's nothing to send it to. You can revoke it at any time from GitHub's token page.
Prefer a fine-grained token? Create one with Repository access: All repositories (or just the ones you want to mirror) and Repository permissions → Contents: Read-and-Write, Administration: Read-and-Write (for delete), and Workflows: Read-and-Write.
Your org uses SSO? After creating the token, go to github.com/settings/tokens, click Configure SSO next to your new token, and authorize each org.
How to know it worked: The GitHub account step in the side panel shows your avatar and "N repos".

Step 5 — (Optional) Pin a default destination

If you mostly mirror into one repo (e.g. the one connected to Vercel), pin it once so you can pick it with a single click in the side panel.

  1. Make sure the destination repo exists on GitHub. Open github.com/new if you need to create a new empty repo.
  2. In the GitLove panel, open the Setup tab.
  3. Under Saved destinations, give it a name (e.g. "Main · Vercel") and paste its SSH URL — git@github.com:owner/main.git.
  4. Click Add destination. The first one you add becomes the default.
Skipping this is fine — you can pick any destination from the search box on the Mirror tab.
How to know it worked: The destination shows up under Saved destinations in the side panel with a green default badge.

Step 6 — Mirror a repo

Once setup is done, mirroring is three clicks.

  1. Click the GitLove icon in Chrome to open the side panel, then switch to the Mirror tab.
  2. Source repo — start typing the repo name to search your account, or paste any GitHub URL. If you're already on a GitHub repo page, GitLove suggests it under "Found on this tab".
  3. Destination — pick a pinned destination chip, or search/paste the same way.
  4. Click Start mirror. The panel shows live progress and a green checkmark when it's done.

Your last 5 runs stay in the Mirror tab. Click Run again on any of them to refresh that mirror in one click.

How to know it worked: The run screen ends with Mirror complete and a "Open destination on GitHub" button.