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:
- A terminal emulator — macOS Terminal, iTerm2, Windows Terminal, or whatever ships with your Linux distro; if you don’t currently have a favourite, Ghostty is a good choice. You’ll be living in this for the whole course
- mise — the tool installer the course uses. It
needs no
sudo, and it pins versions per project, so different prototypes can use different runtimes without you having to think about it. Use the shell-specific installer —curl https://mise.run/zsh | shfor zsh (the macOS default),bashorfishin place ofzshotherwise — because that variant also wires mise into your shell1. Restart your terminal afterwards
Then one command installs the rest:
mise use -g node@24 pnpm gh jq
- Node and pnpm — whatever
stack you pick for your own prototypes, every weekly starter repo runs its dev
server and checks on these (Node 24, pnpm 11), so
pnpm installhas to work before your first crit gh, the GitHub CLI — authenticating, cloning, and working with pull requests from the terminal. Install it this way even if your distro packages it2jq— a JSON processor for the terminal, which the course skills use to work out your deadlines and to show your budget in the status line
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:
- Git — most Linux distros ship it; on macOS
xcode-select --installis the shortest path - Claude Code —
the coding agent you’ll work in, installed with
curl -fsSL https://claude.ai/install.sh | bash1. It keeps itself up to date from then on, so there’s no version to pin. The course provides your Claude access, so you don’t need a personal Anthropic account or subscription - ANU VPN (GlobalProtect) — connect it whenever you’re using your course key, on campus as well as off (the campus wifi doesn’t reach the course gateway — only wired campus Ethernet works without it). Install and test it in week 1; a dropped VPN is a common cause of “it suddenly stopped working”
- Chrome (version 140 or newer) — the course standardises on Chrome so everyone sees the same thing in lectures and demos, and a recent version keeps the modern web-platform features we rely on available
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:
/comp4020:doctor— checks the whole environment (Git,ghlogin, Chrome,jq, the proxy, your course org membership) in one pass and offers to fix what’s missing. Start here: it tells you what, if anything, is left to do/comp4020:onboard— does the fixing: your key, the org invitation, your crit group. Every step re-runs on its own, so you can come back later for just one of them
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:
- accept the course org invitation when it arrives on your GitHub account, promptly — invitations expire after seven days and a lapsed one has to be re-sent
- run
/comp4020:startat the start of each week: it clones the week’s repo, carries yourCLAUDE.mdforward, and pulls the week’s spec so you can turn it into tests. Your first run is for C1, the week 2 crit whose prototype you build in week 1 - clone the lecture examples once, alongside your own repos:
gh repo clone comp4020-agentic-coding-studio/lecture-demos. Pull it at the start of each class if you want to run the code on screen - keep them in one folder — pick a home for the course,
~/comp4020/say, and clone every repo into it; by November there are a dozen. YourCLAUDE.mdbelongs inside each repo, because the harness is part of what’s marked. Your key never goes in a repo at all: keep it out
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:
- Install the CLI:
mise use -g flyctl - 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
- 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#
-
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, thensh 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 -
Ubuntu still ships
gh2.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:doctorchecks for exactly this. ↩
