From scratch
This page is for the person who has never done any of this: a laptop, a work email, and a report to publish. It takes about half an hour, once. After it, everything else is a conversation with Claude Code inside the project (/setup-project, /new-report, /publish) — you will not need to remember these tools.
1. A GitHub account, in the organisation
Section titled “1. A GitHub account, in the organisation”- Create an account at github.com/signup with your work email. Choose a username you are happy to see next to reports (it appears in the history of every change).
- Turn on two-factor authentication when GitHub asks (Settings → Password and authentication). The organisation requires it.
- Send your username to whoever looks after the organisation and ask to be added to the organisation (for CSDR: SustainableDevelopmentReform). They add you under People → Invite member.
- Accept the invitation — it arrives by email and also at
https://github.com/orgs/<organisation>/invitation. Until you accept, you can see nothing.
That is all GitHub asks of you. You will never type into GitHub’s website again if you don’t want to; the command line and Claude Code do the rest.
2. The tools
Section titled “2. The tools”Pick your system. Everything below is free.
Open Terminal (⌘ Space, type “Terminal”) and paste one line at a time:
xcode-select --install # Git and Apple's build tools (a dialog appears; click Install)/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Homebrew, the package managerbrew install gh node@22 fnm # GitHub CLI · Node 22 · a Node version switchercorepack enable # turns on pnpm, the package tool this project usesbrew install --cask visual-studio-code # optional: VS CodeIf Homebrew ends with a note about adding it to your PATH, paste those two lines it prints, then close and reopen Terminal.
Windows
Section titled “Windows”Open PowerShell (Start, type “PowerShell”) and paste one line at a time:
winget install --id Git.Git -ewinget install --id GitHub.cli -ewinget install --id OpenJS.NodeJS.LTS -e # Node 22 LTSwinget install --id Microsoft.VisualStudioCode -e # optional: VS CodeClose PowerShell and open it again so the new commands are found, then corepack enable. Where this guide says “terminal”, use PowerShell (or Git Bash, which Git installed).
git --version # git version 2.xnode -v # v22.13 or newer (the project needs ≥ 22.13)pnpm -v # 10.xgh --version # gh version 2.xAnything missing → close the terminal, open it again, try once more; then ask.
3. Sign the GitHub command line in
Section titled “3. Sign the GitHub command line in”gh auth loginAnswer: GitHub.com → HTTPS → Authenticate Git with your GitHub credentials? Yes → Login with a web browser. Copy the one-time code it shows, press Enter, paste the code in the browser, approve. Back in the terminal:
gh auth status # Logged in to github.com account <you>This is the sign-in Claude Code uses to create repositories, open pull requests and merge for you. Nothing else needs a password.
4. Claude Code
Section titled “4. Claude Code”npm install -g @anthropic-ai/claude-code # macOS · Windows PowerShell alikeclaude # first run: choose "Log in", your browser opens, sign in to your Claude account(Alternative installers: macOS curl -fsSL https://claude.ai/install.sh | bash, Windows irm https://claude.ai/install.ps1 | iex.) You need a Claude account with Claude Code access (a Pro/Max/Team plan, or an organisation API key your admin gives you). Type /exit to leave. If you use VS Code, install the Claude Code extension from the Extensions view too — it runs the same thing in a side panel.
5. The project on your computer
Section titled “5. The project on your computer”Either start a new project from the template:
gh repo create <organisation>/<project-name> --template SustainableDevelopmentReform/csdr-project --private --clonecd <project-name>(--private matters: the organisation’s deployment keys reach private repositories only. Creating the repository also runs a first deploy by itself — green, and it publishes nothing: the two addresses are reserved and show a being set up page until /setup-project below has been merged.)
or join an existing one:
gh repo clone <organisation>/<repo-name>cd <repo-name>Then:
pnpm install # once; a minute or twoclaude # you are now talking to the projectFor a new project say /setup-project — Claude asks what the site is called, where it should live, who may see the private site and how they sign in, then opens the first pull request; merging it publishes both sites. For an existing project just start: /new-report, /validate, /publish, /update-template. Claude runs every git command; you never type git.
When something goes wrong
Section titled “When something goes wrong”gh: command not found/claude: command not found— the terminal was open before you installed it. Close it, open a new one.- “Permission denied” or “not found” when creating or cloning a repository — your organisation invitation is not accepted yet (step 1.4), or
gh auth statussays you are not logged in (step 3). node -vshows 18 or 20 — an older Node came first. macOS:fnm install 22 && fnm use 22(and follow fnm’s one-line shell setup); Windows: uninstall the old Node from Settings → Apps and rerun the winget line.- Corporate laptop blocks installers — ask IT to install Git, Node 22, GitHub CLI and VS Code; the rest (steps 3–5) needs no admin rights.
- You do not have a Cloudflare login — correct: you never need one. Publishing runs in GitHub Actions with the organisation’s credentials; see Deploy.