On this page
Show commands for

This is the one-time setup every new member of the lab does. Work through it top to bottom and you will finish with a terminal you can live in, Git and GitHub configured so pushing code just works, Claude Code installed, and an editor wired to both.

Set aside about 45 minutes. You will need administrator rights on the machine — if it is a Rutgers-managed computer and you cannot install software, sort that out first, because every step below needs it.

Pick your operating system at the top of the page and the commands will follow you down.

Your terminal

Almost everything here happens at a command line. You need one that you are willing to use daily.

Windows

Windows ships Windows Terminal, and it is good. Press the Windows key, type terminal, and open it. It gives you PowerShell by default, which is all you need.

Pin it to your taskbar now. You will open it several times a day.

macOS

macOS ships Terminal (in Applications → Utilities), which is fine. Many people prefer iTerm2; either works.

You also want Homebrew, the package manager the rest of this guide leans on. Install it with the command from brew.sh, then follow the “Next steps” it prints at the end — on Apple Silicon it will tell you to add Homebrew to your PATH, and skipping that is the single most common reason brew “isn’t found” afterwards.

Check it worked:

brew --version

Linux

Use whatever terminal your distribution ships. Before installing anything else, update your package lists:

sudo apt update && sudo apt upgrade -y

Commands below assume Ubuntu or another Debian-based distribution. On Fedora or Arch, swap apt for dnf or pacman.

Git

Git tracks the history of your code. GitHub, later, is where that history lives online.

Windows

winget install --id Git.Git --source winget

Then close and reopen your terminal so the new PATH takes effect.

macOS

brew install git

Linux

sudo apt install -y git

Now tell Git who you are. This is stamped onto every commit you ever make, so use your real name and the email attached to your GitHub account:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Two settings worth taking while you are here. The first names your default branch main, which is what GitHub expects; the second stops Git from creating confusing merge commits when you pull:

git config --global init.defaultBranch main
git config --global pull.rebase false

GitHub

You need a GitHub account — sign up at github.com if you do not have one, and send your username to Adam so he can add you to the GormleyLab organization.

The part people get wrong is authentication. GitHub has not accepted your account password for Git operations in years, and pasting a Personal Access Token every time you push is miserable. Install GitHub’s official CLI instead and let it handle credentials once:

Windows

winget install --id GitHub.cli --source winget

Close and reopen your terminal afterwards.

macOS

brew install gh

Linux

Ubuntu’s own repository lags well behind, so use GitHub’s. The current keyring-and-apt-source block is maintained at cli/cli → install_linux.md — copy it from there rather than from an older tutorial, then:

sudo apt install gh -y

Then authenticate:

gh auth login

Choose GitHub.com, then HTTPS, and answer yes when it offers to authenticate Git with your GitHub credentials. That last answer is the one that matters — it is what saves you from ever typing a token into a git push prompt.

Confirm it took:

gh auth status

Claude Code

Claude Code is the AI assistant the lab uses. It runs in your terminal, inside whatever project directory you are working in.

Windows

Claude Code runs natively on Windows — you do not need WSL for it. In PowerShell:

irm https://claude.ai/install.ps1 | iex

macOS

curl -fsSL https://claude.ai/install.sh | bash

Homebrew works too (brew install --cask claude-code), but the installer above keeps itself up to date and the Homebrew cask does not.

Linux

curl -fsSL https://claude.ai/install.sh | bash

Close and reopen your terminal, then check the install and let Claude Code diagnose its own environment:

claude --version
claude doctor

To start a session, cd into a project directory and run claude. To leave one, type /exit.

Billing. Lab usage is billed to the lab’s AWS account so it can be charged to the right grant, which takes a little extra configuration. That is covered in the Cloud computing on AWS — do it once you have finished this page, and ask Adam for the credentials it refers to.

The official documentation lives at code.claude.com/docs; if the install itself gives you trouble, go straight to the install troubleshooting page.

An editor

Use VS Code or Cursor. Both are built on the same foundation, so anything below applies to either.

Install these four extensions and stop. Long extension lists mostly slow your editor down:

  • Python (ms-python.python) — language support, debugging, environment selection
  • Ruff (charliermarsh.ruff) — the linter and formatter the lab standardizes on
  • Jupyter (ms-toolsai.jupyter) — notebooks inside the editor
  • WSL (ms-vscode-remote.remote-wsl) — Windows only, and only if you set up WSL below

Turn on format-on-save for Python and let Ruff do it. Open your settings JSON (Ctrl/Cmd + Shift + P → “Preferences: Open User Settings (JSON)”) and add:

"[python]": {
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "charliermarsh.ruff"
}

While you are in the command palette, run “Shell Command: Install ‘code’ command in PATH” (VS Code) so you can type code . in a terminal to open the current folder.

Node.js — only if you need it

Nothing above requires Node. You will need it if you work on the lab website or another JavaScript project, and you can skip this section until then.

When you do need it, do not install it from your Linux distribution’s package manager — Ubuntu 24.04 still ships the Node 18 line, which reached end of life in March 2025. Use one of these instead:

Windows

winget install --id OpenJS.NodeJS.LTS --source winget

macOS

brew install node

Linux

Use a version manager — fnm or nvm — rather than apt. Both are listed with current, copy-pasteable install commands on the official Node.js download page; pick a version manager there and follow what it generates.

Check what you got. The current LTS is Node 24:

node -v
npm -v

Where to keep your code

One rule, and it saves more grief than anything else on this page:

Keep projects in a plain local directory — ~/code or C:\Users\you\code is fine — and let GitHub be your backup and your sync between machines. That is exactly what it is for.

Check your work

Run all four. Every one should print something sensible:

git --version
gh auth status
claude --version
node -v

If they do, you are set up. Move on to Python projects, the lab way, which covers starting an actual project.

Optional: WSL on Windows

WSL runs a real Ubuntu inside Windows. Open PowerShell as administrator and run:

wsl --install

Then reboot. That one command enables the required Windows features and installs Ubuntu; you do not need to visit the Microsoft Store or tick anything in “Turn Windows features on or off” (those were the steps for Windows builds older than 2004). On first launch, Ubuntu asks you to create a username and password — this is a Linux account, separate from your Windows login.

To get back into it later, press the Windows key and type wsl.

To work in WSL from your editor, install the WSL extension, then either run code . from inside a WSL terminal or click the >< indicator in the bottom-left corner of the editor and choose Connect to WSL.

When something goes wrong

“command not found” right after installing something. Close the terminal and open a new one. Installers change your PATH, and an already-open shell does not see the change.

brew not found on a new Mac. You skipped the “Next steps” Homebrew printed after installing. Re-run those two lines and restart the terminal.

git push asks for a username and password. gh auth login either was not run or was not allowed to configure Git. Run it again and answer yes to the Git credentials question.

Claude Code installs but behaves oddly. Run claude doctor first — it checks its own environment and usually names the problem. Then see the troubleshooting docs.

Anything involving permissions on Windows. Check whether you opened PowerShell as administrator. wsl --install in particular requires it.

Still stuck? Ask in the lab Slack. Someone has almost certainly hit the same thing.