Skip to main content
A wooden fingerpost among gum trees pointing several ways beside a trail map, in a three-ink risograph print

Onboarding

The whole course setup as a terse checklist: accounts, tools, your API key, and the course skills plugin, each linking to the full how-to

Everything you need working before the first class, as a checklist. There’s no crit in week 1, but the first crit runs in week 2 with a marked deliverable due at its cutoff, so steps 1–6 need to be working by then; step 7 can wait for the mid-semester break, and step 8 is optional. Where a step has a fuller page it links there — follow those if you hit a snag, and come back here for the fast path.

The early steps you do by hand, because installers and web sign-ups can’t be automated. Once Claude Code is running and the course plugin is installed, the course skills can finish and check the rest for you. If you get properly stuck, post on Ed; the teaching team is watching it from the start of week 1.

1. Create your GitHub account

Sign up — the free tier is fine. Every submission goes through GitHub. Account details and policy: software and platforms.

2. Install the tools

Start with two you install by hand, in this order:

Then one command installs the rest:

mise use -g node@24 pnpm gh jq

That -g makes these your defaults everywhere, which is what you want for tools that aren’t tied to a project (gh, jq) and for a working Node when you’re just experimenting. Inside a repo, the repo wins: mise reads the nearest mise.toml first, and every course template ships one pinning the versions that week was tested against, so mise install in a fresh clone gets you exactly those. Do the same in your own projects.

Already have a runtime manager you like? Keep it, as long as it supplies the Node and pnpm versions each template names — going off piste covers where that leaves you.

The last four have their own installers:

3. Configure and connect

Log in to GitHub from the terminal — this opens a browser:

gh auth login

Choose GitHub.com, then HTTPS, then “Login with a web browser”. The token this creates carries four permissions — repo, read:org, gist and workflow — and there’s nothing useful to trim: the first three are the gh CLI’s hard floor (gh auth refresh --remove-scopes refuses to drop them) and the fourth is what lets you push changes to your repo’s .github/workflows/checks.yml. gh auth status shows what you’re carrying at any time.

The course org is what bounds that token. A token can never do more than you can, and inside comp4020-agentic-coding-studio you can work on your own repo and nothing else: members can’t create repositories, fork private ones, delete anything, or even see a repo they haven’t been added to.

Get your API key from Canvas and wire it into Claude Code, following your LLM access — that page is the single source for the key steps: where the key comes from, the exact settings to add, why the key must never touch a repo, and troubleshooting. Then check it works (VPN connected — campus wifi doesn’t count):

claude --print "say hi"

4. Install the course skills plugin

claude plugin marketplace add comp4020-agentic-coding-studio/core
claude plugin install comp4020@comp4020

The skills change through the semester and the plugin does not update itself, so come back to keeping it current every few weeks — it is two commands and a restart.

5. Let the plugin finish the setup

Everything so far has been typed at your shell. Now start Claude Code itself, which is where the skills live:

claude

Inside that session you can hand the rest to the agent. Ask in plain English, or run the skills directly:

Run /comp4020:help for the full menu.

Prefer to do it all by hand? Go right ahead — the skills only automate the same steps documented on this page and on your LLM access, and check nothing’s been missed.

6. Meet your first repo

You never create course repos yourself: each deliverable’s repo is generated for you from the course starter template and waits in the course GitHub org, named for the deliverable and your handle, private until you ship it public at your cutoff. The assessment page covers that lifecycle; two things on your side make it work:

7. Later: Fly.io, for the full-stack half

None of this is needed for the static half of the course, so leave it until the mid-semester break — but have it working by the week 7 crit, where your tutor checks it at the door. It’s a five-minute job, and there’s no account to create:

  1. Install the CLI: mise use -g flyctl
  2. When your first full-stack repo is created (at the start of week 7, ahead of the week 8 crit), you’ll get an Ed message with a token; paste its block inside the repo
  3. Check it works from inside the repo: flyctl status -a <your-repo-name> should answer

Don’t sign up for a Fly.io account or add a payment method for the course: every app lives in the course-managed organisation, and the course covers billing.

Your hosting access is the whole story: the token, deploying while the repo is private, and the shape your app keeps.

8. Optional: your budget in the status line

Your weekly API budget, live at the bottom of every Claude Code session, green through amber to red as you approach the cap:

comp4020 $41.20/$100 (41%)

It’s a second, separate plugin, so you only run it if you want it:

claude plugin install comp4020-statusline@comp4020

Installing it doesn’t switch the status line on by itself. The plugin brings its own skill for that: ask it to “install the status line” and it writes the settings for you, leaving any status line you already have alone. That same skill is who to ask if the status line is ever blank or stuck. It needs jq (step 2) and a Unix shell, so macOS, Linux or WSL.

The number is cached and refreshed in the background, so it lags your real spend by up to a minute. Ask Claude “how much budget do I have left?” whenever you want the authoritative figure. Off the VPN it shows the last figure it managed to fetch, and budget: ? means it hasn’t reached the proxy yet.

Footnotes

  1. Piping a URL straight into your shell runs whatever that server sends, with your privileges, sight unseen. It’s a reasonable thing to do for a publisher you’ve decided to trust and a bad habit everywhere else — so don’t let this page teach you the reflex. To check first, curl -fsSL https://mise.run/zsh -o mise-install.sh, read it, then sh mise-install.sh — the same two-step works for any install script on this page. Or skip the script entirely: mise is in Homebrew (brew install mise) and most distro archives, in which case follow mise’s install docs to add the shell activation line yourself. 2

  2. Ubuntu still ships gh 2.45, which is too old to flip a repo public non-interactively — so the failure lands when you ship at a crit cutoff, the worst possible moment to be debugging your package manager. mise’s build is current, and /comp4020:doctor checks for exactly this.