> [繁體中文](./setup-guide.md) | [简体中文](./setup-guide.zh-Hans.md) | **English**
# 🚀 From Zero — Setup Guide for People Without a Development Background
> [← Back to the main roadmap README](../README.en.md)
This page does not ask you to install every tool. Just choose one door first and complete one small result.
Already comfortable with Python, Git, and the terminal, and know how to protect an **API Key**? Go straight to [Stage 1](../stages/01-llm-basics.en.md).
## 📌 What This Guide Will Help You Complete
- Distinguish Web Chat, Desktop, IDE, **CLI Agent**, and **API** so you no longer treat them as the same kind of tool.
- Understand why an **API Key** is like a password and where it must not be placed.
- Use `uv` to prepare Python 3.12 without first learning a pile of package-management details.
- Copy a Python program and actually receive a model response.
- Know when to go to Stage 1 and when to go to Stage 5.
View time, device, and prerequisites
- Web Chat only: you can start in a few minutes.
- Complete the API quick start: usually about 20–40 minutes; account review, payment setup, and network conditions may make it longer.
- You need: a Windows, macOS, or Linux computer where you can install software, plus an account that can open the provider Console.
- You do not need: prior programming experience, knowledge of Git branches, or a full IDE installed.
Company or school computers may prohibit installing programs or creating API keys. If that happens, ask an administrator; do not bypass the restriction.
## 🚪 Choose One Door First
The five doors are parallel choices, not five levels that must be completed in order.
| What you want to do | What this door is | First action |
|---|---|---|
| Chat with a model first | **Web Chat**: conversation in a browser | Open [Claude](https://claude.ai), [ChatGPT](https://chatgpt.com), [Gemini](https://gemini.google.com), or [Le Chat](https://chat.mistral.ai) |
| Chat or handle files in a computer app | **Desktop App**: a chat interface installed on your computer | Install it from the product's official download page |
| Have AI assist while you write code | **IDE Assistant**: lives inside the editor | Start with the [developer branch](../branches/for-developer.en.md) |
| Let an Agent read and edit files and run commands in a specified folder | **CLI Agent**: works in the terminal | Start with the [CLI Agents guide](cli-agents-guide.en.md) |
| Write your own program to call a model | **API**: the entry point where a program talks to a model service | Continue with A → B → C below |
View the complete official entry points for Web, Desktop, IDE, and CLI
The table below is an entry-point list, not a ranking. The recommendation rating means “how suitable is it as a starting point for this learning roadmap.”
| Type | Official entry point / project | Know this first | Recommendation |
| Web Chat | Claude | Cloud chat interface; plans and features vary by account and region | ⭐⭐⭐⭐⭐ |
| ChatGPT | Cloud chat interface; a ChatGPT subscription is not OpenAI API credit | ⭐⭐⭐⭐⭐ |
| Gemini | Cloud chat interface; check data permissions before connecting services | ⭐⭐⭐⭐⭐ |
| Le Chat | Mistral's cloud chat interface | ⭐⭐⭐⭐ |
| Desktop | Claude Desktop | Use the official page for the current Windows, macOS, and Linux entry points | ⭐⭐⭐⭐⭐ |
| ChatGPT Desktop | Use the official download page for platform requirements | ⭐⭐⭐⭐⭐ |
| Gemini for macOS | Currently a macOS app; use the Web version on other systems | ⭐⭐⭐⭐ |
| LM Studio | Local-model runtime and graphical interface; you still manage models, hardware, and file permissions | ⭐⭐⭐⭐ |
| IDE/Editor | Cursor | AI editor; confirm every modification and terminal action | ⭐⭐⭐⭐⭐ |
| Devin Desktop (formerly Windsurf) | Windsurf's current desktop coding-agent / IDE surface; still check tool permissions and plans | ⭐⭐⭐⭐ |
| Cline | VS Code coding agent; start with low permissions | ⭐⭐⭐⭐ |
| Zed AI | AI features in the Zed editor | ⭐⭐⭐⭐ |
| GitHub Copilot | Available in GitHub, IDEs, and other interfaces; permissions differ by interface | ⭐⭐⭐⭐⭐ |
| CLI Agent | Claude Code | Keep the permission prompt enabled first; begin with a small folder | ⭐⭐⭐⭐⭐ |
| OpenAI Codex | Coding agent; confirm its sandbox, approval, and diff | ⭐⭐⭐⭐⭐ |
| Gemini CLI | Gemini's open-source terminal agent | ⭐⭐⭐⭐ |
| OpenCode | Multi-provider coding agent / harness, not a model router | ⭐⭐⭐⭐⭐ |
| goose | Connects to providers and extensions; narrow tool permissions first | ⭐⭐⭐⭐ |
| Aider | Git-first pair programmer; auto-commit does not mean you can skip review | ⭐⭐⭐⭐⭐ |
| Hermes Agent | General-purpose agent; try small tasks in an isolated environment first | ⭐⭐⭐⭐ |
## 🧩 Seven Core Terms to Distinguish
- **Chat Surface**: the screen where you type, paste files, and read replies, such as Claude.ai. It is not a model API.
- **API**: the entry point where a program sends a request and receives a result. People usually do not chat directly on an API screen.
- **API Key**: a secret string that tells a service which account this program may use. Whoever obtains it may spend your credit.
- **Environment Variable**: a small drawer for handing settings to a program. The program can read it without the secret being written in source code.
- **Runtime**: what actually runs a program; Python is a runtime, and Ollama is a local-model runtime.
- **Package Manager**: helps install and run packages written by others. This guide uses `uv`.
- **CLI Agent**: an Agent that reads files, edits files, and runs tools in the terminal. It is not an API Provider or a single model.
## 📚 Required Reading and Official Starting Points
These five entry points stay visible; when versions differ, use the official page as the authority.
## 🛠 A — Get Your First API Key
This quick start uses Anthropic Claude because Stage 1's canonical API path uses it too. A Claude.ai subscription and a Claude API bill are separate things.
1. Open the [Claude Console](https://platform.claude.com/).
2. Go to **API Keys** and create a key for this exercise only.
3. If the screen lets you choose an owner, workspace, or expiration, use the narrowest scope and shortest reasonable duration.
4. Copy the key and put it in a password manager first; do not paste it into a chat window.
5. Check billing / usage in the Console first; if your account offers a spend limit or alert, set it to a small amount you can accept before calling the API.
**Three API Key rules:**
- **Do not paste** it into chat, group chats, email, issues, or screenshots.
- **Do not write** it into Python source code or Git history.
- **Do not share** one key across many projects; revoke it when you no longer need it.
View other Cloud APIs and the local Runtime
The table below lists only current official entry points. Click the official pages for prices, free quotas, and available models; this getting-started guide does not freeze them.
| Type | Official entry point | Compatibility / limits | Recommendation |
| Cloud API | OpenAI API | Official SDK and API; a ChatGPT subscription is not API billing | ⭐⭐⭐⭐⭐ |
| Gemini API | Google officially documents compatibility with OpenAI libraries | ⭐⭐⭐⭐⭐ |
| NVIDIA NIM | Check the endpoint for its supported API shape and models | ⭐⭐⭐⭐ |
| DeepSeek API | Official documentation provides an OpenAI-compatible way to use it | ⭐⭐⭐⭐ |
| Kimi API | Use the official Console for the region, endpoint, and models | ⭐⭐⭐⭐ |
| Alibaba Model Studio/Qwen | Use the corresponding base URL for your region; the official service provides an OpenAI-compatible endpoint | ⭐⭐⭐⭐ |
| Z.ai/GLM API | Use the current endpoint in the official reference | ⭐⭐⭐⭐ |
| Local Runtime | Ollama | Compatible with only part of the OpenAI API; you must download local models separately | ⭐⭐⭐⭐⭐ |
Local inference has no provider model API bill, but you remain responsible for hardware, electricity, download time, device security, files, and logs. For the complete path, see the [Cookbook local LLM walkthrough](cookbook.en.md#6-local-llm--cli-agent-quick-walkthrough).
This repo currently uses these practice tags: `gemma4:e4b` for Stages 1–2, `qwen2.5:3b` for Tool Use/ReAct in Stages 3–6, and `qwen3.5:4b` for Eval/Observability/Streaming/Deploy in Stage 7. These are curriculum defaults, not a universal model ranking.
## 🛠 B — Set Up the Python Runtime
Here `uv` manages both Python and packages. Install `uv` first:
macOS, Linux, or WSL:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
Windows PowerShell:
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
Close and reopen the terminal, then copy these in order:
```bash
uv --version
uv python install 3.12
uv run --python 3.12 python --version
```
When the last line shows `Python 3.12`, B is complete. `uv` also supports other Python versions; this tutorial fixes 3.12 to reduce package-compatibility problems for beginners.
View operating-system alternatives if installation fails
- On Windows, you can use `winget install --id=astral-sh.uv -e`.
- On macOS, you can use `brew install uv`.
- You can also download a release binary from the [official uv installation page](https://docs.astral.sh/uv/getting-started/installation/).
- If your company blocks installation scripts, stop and ask an administrator for an approved method; do not force your way past security software.
Already having Python 3.10–3.14 is fine; `uv` will find an available Python. The commands above simply prepare a consistent 3.12 for this tutorial.
## 🛠 C — Run Your First `hello-claude.py`
### 1. Create an Exercise Folder
PowerShell, macOS, and Linux terminals can all use:
```bash
mkdir my-first-llm
cd my-first-llm
```
### 2. Create `.gitignore` First
Create a file named `.gitignore` and paste in:
```gitignore
.env
__pycache__/
*.pyc
```
Exclude `.env` first, before creating the secret file, to reduce the chance of accidentally adding it to Git.
### 3. Create `.env` Next
Create a file named `.env`. Replace the placeholder with your own key; do not paste a real key into this document or commit it:
```dotenv
ANTHROPIC_API_KEY=PASTE_YOUR_KEY_HERE
```
### 4. Copy the Python Program
Create `hello-claude.py`:
```python
from anthropic import Anthropic
from dotenv import load_dotenv
load_dotenv()
client = Anthropic() # Read the key from ANTHROPIC_API_KEY
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=120,
messages=[{"role": "user", "content": "Introduce yourself in one sentence."}],
)
for block in message.content:
if block.type == "text":
print(block.text)
```
### 5. Run It Directly
```bash
uv run --python 3.12 --with anthropic --with python-dotenv python hello-claude.py
```
When the model prints an introduction, Python, the packages, the API key, and the network are all connected.
View common errors and safe recovery
| What you see | What it usually means | Do this first |
|---|---|---|
| `401`/`authentication_error` | The key was not read, has expired, or was pasted incorrectly | Revoke any questionable key; confirm the filename is `.env`, then create a new key |
| `429`/`rate_limit_error` | A usage, rate, or account-credit limit | Stop retrying, return to the Console to check usage / billing, then wait as the error message says |
| `ModuleNotFoundError` | You did not use the environment from this `uv run --with ...` command | Copy the full run command; do not run only `python hello-claude.py` |
| `uv` not found | The post-install terminal has not read the new PATH | Close and reopen the terminal; then check the official uv installation page |
| Connection error | A network, proxy, firewall, or service-status problem | Check the provider status page first; ask your company / school administrator about managed networks |
If a key has appeared in Git, chat, a screenshot, or a public log, deleting the text is not enough; revoke it in the Console immediately and create a new key.
## 🛠 D — Open Claude Code for the First Time
This is the entry point for Stage 5, not a requirement for completing the API quick start. Claude Code now prefers the native installer; you do not need to install Node.js first.
macOS, Linux, or WSL:
```bash
curl -fsSL https://claude.ai/install.sh | bash
```
Windows PowerShell:
```powershell
irm https://claude.ai/install.ps1 | iex
```
After installation, run `claude --version` first, then run `claude` in a small exercise folder. See [Claude Code Installation](https://code.claude.com/docs/en/installation) for complete requirements and other installation methods.
View login, system requirements, and your first CLAUDE.md
Claude Code currently requires one of the Claude plans, a Console account, or a supported cloud provider listed by the official documentation; the free Claude.ai plan does not include Claude Code. After running `claude`, follow the browser login prompt; see [Authentication](https://code.claude.com/docs/en/authentication) for identity details.
The current basic requirements include a supported Windows, macOS, or Linux system, at least 4 GB RAM, an internet connection, and an available shell. Windows can use PowerShell natively; consider WSL 2 when you need a Linux toolchain or sandbox.
You can create `CLAUDE.md` in the project root:
```markdown
# What this project does
This is a small learning project.
# Working rules
- Say which files you plan to change before editing them.
- Do not read or modify `.env`.
- Do not commit automatically; let me review the diff first.
- Ask before deleting files, installing packages, or using the network.
# Done when
- Run the smallest relevant test.
- Explain what changed, what you tested, and what risks remain.
```
`CLAUDE.md` is project instructions, not a security sandbox. Tool permissions, approval, version control, and human review still need to remain in place.
## 🛠 E — Create Your First Skill
This is an extension for Stage 5.3. A **Skill** is a reusable folder with a name, description, and operating instructions; it does not automatically become a security permission.
First action: create `.claude/skills/hello-skill/SKILL.md`.
View a directly copyable SKILL.md
```markdown
---
name: hello-skill
description: When the user explicitly asks for a greeting, reply in two languages.
---
When the user asks for a greeting:
1. Say hello once in Traditional Chinese.
2. Say hello once in English.
3. Do not read files, use the network, or run other tools.
```
Open `claude` in that project and enter “Please say hello.” Seeing both languages, with no extra actions, means you are done.
For fuller responsibility boundaries, see [Stage 5.3 — Skills](../stages/05-claude-code-ecosystem.en.md#53--skills-on-demand-procedure-cards); for more examples, see the [Cookbook](cookbook.en.md).
## ✅ Completion Check
Once any one of the following is true, you can leave this guide; you do not need to install every entry point:
- I can complete one conversation in Web Chat and know that it is not an API.
- I completed A → B → C and saw `hello-claude.py` print a model response.
- I chose the CLI path and can state the CLI Agent's working folder and permission scope.
Also confirm:
- A real API key has not appeared in source code, Git, chat, screenshots, or logs.
- I know how to revoke a key and know that API billing and chat subscriptions are separate.
- I did not skip diffs, tests, or human confirmation just because a tool can execute automatically.
## Where to Go Next
| What you want to do now | Next stop |
|---|---|
| Understand models, Tokens, Context Windows, and APIs | [Stage 1 — LLM Basics](../stages/01-llm-basics.en.md) |
| Learn Prompt directly | [Stage 2 — Prompt Engineering](../stages/02-prompt-engineering.en.md) |
| Work with a CLI Agent | [Track A1 — CLI Basics](../tracks/cli/A1-cli-intro.en.md) |
| Understand Claude Code, MCP, Skills, Plugins, and Subagents | [Stage 5 — Claude Code Ecosystem](../stages/05-claude-code-ecosystem.en.md) |
| Use local models | [Cookbook: local LLM walkthrough](cookbook.en.md#6-local-llm--cli-agent-quick-walkthrough) |
| Still cannot distinguish OpenRouter, Ollama, OpenCode, or Pi | [Glossary: distinguish five tool identities](glossary.en.md#-separate-five-tool-identities-first) |