The Testing Academy · AI Tester Blueprint

Batch Setup:
Get Your Machine Ready in One Sitting

Everything the AI Tester Blueprint batch runs on, in the order you should install it: a local LLM, a free cloud key, your IDE, GitHub, the agent builders, and the terminal agents. Every command below is copy-paste ready for Windows and Mac, with a check step so you know it worked before class starts.

Ollama (local LLM) Groq (cloud, free) VS Code + Copilot Antigravity GitHub LangFlow + n8n Command Code OpenCode

Do these in order. Each one takes 5 to 15 minutes, and every tab ends with a check command so you never walk into class wondering if it worked. Three things everything else builds on: Node.js (n8n, OpenCode, Command Code), Python 3.11+ (LangFlow, CrewAI, MCP), and Git (every project you push).

The setup map

Node.js 20+ · the base every tool below stands on 1 · THE BRAINS Ollama, local Groq, cloud free, private / free, fast 2 · THE IDE VS Code + Copilot Antigravity where you write and review 3 · BUILDERS LangFlow n8n drag-and-drop agents 4 · TERMINAL Command Code OpenCode agents that edit and run GitHub account (push it all)
Install bottom-up: Node first, then a brain, then the tools that use it.

Step zero: Node.js

LangFlow, n8n, Command Code, and OpenCode all install through npm. Get this right once and the rest of the page is copy-paste.

Mac Homebrew, or the installer from nodejs.org

brew install node
node -v     # v20 or newer
npm -v

Windows winget in PowerShell, or the .msi from nodejs.org

winget install OpenJS.NodeJS.LTS
# close and REOPEN PowerShell so PATH refreshes, then:
node -v
npm -v
The number one setup bug. You install Node, run node -v, and Windows says "not recognized". You did not break anything, the terminal is holding an old PATH. Close every terminal window, open a new one, then check again.

Suggested order

  1. Node.js, above. Everything else leans on it.
  2. Ollama so you have a free, private model that works offline.
  3. Groq for a fast free cloud key when local is too slow.
  4. VS Code + Copilot, your main editor for the batch.
  5. GitHub, so your work is versioned from day one.
  6. LangFlow and n8n, the visual agent builders.
  7. Command Code and OpenCode, the terminal agents.
  8. Antigravity, optional, when you want an agent-first IDE.
Low-spec machine? Skip Ollama for now and use Groq. The batch works fine on cloud models alone; local is for privacy and offline practice.

A local LLM runs on your own machine: no key, no bill, no data leaving your laptop. We use Ollama, the simplest way to pull and run open models. This is what you use for private client data and offline practice.

Install Ollama

Mac

brew install ollama
# or download the app from https://ollama.com/download

ollama serve &      # start the local server (the app does this for you)

Windows download and run OllamaSetup.exe from ollama.com/download, or:

winget install Ollama.Ollama
# reopen PowerShell afterwards

Pull your first model

Model size must fit your RAM. Pick one row and stick to it.

Your RAMPull thisGood for
8 GBollama pull llama3.2:3bSummaries, simple test cases, quick chats
16 GBollama pull llama3.1:8bThe batch default: test plans, bug reports, code review
32 GB+ollama pull qwen2.5-coder:14bCode-heavy work, Playwright generation
Any (embeddings)ollama pull nomic-embed-textRequired for the RAG module

Check it works

ollama list                        # shows what you pulled
ollama run llama3.1:8b "Write one Playwright test case title for a login page"   # one-shot: prints and exits
# for an interactive chat instead, run: ollama run llama3.1:8b   (then /bye to exit)

curl http://localhost:11434/api/tags   # the API LangFlow and n8n will call
Remember this port. http://localhost:11434 is the address you paste into LangFlow, n8n, and any tool that asks where your local model lives.
Too slow? First response after a pull is always the slowest. If it stays slow, drop to a smaller model (3b instead of 8b) or switch to Groq in the next tab. Slow local model is a hardware limit, not a broken install.

Groq gives you a free API key and runs open models extremely fast. This is the batch's cloud brain: when your laptop cannot keep up, or you need speed for a live demo, you point the same tool at Groq instead of Ollama.

Get the key

  1. Go to console.groq.com and sign in with Google or GitHub.
  2. Open API Keys in the left menu, then Create API Key. Name it ai-tester-blueprint.
  3. Copy the key, it starts with gsk_. It is shown once, so paste it somewhere safe now.
  4. Store it as an environment variable, never inside code you commit.

Mac

echo 'export GROQ_API_KEY="gsk_your_key_here"' >> ~/.zshrc
source ~/.zshrc
echo ${GROQ_API_KEY:0:6}...   # prints only the first few chars, not the whole key

Windows PowerShell

setx GROQ_API_KEY "gsk_your_key_here"
# reopen PowerShell, then check:
echo $env:GROQ_API_KEY

Check it works

curl https://api.groq.com/openai/v1/chat/completions \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"llama-3.3-70b-versatile",
       "messages":[{"role":"user","content":"Reply with the word ready"}]}'

Windows PowerShell, where curl is an alias and the variable syntax differs

$body = '{"model":"llama-3.3-70b-versatile","messages":[{"role":"user","content":"Reply with the word ready"}]}'
Invoke-RestMethod -Uri "https://api.groq.com/openai/v1/chat/completions" -Method Post `
  -Headers @{ "Authorization" = "Bearer $env:GROQ_API_KEY"; "Content-Type" = "application/json" } `
  -Body $body

A JSON reply containing ready means you are done. An invalid_api_key error means the variable did not load: reopen the terminal and echo it again.

Local or cloud, when

Ollama, on your laptop free forever · fully private · offline slower · limited by your RAM use for: client data, offline practice Groq, in the cloud free tier · very fast · big models needs a key and internet use for: speed, demos, big context or same tools, same prompts, you just swap the model setting
Set both up. Swap between them per task, not per project.
Key hygiene, non-negotiable. Never paste a key into a screenshot, a notebook cell you commit, or a public repo. If a key ever leaks, delete it in the Groq console and create a new one.

Two editors, two jobs. VS Code with GitHub Copilot is your daily driver for the whole batch. Antigravity is Google's free agent-first IDE, worth installing to see how an agent-led workflow feels next to a copilot-led one.

VS Code + GitHub Copilot

  1. Install VS Code from code.visualstudio.com. On Windows you can use winget install Microsoft.VisualStudioCode, on Mac brew install --cask visual-studio-code.
  2. Open the Extensions panel, search GitHub Copilot, install it. Install GitHub Copilot Chat too.
  3. Click Sign in when prompted and authorize with your GitHub account. Students get Copilot free through the GitHub Student Pack; otherwise there is a free tier with monthly limits.
  4. Confirm the Copilot icon in the status bar is not crossed out, then open Chat with Ctrl+Alt+I (Windows) or Cmd+Ctrl+I (Mac).
  5. Switch the Chat dropdown to Agent mode. That is the mode we use for the multi-file work in the batch.

Turn on Agent Skills (we use these in the skills module)

Copilot reads the same SKILL.md format as Claude Code. Enable it once:

# VS Code Settings (Cmd/Ctrl + ,) then search:
chat.useAgentSkills          ->  tick the checkbox

# skills are then discovered from, among others:
.github/skills/     .claude/skills/     ~/.copilot/skills/
Why this matters later. One skill folder in your repo works in Copilot and Claude Code, no conversion. That is the whole point of the skills module.

Recommended extensions for this batch

ExtensionWhy
GitHub Copilot + Copilot ChatThe assistant itself, plus agent mode
Playwright Test for VSCodeRun and debug Playwright tests from the sidebar
PythonLangFlow, DeepEval, and the RAG module are Python
REST Client or Thunder ClientHit Groq and Jira APIs without leaving the editor
GitLensRead history and blame while reviewing AI-written diffs

Antigravity

Google's agent-first IDE, free during public preview. The layout is familiar (it is VS Code based) but the centre of gravity is the Agent Panel: you describe an outcome and watch the agent plan, edit across files, and verify.

  1. Download the installer for your platform from antigravity.google/download. It detects Windows, Mac, or Linux automatically.
  2. Run the installer, then sign in with your Google account.
  3. Open a small project folder first, not your main repo, so you can watch what the agent changes.
  4. Open the Agent Panel and give it an outcome, for example: "add a Playwright test for the login page and run it".
How we use it in the batch. VS Code for daily work and review, Antigravity for a session on agent-led development, so you can feel the difference between suggesting and delegating.

Every project in this batch gets pushed. A GitHub account is how you version AI-written code, share skills with the batch, and end the course with a portfolio a hiring manager can actually open.

Install Git first

# Mac
brew install git

# Windows
winget install Git.Git

# both: reopen the terminal, then check
git --version
Git and the GitHub CLI are two different tools. Installing gh does not install git, you need both.

Account and identity

  1. Sign up at github.com. Use a professional username, this ends up on your resume.
  2. Turn on two-factor authentication in Settings. GitHub requires it for contributors and it protects your keys.
  3. If you are a student, apply for the GitHub Student Developer Pack: it includes Copilot free.
  4. Set your git identity locally so commits are attributed to you.
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main

Install the GitHub CLI (easiest auth)

Mac

brew install gh
gh auth login        # choose GitHub.com, HTTPS, login with a browser

Windows

winget install GitHub.cli
# reopen PowerShell
gh auth login

Check it works

gh auth status                       # should say "Logged in to github.com"

mkdir blueprint-test
cd blueprint-test
git init
echo "# AI Tester Blueprint" > README.md
git add .
git commit -m "first commit"
gh repo create blueprint-test --public --source=. --push

If the repo opens on github.com with your README, your account, auth, and git are all correct.

Never commit a key. Add a .gitignore with .env in it before your first push, and keep every gsk_ or sk- value in environment variables, exactly as set up in the Groq tab.

Two visual builders where you drag nodes instead of writing orchestration code. LangFlow is the AI-first canvas we use to build QA agents. n8n is the automation workhorse that connects Jira, Slack, and your test runs. Both talk to Ollama and Groq.

LangFlow

Python based. Use uv if you have it, plain pip otherwise.

Mac Windows same commands, in a virtual environment

# Mac / Linux
python3 -m venv langflow-env
source langflow-env/bin/activate
pip install langflow
langflow run                            # opens http://localhost:7860
# Windows PowerShell
python -m venv langflow-env
.\langflow-env\Scripts\Activate.ps1     # if this is blocked, see the note below
pip install langflow
langflow run                            # opens http://localhost:7860
PowerShell blocks the activate script? Run Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser once, reopen PowerShell, then activate again.

Docker, if you would rather not touch Python:

docker run -it --rm -p 7860:7860 langflowai/langflow:latest
Running LangFlow in Docker? Inside a container, localhost means the container itself, so your host Ollama is not reachable. Use http://host.docker.internal:11434 as the Ollama base URL instead (Docker Desktop on Mac and Windows).

Point LangFlow at your models

ComponentSettingValue
OllamaBase URLhttp://localhost:11434
OllamaModel namellama3.1:8b
GroqAPI keyyour gsk_ key
GroqModelllama-3.3-70b-versatile

n8n

Node based. Two ways, pick one.

# A. run instantly with npx, nothing installed globally
npx n8n
# opens http://localhost:5678

# B. install globally
npm install -g n8n
n8n start

Docker, with your workflows persisted between restarts:

docker volume create n8n_data
# Mac / Linux
docker run -it --rm --name n8n -p 5678:5678 \
  -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

# Windows PowerShell: one line, backslash continuations do not work there
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Check both

LangFlow localhost:7860 n8n localhost:5678 Ollama, local localhost:11434 Groq, cloud api.groq.com either builder, either brain, your choice per flow
Four addresses to remember. Bookmark 7860 and 5678.
Port already in use? Something else is on that port. Run langflow run --port 7861. For n8n the port comes from an environment variable: N8N_PORT=5679 n8n start on Mac, or $env:N8N_PORT=5679; n8n start on Windows.

Command Code is a terminal coding agent that learns your style as you accept, reject, and edit its output. Install is one npm command; the only real gotcha is the command name on Windows.

Install

Mac Windows Linux

npm i -g command-code@latest
cmd --version        # Mac and Linux
cmdc --version       # Windows, see the warning below
Windows: the command is cmdc, not cmd. On Windows, cmd is the built-in Command Prompt, so Windows answers first and the agent never starts. Use cmdc for every command on this page. Inside WSL, plain cmd works normally.

Sign in and run

cmd login            # cmdc login on Windows, opens a browser
cd your-project
cmd                  # start it in the project you care about

Sync it with VS Code

Launch it from the VS Code integrated terminal and the companion extension installs itself, so the agent can see the file you have open and the lines you selected.

# inside the VS Code integrated terminal
cmd                  # extension auto-installs on first run
/ide                 # check or repair the editor connection
cmd --ide-setup      # non-interactive install, for scripts

When it is connected you will see IDE ✓ near the input, plus the current file, for example In login.spec.ts.

Check it works

cmd -p "print a one-line hello and exit"     # headless one-shot
# Windows: cmdc -p "..."
Node missing? Every "command not found" here traces back to Node. Redo step zero on the Start-here tab, reopen the terminal, and try again.

OpenCode is an open-source terminal agent that works with many providers, including a local Ollama model. It is the one to reach for when you want an agent that is fully yours: no vendor lock, and it can run entirely offline against your local LLM.

Install

Mac Linux

curl -fsSL https://opencode.ai/install | bash
# or:
brew install anomalyco/tap/opencode
# or, any platform with Node:
npm install -g opencode-ai

Windows

choco install opencode
# or
scoop install opencode
# or
npm install -g opencode-ai

Connect a model

cd your-project
opencode              # starts the terminal UI

# inside the UI:
/connect              # pick a provider and paste your key
/init                 # let it read the project and write its notes

Point it at Groq with the key from tab 2, or at your local Ollama model for a fully offline agent.

Check it works

opencode --version

# then inside a project, in the UI, ask for something small:
#   "list the test files in this repo and tell me which lack assertions"

Which terminal agent, when

 Command CodeOpenCode
Best atLearning your personal style over timeOpen source, provider freedom
Local modelNo, cloud modelsYes, works with Ollama offline
Windows namecmdcopencode
Use it forDaily edits, refactors, PR-sized workPrivate repos, offline work, custom providers

Final check before class

Run these. Every line should print a version or a sensible answer.

node -v                      # the base
npm -v
ollama list                  # local models
echo $GROQ_API_KEY           # cloud key   (Windows: echo $env:GROQ_API_KEY)
gh auth status               # GitHub
code --version               # VS Code
cmd --version                # Command Code (Windows: cmdc --version)
opencode --version           # OpenCode
Bring your screen to class. If any line above fails, post the exact error in the batch group before the session. Nine out of ten are Node PATH or a terminal that needs reopening, both fixed in a minute.

Nine stages, in this exact order, because each one is the floor for the next. You cannot evaluate an LLM (stage 7) until you have built one that does something (stages 4 to 6), and you cannot build an agent until you understand what a model actually is (stages 1 to 3). Everything ends in the same place: 35+ shipped projects.

The path

stages 1 to 3 Foundations how models actually work prompting that survives review generative AI for testers stages 4 to 6 Building agents that take actions RAG so answers are grounded MCP so agents reach your tools stages 7 to 9 Proving evaluate: is the output good? AI testing tools in practice 35+ projects for the portfolio 1 2 3 4 5 6 7 8 9 LLM Prompt GenAI Agents RAG MCP Eval Tools Ship every stage adds one capability, and nothing is skipped
Understand, then build, then prove it works. Nine stages, one arc.

The nine stages

1

LLM Basics

What a model is and is not: tokens, context windows, temperature, and why it hallucinates. Run one locally with Ollama so the concepts are things you can poke, not slides.

tokens & contextlocal modelsmodel choice
2

Prompt Engineering

From lucky prompts to repeatable ones: structure, examples, constraints, and output shapes you can parse. The QA angle throughout, test cases, bug reports, and review prompts.

frameworksstructured outputprompt libraries
3

Generative AI

Beyond chat: embeddings, vector similarity, and the building blocks every later stage reuses. This is where RAG stops being a buzzword and becomes maths you can explain.

embeddingsvector basicsAPIs
4

AI Agents

The jump from "answers" to "acts". Build the same agent four ways so you feel the trade-offs: vibe-coded from scratch, visually in n8n, visually in LangFlow, and in code with CrewAI and LangChain (with the Python basics you need).

Vibe Coden8nLangFlowCrewAI / LangChainPython basics
5

RAG

Grounding answers in your own specs, tickets, and past bugs. Ten-plus RAG types compared (naive, hybrid, re-ranking, graph, agentic and more), then built three ways: LangFlow, n8n, and vibe-coded.

10+ RAG typesLangFlown8nVibe Code
6

MCP

The Model Context Protocol: how agents reach real tools. First use existing MCP servers, then build your own so your agent can drive the systems your team actually runs.

use MCP serversbuild your own MCP
7

LLM Evaluation

The stage that makes you a tester of AI, not just a user of it. Score outputs for relevance, faithfulness, and safety with DeepEval and PromptFoo, then gate them in CI.

DeepEvalPromptFooCI gates
8

AI Testing Tools

Three to four AI-powered testing tools evaluated hands-on: what they genuinely automate, where they break, and how to judge the next one that launches.

hands-on trialshonest comparison
9

Projects: 35+

The portfolio stage. Everything above, shipped: AI agents, MCP servers, RAG systems, LLM evaluation suites, and AI testing tool integrations, all pushed to your GitHub.

AI AgentsMCPRAGLLM EvalAI Testing Tools

Which setup unlocks which stage

StageNeedsNice to have
1 to 3Ollama, Groq key, VS CodeGitHub for your prompt library
4n8n, LangFlow, Python, NodeAntigravity, Command Code, OpenCode
5LangFlow, nomic-embed-text, Pythonn8n for scheduled ingestion
6uv, Node, VS CodeCommand Code for building the server
7Python, Groq keyGitHub Actions for CI gates
8 and 9everything abovea public GitHub profile you are proud of
One honest expectation. You will not remember every command on this page, and you do not need to. Bookmark it, work stage by stage, and come back to the tab you need. Setup is a checklist, not a skill.
PD

Pramod Dutta

SDET and founder of The Testing Academy. Teaching QA and AI-powered testing at thetestingacademy.com. Questions during the batch go in the group, not into a void.