When you want help with code, start with the job and a few house rules, not with every coding agent at once. A coding agent is an AI tool that can read and change files in a project folder. One tool, one branch, a folder you have actually looked at, and a human who re-runs the result will beat three chat boxes fighting over the same error message.
Say you paste a 40-line Python error into three different chat boxes. Then you install two coding agents because a group chat said “just let it run.” Forty minutes later you have a “fix” that renamed customer_id in one file and left it unchanged in six others. A second agent is fighting the first on the same branch, and a 12,403-row join sits in a notebook that nobody has re-run. The original problem was a missing CSV in /data/raw/, and nobody had listed that folder.
Two jobs people mash together
Job A is using language about code, such as “what does this error mean,” “name this function,” or “sketch a SELECT.” You paste a snippet and you copy a suggestion back. The project on your disk does not change until you type the change yourself.
Job B is an agent working inside a project folder. It lists files, proposes changes (called diffs, which show exactly which lines were added or removed), and may run tests. You still have to read the diff, and the damage a mistake can do is the whole repository, not one pasted paragraph.
In the story above, you needed Job A for about 90 seconds to find the CSV path, and then maybe Job B to add a check that the file exists. Instead you bought Job B twice and skipped the folder listing. If you only need Job A, stay in the chat box, as the earlier post on picking a chat tool describes. Installing an agent because it sounds more serious is how a Friday gets expensive.

Where you can get coding help

| Tool | Family | Open it if | Do not open it if |
|---|---|---|---|
| Chat window | Any of the four | The change fits in a paste | You have not looked at the other files |
| Claude Code | Anthropic | You will let an agent read a real project | You only needed a paragraph |
| ChatGPT Codex | OpenAI | Your stack is already ChatGPT and you want the coding agent path | You are collecting agents for sport |
| Gemini CLI / Antigravity | You already live in Google’s coding tools (names have shifted; re-check) | You have never opened a terminal and the job is one function | |
| Grok Build | xAI | You already pay for a Grok path that includes Build, and you want a terminal agent | A SuperGrok chat tab would have been enough |
The deeper coverage lives in the series for each brand: Claude Code in the Claude series, Codex in ChatGPT, Gemini coding, and Grok Build. This page is just the hallway between them. Install steps change often, so confirm them on the vendor pages at Anthropic, OpenAI, Google, and x.ai/build.
Rule of thumb: Use one agent in one repository. Two agents on one branch do not make a team, because all they produce is merge conflicts.
Try this first
For a person who will actually touch a project folder, the default on this site is Claude Code in a clone, which means a spare copy and never the live version. Turn on plan-or-approve behavior if the product offers it, so it asks before it edits. If your company already standardized on Codex or Grok Build, use that instead, and do not install a second family “to compare” on the same folder.
If you have never opened a terminal, start with Job A in a chat box this week. An agent is not a personality upgrade. It is permission to edit files, so earn that permission with one small change that you have reviewed.
First hour: explore, change, check
- Copy the repository, or work in a throwaway folder. Do not point an agent at the only copy of your payroll scripts.
- Ask it to list the folder tree and name the file that should own
customer_id, then read the answer. In the story above, this is the step that would have shown that/data/raw/was empty. - Give it one change: “If the CSV is missing, raise a clear error. Do not invent a file.”
- Read the diff, and search it for every rename. If the agent touched six files to add a path check, reject the change.
- Run the test or the script yourself, because the agent’s “all good” is only a claim.
Here is a brief you can paste into an agent, or into a chat box if you are still on Job A:
# Goal: fail clearly when the input CSV is missing.
# Repo: toy-orders
# Do not rename columns. Do not invent /data/raw/orders.csv.
# Change only the loader. Show me the diff. Stop after one file.
def load_orders(path):
import pandas as pd
return pd.read_csv(path)
# Current fail: FileNotFoundError with no hint.
# Wanted: a message that names the path and says "export missing, not a join bug."That brief is a 6-line loader plus a list of limits. If the agent rewrites your join logic to “fix” a missing file, the brief failed at review, not inside the model.
A worked example with 12,403 rows
The toy data here has one row per order line. In the story, your notebook joined orders to customers after an agent “helpfully” dropped a duplicate check. The join came back at 12,403 rows, and yesterday it was 1,188. The extra rows came from a many-to-many match: a renamed key still existed under its old name in dim_customer.sql, so every order matched many customers.
| Check | Before agent | After sloppy agent |
|---|---|---|
| Row count on the join | 1,188 | 12,403 |
| Files touched | 1 (loader) | 7 (loader + models + a random README) |
| Missing CSV | Still missing | Still missing, plus a new column alias |
The lesson for coding agents is the same as for analytics: count the rows. If you cannot say what one row means, stop. Joins are a skill you build over time, and the series on SQL is the long path to learning them, which no agent replaces.
What “review the diff” looks like
People skip review because the agent’s English sounds confident. Review is a search, not a feeling. Search the diff for customer_id, for deleted tests, for new network calls, and for files you never named. If the product has a plan mode, use it for anything bigger than a typo. If the agent wants to run commands, read each command first, because rm (delete files) and git push --force (overwrite the shared history) can do real damage that you cannot undo.
A decent review takes less time than 40 minutes of two agents arguing. You are not proving that you distrust machines. You are checking that the missing CSV stayed a missing CSV, and did not quietly become an empty table with 12,403 rows. The series on data quality teaches the longer habit, and an agent does not retire it.
Chat versus agent, one more time
If you had stayed in a chat box, pasted the error, and asked “what file is missing,” you would have had the answer in one screen. The agent only became useful after that, to add a check in one file with one test. The group chat that said “just let it run” was selling autonomy as a status symbol. Autonomy is really a dial. Start by watching, then approve work in batches, and only later walk away from chores you have seen it do correctly ten times. Walking away on the first night is how passwords leak and how a README gets rewritten in a tone you do not use.
Common mistakes
- Two agents on one branch. Pick one family.
- Using the live production copy as the sandbox. Clone it first.
- Accepting a 400-line diff for a missing-file message.
- Pasting API keys into the chat “so it can test.” Use environment variables instead, and change the key if you already pasted it.
- Skipping tests because the agent wrote some. Run them yourself.
- Using a coding agent to write a thank-you note. That is the wrong tool, and a chat box does it better.
Install without turning Friday into theater
Install steps change, but the shape stays the same. You install a command-line tool or a desktop app, sign in through a browser, and point it at a folder you can afford to ruin. You do not run an install script from a social media post on a production server just because it came as a one-line command. You do not give the agent your only copy of the warehouse models. You do not store API keys in the repository “for convenience.” If the product wants ANTHROPIC_API_KEY or XAI_API_KEY in the environment, set that as an environment variable on your own machine, not as a file named secrets.txt sitting next to orders.csv.
Who is allowed to use these tools also keeps moving. Claude Code, Codex, Gemini’s command-line path, and Grok Build have all been tied to paid plans at various times. If the install page says you need Pro, Max, SuperGrok, or Premium Plus, believe the page in front of you, not this paragraph. A failed install is not a reason to paste the whole repository into a chat box. It is a reason to stay on Job A until the account is sorted out.
How to practice this week
Take a script you own and make one tiny, reviewed change with one agent. If you do not have a repository, stay in chat for a week and come back. Next in this chooser is the post on using AI for files and office work. The final decision tree is the post on which AI product to try first.
Quick recap
- Snippets stay in chat, and changes to a folder need one agent and a diff you read.
- Try Claude Code in a clone unless your company already picked Codex, Gemini’s command-line path, or Grok Build.
- Count the rows and search for the rename, because you are the one who ships the commit.
Series notes
This is Part 2 of Which AI product should I use?. The previous post was the try-this-first chooser, and the next covers files and office work.
Sources
- Anthropic docs (Claude Code; confirm current install)
- OpenAI platform (Codex / coding agent path; names move)
- Google AI for developers (Gemini CLI / related coding surfaces)
- xAI: Grok Build
- AMS: Claude series (Code tutorial)
- AMS: SQL series (joins and grain, when the agent lies with row counts)
Keep going
Same lessons in your feed
Short diagrams, hooks, and weekly tutorials on Substack, Instagram, X, and Facebook.
