From Chat to System - Getting Started with Claude Code and Codex
Most people open Claude Code and type into it like a chat: question, answer, copy, paste. Then they complain it "does not work." The truth is they are using a worker system like a recommendation system, and missing all the power. This guide is the migration, in 5 steps.
What you'll learn
- Why a chat gives an answer, but Claude Code and Codex do the work
- How to install the tool and run it for the first time
- How to connect external tools via MCP and connectors
- How to set limits and checks so you can let it run without fear
- Why you give it a whole task, not step by step
- How to improve it daily with CLAUDE.md and memory
Contents
Why chat is not a system
In a chat, you are the middleman. You ask, get text, copy it into your editor, run it, see an error, go back to the chat, paste the error, and repeat. You run every step by hand. The tool recommends, you execute.
Claude Code and Codex are a different thing. They run on your machine, read your files, write code, run tests, and fix things on their own. You give a task, they carry it out end to end. You move from being the executor to managing.
The difference in practice: instead of twenty copy-pastes, you write one sentence and go do something else while it works. The next five steps are how you get there.
Step 1 - Install the tool
Both main tools run in the terminal. You can start with either one, they work similarly. You need Node.js installed.
Claude Code (by Anthropic):
npm install -g @anthropic-ai/claude-code
cd your-project
claudeCodex (by OpenAI):
npm install -g @openai/codex
cd your-project
codexThe first time, you will be asked to sign in. After that, you are inside a session that runs in your folder, with access to files and the terminal. This is no longer a browser chat.
Step 2 - Connect its tools
On its own, the tool can read and write files and run commands. But the real power starts when you connect your services through MCP (Model Context Protocol): a database, Vercel, GitHub, search, and more.
Add an MCP server and see what is connected:
claude mcp add <name> -- <command>
claude mcp listThe rule: connect only what you actually need for the task. Every connection adds instructions to the context, and also permissions. Three connections you use beat ten that just sit there.
Step 3 - Set its limits
The most common fear: "it will make a mess." Rightly so. With great power comes great responsibility. But the answer is not to stop, it is to set limits. That is how you let it run without fear.
- Permissions: the tool asks for approval before actions that change things. You can approve once, always allow a specific action, or block it.
- Checks: ask it to run tests or a build after every change, and to fix anything that breaks, before it finishes.
- git: work in a branch, not on main. That way you can always roll back.
You can also define up front what is allowed and what is not in a settings file (.claude/settings.json), so you do not have to approve the same thing again and again.
Step 4 - Give it whole tasks
The biggest mistake of people coming from chat: give a small instruction, wait, give another small instruction. That is still you running every step. Instead, give a whole task with a clear goal, and let it close it.
Instead of:"open a file," then "add a function," then "test it."
Say:"Add a CSV export button to the reports page, including a test, and make sure the build passes."
A whole task lets it use everything it has: read the existing code, write, run, fix. You come back to a finished result, not a to-do list.
Step 5 - Improve it daily
A good system improves. Instead of explaining to the tool who you are and how you work in every session, write it once in a CLAUDE.md file in the folder. It loads automatically every time.
# CLAUDE.md
- Project: Next.js + Supabase
- Always run tests after a change
- Do not touch files outside the task
- Write in Hebrew, no em dashesEvery time you correct it ("not like that, like this"), add it to the file. Within a week you have a system that knows your project and your preferences. I have a full guide on managing Claude Code memory if you want to go deeper.
The prompt to start with
The best way to feel the difference is to let the tool walk you through it step by step the first time. Open Claude Code or Codex in any folder, paste the prompt below, and let it run:
I want to move from working with AI in a chat, to working with Claude Code like a system.
Help me start right. Do the following:
1. Check what I already have installed:
- claude --version (if it exists)
- claude mcp list
- ls ~/.claude/CLAUDE.md
2. Give me one small, real task to start with (for example: "build a script that organizes files in a folder"),
and run it end to end: read, write, run a check, and show me the result.
3. While working, every time you are about to change files or run a command,
briefly explain what you are about to do and why, and let me approve.
4. At the end, write a short CLAUDE.md file in the folder with 3-4 things you learned about me today,
so next time I do not have to explain everything again.
Start with step 1.That is it. That is the migration. Once you give one whole task and watch it close on its own, you will not go back to copy-pasting from a chat.
Want more guides like this?
All my guides on Claude Code, Codex, agents, and building SaaS with AI.
All guides