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.
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).
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
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.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.
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
Model size must fit your RAM. Pick one row and stick to it.
| Your RAM | Pull this | Good for |
|---|---|---|
| 8 GB | ollama pull llama3.2:3b | Summaries, simple test cases, quick chats |
| 16 GB | ollama pull llama3.1:8b | The batch default: test plans, bug reports, code review |
| 32 GB+ | ollama pull qwen2.5-coder:14b | Code-heavy work, Playwright generation |
| Any (embeddings) | ollama pull nomic-embed-text | Required for the RAG module |
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
http://localhost:11434 is the address you paste into LangFlow, n8n, and any tool that asks where your local model lives.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.
ai-tester-blueprint.gsk_. It is shown once, so paste it somewhere safe now.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
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.
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.
winget install Microsoft.VisualStudioCode, on Mac brew install --cask visual-studio-code.Ctrl+Alt+I (Windows) or Cmd+Ctrl+I (Mac).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/
| Extension | Why |
|---|---|
| GitHub Copilot + Copilot Chat | The assistant itself, plus agent mode |
| Playwright Test for VSCode | Run and debug Playwright tests from the sidebar |
| Python | LangFlow, DeepEval, and the RAG module are Python |
| REST Client or Thunder Client | Hit Groq and Jira APIs without leaving the editor |
| GitLens | Read history and blame while reviewing AI-written diffs |
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.
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.
# Mac
brew install git
# Windows
winget install Git.Git
# both: reopen the terminal, then check
git --version
gh does not install git, you need both.git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
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
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.
.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.
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
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
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).| Component | Setting | Value |
|---|---|---|
| Ollama | Base URL | http://localhost:11434 |
| Ollama | Model name | llama3.1:8b |
| Groq | API key | your gsk_ key |
| Groq | Model | llama-3.3-70b-versatile |
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
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.
Mac Windows Linux
npm i -g command-code@latest
cmd --version # Mac and Linux
cmdc --version # Windows, see the warning below
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.cmd login # cmdc login on Windows, opens a browser
cd your-project
cmd # start it in the project you care about
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.
cmd -p "print a one-line hello and exit" # headless one-shot
# Windows: cmdc -p "..."
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.
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
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.
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"
| Command Code | OpenCode | |
|---|---|---|
| Best at | Learning your personal style over time | Open source, provider freedom |
| Local model | No, cloud models | Yes, works with Ollama offline |
| Windows name | cmdc | opencode |
| Use it for | Daily edits, refactors, PR-sized work | Private repos, offline work, custom providers |
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
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
| Stage | Needs | Nice to have |
|---|---|---|
| 1 to 3 | Ollama, Groq key, VS Code | GitHub for your prompt library |
| 4 | n8n, LangFlow, Python, Node | Antigravity, Command Code, OpenCode |
| 5 | LangFlow, nomic-embed-text, Python | n8n for scheduled ingestion |
| 6 | uv, Node, VS Code | Command Code for building the server |
| 7 | Python, Groq key | GitHub Actions for CI gates |
| 8 and 9 | everything above | a public GitHub profile you are proud of |
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.