Back to guides
how to use·September 5, 2026·Updated October 3, 2026·9 min read

How to use Claude Code — starting where introductory guides end

Claude Code is an agent that lives inside your repository in the terminal. The difficulties begin not with the first run, but when you have to repeat the same explanation every time, confirmation prompts become too frequent, or the usage window closes.

There are plenty of guides to Claude Code, but most stop at “install it and get your first response.” The real sticking points come later: having to repeat the same explanations every time, getting too many confirmation prompts, and having the five-hour usage window close in the middle of a task. This guide starts where the beginner guides end and works through those three issues in turn.

Let's start with one key point: Claude Code is not a tool for pasting code into a chat window; it is an agent that runs in your repository from the terminal. It reads and edits files, runs tests, and even commits changes. So the first task is not to memorize how to use it, but to give it the project's rules.

The first three steps—launch, /init, and a specific request

These are the only three things worth doing right after installation. In particular, skip the second /init and you will have to repeat the same explanations in every session.

# 1. 프로젝트 디렉터리에서 실행한다 (이게 전제 조건입니다)
cd ~/work/my-app
claude

# 2. 첫 명령은 /init — 저장소를 읽고 CLAUDE.md를 만들어 줍니다
> /init

# 3. 이후엔 한국어로 그냥 부탁하면 됩니다. 파일 경로를 붙일수록 정확해집니다
> src/api/user.ts의 검증 로직을 zod로 바꾸고 테스트도 같이 고쳐줘

/init reads the repository and creates CLAUDE.md. The generated content is a draft, so do not leave it as is; be sure to review and edit it yourself. The next section explains what to put in it.

CLAUDE.md—write once what you used to explain every time

CLAUDE.md is a Markdown file in the project root, and it is read automatically in every session. Include only “things that cannot be learned by reading the code.”

CLAUDE.md
# CLAUDE.md — 프로젝트 루트에 두고 git에 커밋합니다

## 명령어
- 테스트: npm test (파일 하나만: npm test -- path/to/file)
- 타입 검사: npx tsc --noEmit
- 린트: npm run lint

## 규칙
- 날짜는 date-fns만 사용. moment 금지.
- API 핸들러는 app/api/**/route.ts에만 둔다.
- 커밋 메시지는 한국어, prefix는 feat / fix / docs.

## 건드리면 안 되는 곳
- db/migrations/ — 생성물. 직접 수정 금지.

It is also clear what not to include. Directory structures and function descriptions are unnecessary because they are apparent from the code. CLAUDE.md is included with every request, so the longer it is, the more tokens it uses—keep it short and focused on rules. Commit it to git to apply the same rules across the team.

Permissions—reduce prompts, but do not disable them all

A confirmation prompt appears whenever you edit a file or run a command. Since this is a safeguard, a practical approach is to allow only read and verification commands instead of disabling everything. Choose “Always allow” during a session and Claude Code will remember it; add the permission to .claude/settings.json to make it apply to the project.

There is also a flag that skips all confirmations, including for deletion and remote push. Use it only in a disposable container or throwaway worktree that you can afford to break. The criteria for when to use it are explained in when to use --dangerously-skip-permissions.

Custom commands—stop typing the same request every time

Tasks you ask Claude Code to do in almost the same way every time, such as reviews, pre-release checks, or polishing commit messages, can be saved as commands. Just put a Markdown file in .claude/commands/.

.claude/commands/review.md
# .claude/commands/review.md — 파일만 두면 /review로 쓸 수 있습니다
지정된 파일을 리뷰하고 다음 세 가지만 지적하세요.

1. 실제로 실패하는 조건이 있는 버그 (재현 방법 포함)
2. 기존 유틸리티로 대체 가능한 중복
3. 테스트가 없는 분기

스타일 취향은 지적하지 마세요.

Then /review src/api/user.ts runs a review from the same perspective each time. Commit it to git and the team can share it, with the review criteria stored in the repository. For more details and practical examples, see Claude Code workflows.

How to keep working when the usage window closes

Subscription usage is managed through a rolling five-hour window, which can close right in the middle of a busy afternoon. Upgrading to a higher plan does not reopen it immediately. There are three practical options.

OptionBest for
Wait for the window to reopenNo deadline; you can put it off for a few hours
Switch to a higher planIt happens every day; you regularly run short of limits
Switch just that task to an API keyIt must be finished today; it only happens a few times a month

The third option does not require cancelling your subscription. Usage is billed pay as you go only while the two lines below are set; remove the variables to switch back to the subscription. If you do not have a key, start by creating a Claude API key.

~/.zshrc
# 사용량 창이 닫혀도 작업을 이어가는 두 줄.
# 이 변수가 설정된 동안에만 종량제로 청구되고, 지우면 구독으로 돌아갑니다.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-...

# 클로드 코드의 기본 모델과 opus 별칭은 최신 Opus를, sonnet 별칭은 Sonnet 5.5를
# 가리킵니다. Kunavo가 제공하지 않는 모델(Sonnet 5.5, 아직 들어오지 않은 새 Opus)을
# 요청해 404가 나지 않도록 모델을 고정합니다. sonnet을 고정하지 않으면 /model sonnet,
# opusplan의 실행 단계, model: sonnet으로 지정한 서브에이전트가 404를 받습니다.
# opus 별칭에 고정한 Opus 5.5는 Claude Code v2.1.280 이상이 필요합니다
# (이전 버전이면 먼저 claude update).
export ANTHROPIC_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5

# 보조 작업을 가장 싼 모델로 넘기는 한 줄 (매 세션 효과가 있습니다)
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

Rates are read directly from the catalog: Claude Sonnet 5 costs $1.40 / $7.00 per 1M tokens, and Claude Haiku 4.5 costs $0.70 / $3.50. Charges come out of your prepaid balance, so there is no bill in months when you do not work. The break-even calculation for subscription versus pay-as-you-go is in Claude Code pricing; solutions for payment issues with Korean cards are in Claude API pricing and payment; the usage window itself is explained in Claude Pro limits.

Requests that improve results—and those that hurt them

Finally, this is where differences in how you use Claude Code have the biggest impact. Include file paths to reduce tokens spent exploring and get faster, more accurate results—for example, “Replace the validation logic in src/api/user.ts with zod” instead of “Fix the validation logic.”

Also, do not hand off a large task all at once. Break it into changes, tests, and the next change, so there is a clear point to return to if something fails. For ways to diagnose errors, see Claude Code error guide.

If you want to use OpenAI's coding agent the same way, how to use Codex explains how to run Codex CLI with an API key and no ChatGPT plan.

Frequently asked questions

What should I do first when using Claude Code?

Run claude in your project directory, then run /init once. /init reads the repository and creates CLAUDE.md. Use that file to document how to run tests, project rules, and paths that must not be touched; it will then be read automatically in every session. If you skip this step, you will have to repeat the same explanations each time.

What should I put in CLAUDE.md?

Include only “things you otherwise have to explain every time.” Test and type-check commands, project-specific rules (use this library, do not put logic in this layer), and paths to generated files that must not be modified are enough. Do not include directory structures or function descriptions that can be understood by reading the code. CLAUDE.md is sent with every request, so making it longer only increases cost without improving accuracy.

What should I do when I hit the five-hour usage limit?

There are three options: wait for the window to reopen, upgrade to a higher plan, or switch that task to an API key. The third option only requires two lines: ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN. You do not need to cancel your subscription. While the variables are set, usage is billed pay as you go; remove them to switch back. Upgrading plans does not reopen the window immediately, so the third option is fastest when you have a deadline.

Can I reduce the number of confirmation prompts?

Yes. Choose “Always allow” during a session and Claude Code will remember it; add the permission to .claude/settings.json to make it apply to the project. Allowing only read and verification commands such as npm test or git status can greatly reduce the number of prompts. There is also a flag that skips all confirmations, including for deletion and push, so use it only in a disposable container.

How do I create a custom command?

Just add a Markdown file under .claude/commands/. Add review.md and you can invoke it with /review. A natural-language prompt is enough for its contents. Commit it to git and the whole team can use the same command, letting you save recurring requests such as review criteria or release checks in the repository.

What is the most reliable way to get better results?

Specify file paths. “Fix the validation logic” is less direct than “Replace the validation logic in src/api/user.ts with zod,” so the latter uses fewer tokens for exploration and is faster and more accurate. Another tip: do not hand off a large task all at once. Break it into changes, tests, and the next change, so there is a clear point to return to if something fails.