"Install the dependencies and start the dev server."
You go looking for a button. There is not one. Everything past the first hour of a real project happens by typing a command and reading what comes back, and for most people that window is the part of this they have been quietly avoiding.
The idea
You work in two places at once. The editor is where files are shown and changed: VS Code and Cursor are the common ones, and Cursor is built from a copy of VS Code, so the two look and behave almost identically. The A window where you type a command, press Enter, and the computer runs a program and prints its output. is where programs actually run: your dev server, your installs, git, and Claude Code itself.
+---------------------------+---------------------------+
| EDITOR | TERMINAL |
| VS Code / Cursor | Terminal.app / iTerm2 / |
| | the integrated panel |
| - file tree | |
| - open files | ~/projects/shop $ npm |
| - search across project | run dev |
| - side-by-side changes | > ready on :3000 |
| - Claude Code panel | |
+---------------------------+---------------------------+
Ctrl+` toggles the terminal inside the editorHow it works
- Opening one. On macOS, Spotlight (Command+Space), type Terminal, press Enter. On Windows 11, open Windows Terminal from the Start menu and start a WSL session inside it, so the commands you copy from tutorials behave the way they do everywhere else. On Windows 10, Windows Terminal is a free install from the Microsoft Store. Inside VS Code or Cursor, Ctrl+` opens a panel that already starts in your project folder, which is usually the one you want.
- Flags are the short options after a command: the
-Aingit add -A, the-ainls -a. They change what the command does, they are case sensitive, and nobody memorises them. What you need is the habit of noticing that they are there. - The prompt is the text sitting before your cursor, ending in
$or%. It normally shows the folder you are in, and that is the fastest way to notice you are in the wrong one. - The shell is the program inside the window that reads what you type. macOS uses
zsh, most Linux servers usebash, and the commands in this section work in both. You will only care about the difference when a tool asks you to add a line to.zshrcrather than.bashrc. - The editor does not write to disk until the file is saved, which is why an assistant sometimes reads an older version of a file you are staring at.
- Most commands print nothing when they succeed. What comes back instead is an error, and that error text is the single most useful thing you can paste to an assistant.
What to do
- Learn four commands:
pwd(where am I),ls(what is here),cd shop(go into that folder),cd ..(go up one). Add one keystroke, Control+C, which stops whatever is currently running. - Stop typing paths by hand. Tab completes a half-typed filename, and the up arrow walks back through commands you have already run, so most of what you type is one keystroke you are editing. This is the difference between the terminal being tedious and being fast.
- Keep two terminal tabs open per project. One runs the dev server and stays busy. The other is
free for
git status, installs, and everything else. Reusing one tab is how people end up killing their own server. - Start Claude Code from the project root, so its working directory matches the project you mean:
cd ~/projects/shop, thenclaude. - Paste the whole error, not your summary of it. The lines under the first red one usually name the file and the line number that actually failed.
Where it breaks
Closing the terminal window stops whatever was running in it, with no warning. The dev server is
simply gone until you start it again. A Claude Code session is recoverable: claude --continue
reopens the most recent one for that folder and claude --resume lets you pick from a list. What
does not come back is anything that only ever existed as text on that screen, so when a session
produces something you want, get it into a file.
The terminal also has no undo and no confirmation step. Commands that only print things are safe to
experiment with. Commands that delete, force-push or reset are a different category, and rm -rf in
particular removes folders permanently without asking, with nothing in the bin afterwards. Read that
kind of line twice before pressing Enter, including when an assistant is the one that suggested it.