Terminology

The basic verbs, nouns, and moving parts. If someone says a word you don't recognize, it's probably here.

Places

Terminal
The text window where you type commands. On a Mac, it's an app called Terminal (or iTerm, or the one built into VS Code). Everything you type here goes directly to the machine.
Shell
The program running inside your terminal. On a Mac it's zsh. It reads what you type, runs it, and shows you what happened. Terminal is the window. Shell is the brain inside it.
Repo — repository
A project folder that git tracks. Every change is recorded. You can go back in time, branch off, merge work together. If someone says "clone the repo," they mean "download the project."
Local
On your machine. "Run it locally" means run it on your laptop, not on the internet. Nothing leaves your computer.
Remote
Someone else's machine. GitHub is a remote. A server you deploy to is a remote. When you push, you're sending from local to remote.
Server
A computer that's always on and connected to the internet. It serves files, runs your app, responds to requests. Your laptop is not a server (until you run python3 -m http.server and temporarily make it one).
Localhost
Your own machine pretending to be a server. When you see localhost:3000 in your browser, you're talking to a program running on your laptop. Nobody else can see it.
PATH
A list of folders your shell searches when you type a command. If you type node and get "command not found," node isn't in your PATH. Most install problems are PATH problems.

Git verbs

git commit
Save a snapshot of your work. Like a save point in a game. You can always come back to it. A commit has a message that says what changed: git commit -m "add login page".
git push
Send your commits to the remote (usually GitHub). Your work goes from your machine to the internet. Other people can now see it.
git pull
Download other people's changes from the remote and merge them into yours. The opposite of push.
git fetch
Check what's changed on the remote without merging anything. Like peeking at the mail without opening it. Pull = fetch + merge.
git clone
Download an entire repo for the first time. git clone https://github.com/someone/project gives you the full project with all its history.
git branch
A parallel version of your project. You branch off to try something without risking the main version. If it works, you merge it back. If not, you delete the branch.
git merge
Combine two branches. Usually merging your branch back into main after your work is done.
git diff
Show what changed. Line by line, what was added (green) and what was removed (red).

Package management

Package
Someone else's code that you use in your project. Instead of writing an image resizer from scratch, you install a package that does it. Packages have packages inside them — it's packages all the way down.
Dependency
A package your project needs to work. "Add it as a dependency" means "install this package and record that we need it." If you delete your node_modules folder, npm install puts them all back.
brew install
Install a system tool via Homebrew (the Mac package manager). brew install node installs Node.js. brew install --cask installs desktop apps.
npm install
Install a JavaScript/Node.js package. npm install express adds it to your project. npm install -g something installs it globally (available everywhere, not just this project).
node_modules
The folder where npm puts all your dependencies. It gets huge. Never commit it to git. If something breaks, delete it and run npm install again.
package.json
The manifest for a Node.js project. Lists the project name, its dependencies, and scripts you can run. If a folder has a package.json, it's a Node project.

Building and running

Build
Turn your source code into something that runs. Sometimes this means compiling TypeScript to JavaScript. Sometimes it means bundling files together. Sometimes there's no build step at all — you just run the file.
Deploy
Put your project somewhere other people can use it. Copy files to a server, push to a hosting service, upload to an app store. "It works on my machine" is not deployed.
rsync
Copy files from one place to another, only sending what changed. The workhorse of simple deployment. rsync -avz ./site/ server:/var/www/html/ pushes your site.
Dev server
A local server that watches your files and reloads the browser when you change something. Makes development fast. Not for production — just for building.
Port
A number that identifies which program should receive network traffic. localhost:3000 means "talk to the program listening on port 3000." If a port is "already in use," another program is sitting on it.
Environment variable
A value stored outside your code. API keys, database passwords, configuration. Set with export API_KEY=abc123. Read in code. Never commit secrets to git.

AI and agents

Agent
An AI that can take actions — read files, run commands, write code, browse the web. Not just chat. Claude Code, Codex CLI, and Gemini CLI are agents.
CLI — command-line interface
A program you run by typing in the terminal. No windows, no buttons. Just text in, text out. claude, codex, and gemini are CLIs.
Prompt
What you say to the AI. A question, an instruction, context, a file. Everything you give it is the prompt. Better prompts get better results.
Context
What the AI knows right now. The files it's read, the conversation so far, the instructions you gave it. More context = better answers. Too much context = confused answers. Read the chapter →
Steering file — CLAUDE.md, .codex, etc.
A file in your project that tells the agent how to behave. Preferences, conventions, things to remember. The agent reads it automatically when it starts. Like a briefing document for a new team member. Read the chapter →
Handoff
When you point an agent at a URL or file and say "follow these instructions." The page becomes the prompt. The agent takes over from there.
Token
The unit AI models think in. Roughly one word or part of a word. Models have a context window measured in tokens — that's how much they can hold in mind at once.
Corpus
A collection of text used as source material. Your emails, documents, notes, chat logs. The raw data a chatbot or FAQ is generated from. Build one →

Web basics

HTML
The structure of a web page. Headings, paragraphs, links, images. Every web page is HTML. You can write it in a text editor and open it in a browser.
CSS
The style of a web page. Colors, fonts, layout, spacing. HTML says what's there. CSS says how it looks.
JavaScript — JS
The behavior of a web page. Click handlers, animations, fetching data. Also runs on servers (Node.js). The most widely used programming language.
TypeScript — TS
JavaScript with types. You declare that a variable is a number, a string, a list of users. Catches bugs before you run the code. Compiles down to regular JavaScript.
API — application programming interface
A way for programs to talk to each other. When your chatbot asks Claude a question, it's calling an API. When your app checks the weather, it's calling an API. URLs in, data out.
Static site
A website that's just files — HTML, CSS, JavaScript. No database, no server-side code. Fast, simple, cheap to host. This site is a static site.
SSH — secure shell
A way to log into a remote machine securely. ssh myserver.com gives you a terminal on that machine. Also used for authentication — SSH keys prove who you are without passwords.