{"content_id":"gqsjob8ujn","slug":"claude-code-setup-permissions-models-context-guide","locale":"en","schema_type":"TechArticle","category":"tutorial","category_name":"Tutorial","title":"Claude Code Basics: Installation, Permissions, Models, and Context Management","summary":"This guide explains Claude Code step by step, from installation and first launch to permission modes, model selection, context cleanup, and writing CLAUDE.md. It also corrects oversimplified information about permissions and costs in the source material based on the official documentation.","author":{"name":"Injoys Editorial Team","url":"https://injoys.com/ko/about"},"key_points":["Claude Code is an agentic coding tool that can read and modify files in a project directory and run terminal tools.","VS Code is a convenient option but not a requirement; Claude Code can also run in supported terminal environments.","For beginners, it is safer to review the scope of work in Plan mode before switching to default mode or Accept Edits mode.","Costs vary depending on the authentication method, selected model, input context, and number of task iterations.","CLAUDE.md is not a repository for conversation memory, but an instruction file that repeatedly provides the project's structure, commands, and rules."],"content_markdown":"Claude Code is an agentic development tool that lets you use Anthropic's Claude in the terminal and code repositories. Rather than merely answering with code snippets, it can explore and edit files, run commands, execute tests, and analyze errors within the permitted scope.\n\nThis guide explains not only the installation process, but also how to configure permissions safely, how to choose the right model for a task, and how to manage context and project instructions. Commands and supported environments may be updated, so when installing, check the latest commands shown in the official setup documentation.\n\n## Three Ways to Code with Claude\n\nThe key difference between these approaches is not the output, but **the extent to which the tool interacts with the local project**.\n\n| Approach | Local file access | Command execution | Suitable tasks | Main limitations |\n|---|---:|---:|---|---|\n| Claude web | Limited by default | Unavailable by default | Questions, code explanations, short examples, design reviews | Requires copying and running responses to apply them directly to the project |\n| Claude desktop app | Varies by feature, integration, and user approval | Varies by feature and integration | Document work, conversation-based tasks, supported local integrations | Does not automatically control repositories and shells in every installation environment |\n| Claude Code | Available within the project scope | Available according to permission policies | Editing actual repositories, testing, refactoring, long-term projects | Requires review and security configuration because it handles shell and file permissions |\n\nClaude Code is not only for professional developers. However, because it can perform tasks that affect the system, such as deleting files, installing dependencies, and running build scripts, beginners in particular should use Plan mode together with version control.\n\n## Prerequisites\n\nPrepare the following first.\n\n- Check the currently supported operating systems and shell environments in the official documentation.\n- Prepare an Anthropic account that can use Claude Code or a supported authentication and billing environment.\n- For an existing project, create a Git repository and commit or back up your changes.\n- Identify the project's test, build, and lint commands.\n- You can use an editor such as VS Code, but VS Code itself is not a requirement for Claude Code.\n\nOn Windows, check the PowerShell, Command Prompt, or WSL requirements provided in the official documentation. If the computer is managed by an organization, first review installation permissions, proxy settings, firewall rules, and data-handling policies.\n\n## Installing and Launching Claude Code\n\n### 1. Check the Official Installation Command\n\nSelect the latest installation method for your operating system from the official Claude Code setup documentation. Installation methods and commands may change, so use the official documentation as your source rather than reusing commands from outdated videos or blog posts.\n\n### 2. Open the Project Folder\n\nCreate a new folder or navigate to an existing repository. If you use VS Code, open the folder with **File \u003e Open Folder**, then select **Terminal \u003e New Terminal**.\n\n```bash\ncd path/to/project\nclaude\n```\n\nWhen you run `claude`, a browser authentication process may appear if needed. After you log in, Claude Code examines the project based on the current working directory. Therefore, it is safer to run it from the actual repository root rather than your home directory or an overly broad parent folder.\n\n### 3. Start Small with the First Request\n\nRather than asking it to build an entire application from the outset, divide the work into steps like these.\n\n1. Ask it to read and summarize the project structure.\n2. Ask it to present an implementation plan and the files to be changed.\n3. Ask it to implement only one feature.\n4. Ask it to run tests or static analysis.\n5. Ask it to explain the changes and remaining risks.\n\nExample request:\n\n```text\nRead this repository and summarize its structure and how to run it. Do not modify any files yet.\nOnly propose a plan for adding a login form and the files that would need to change.\n```\n\n## Permission Modes and Safe Configuration\n\nThe wording shown for Claude Code's permission modes may vary by version and settings screen. The main mode concepts used in the official configuration are as follows.\n\n| Mode | Behavior | Recommended use |\n|---|---|---|\n| Default | Requests approval as needed when editing files or running potentially risky tools | General day-to-day work |\n| Accept Edits | Automatically allows file edits, though separate approval may still apply to other tools | Development work where changed files are tracked with Git |\n| Plan | Focuses on analysis and planning without editing files or running commands | Understanding repositories, reviewing designs, and a beginner's first step |\n| Don't Ask | A non-interactive policy that rejects operations not approved in advance instead of asking about them | Automation environments or when using strict allowlists |\n| Bypass Permissions | Bypasses permission checks | Avoid except in environments where risks are controlled, such as isolated containers |\n\n`Shift+Tab` may be used to switch between some permission states provided in the interactive interface. However, not all settings necessarily cycle using this shortcut alone, so check the status shown on the current screen and the official permission documentation.\n\n### Recommended Workflow for Beginners\n\n1. Receive an implementation plan in Plan mode.\n2. Review the files to be changed and the commands to be run.\n3. Implement in Default or Accept Edits mode.\n4. Manually review package installations, database changes, and deletion commands.\n5. Review `git diff` and test results before committing.\n\nBypass Permissions is not merely a convenient high-speed mode. It can amplify the harm caused by incorrect commands, excessive file access, or exposure of secrets, so do not use it as the default on a personal computer or in an important repository.\n\n## Model Selection and Cost Management\n\nIn an interactive session, you can use `/model` to view or change the models available for your account and environment. Model names, aliases, and availability may vary by time and authentication method, so it is better not to build automation around a fixed model list.\n\n```text\n/model\n```\n\nGeneral selection principles are as follows.\n\n| Task type | Selection criteria |\n|---|---|\n| Architecture design, difficult debugging, complex reasoning | Consider a higher-performance model first |\n| General implementation, test writing, repetitive development | Consider a model with a good balance of performance and speed |\n| Simple searches, format conversions, minor edits | If supported by your account, consider a faster and more economical model |\n\nOpus, Sonnet, and Haiku are names that distinguish model families, but the exact versions in each family and their availability in Claude Code may continue to change. Some environments may support aliases such as `/model sonnet`, but checking the options displayed in the current session is the most accurate approach.\n\n### Practical Ways to Reduce Costs\n\n- Run it from the necessary subdirectory to reduce unnecessary file exploration.\n- Specify the goal, constraints, and completion criteria in a single request to reduce rework.\n- Provide the area around an error and the reproduction steps rather than an entire large log.\n- Exclude unnecessary paths such as generated files, build outputs, and large datasets.\n- Once exploration and design are complete, start a fresh session for the next unit of work.\n- Handle simple tasks with a faster, less expensive model where available.\n- If using the API, check cost-related commands together with usage information in the Anthropic Console.\n\nThe cost structure varies depending on the login method. Claude subscription accounts may have plan-specific usage limits, while usage through the Anthropic API or cloud providers may be billed by token. Therefore, do not assume that a particular model is always free or always costs a fixed amount.\n\n## Managing the Context Window\n\nThe context window is the range of conversations, file contents, tool results, project instructions, and other information that the model can reference when generating the current response. It is not the same as permanent memory or simply the character count of the conversation.\n\n### Main Commands\n\n| Command | Purpose | Caution |\n|---|---|---|\n| `/context` | Check the composition of context usage | The display format may vary by version |\n| `/compact` | Summarize the current conversation to free up context space | Details may be condensed during summarization |\n| `/clear` | Clear the current conversation history and start a new conversation | First record necessary decisions and work status in a document |\n\nThere is no universal threshold at which response quality necessarily declines once context usage exceeds a certain percentage. Claude Code may perform automatic compaction, and quality is affected not only by the amount of information included, but also by its relevance, redundancy, and conflicts.\n\nConsider cleaning up the context if you notice the following signs.\n\n- It repeatedly misses requirements that have already been revised.\n- It mistakes an outdated file state for the current state.\n- It confuses requirements from different features.\n- It rereads the same files unnecessarily.\n- The conversation and tool output have become excessively long.\n\nYou do not need to run `/clear` every time you finish a feature. Instead, you can reduce information loss by recording completed decisions, unresolved items, and test results in project documentation or work logs before moving to a new session.\n\n## Managing Project Instructions with CLAUDE.md\n\nThe filename is generally written as `CLAUDE.md`, including uppercase letters. This file is not Claude's permanent memory, but a persistent instruction document that Claude Code references within the project. Including it in the repository lets you share instructions with team members, but sensitive information must not be recorded in it.\n\nYou can use the `/init` command to analyze the project and begin creating an initial `CLAUDE.md`, but the result must be reviewed by a person.\n\n### Recommended Content\n\n- The project's purpose and core features\n- Languages, frameworks, and runtime versions used\n- The roles of important directories and modules\n- Installation, development server, test, lint, and build commands\n- Code style and naming conventions\n- Files that must not be modified and generated code\n- Security and personal data handling principles\n- Completion criteria and verification procedures\n\nExample:\n\n```markdown\n# Project instructions\n\n## Stack\n- Use TypeScript and Node.js.\n- The package manager is pnpm.\n\n## Commands\n- Tests: `pnpm test`\n- Lint: `pnpm lint`\n- Build: `pnpm build`\n\n## Rules\n- Do not read or commit `.env` or actual credentials.\n- Present a plan before changing the response format of a public API.\n- Add relevant tests for feature changes.\n```\n\nThere is no official maximum limit of 200 lines for `CLAUDE.md`. However, overly long instructions can consume context and create conflicts between rules, so it is practical to keep them brief and specific. Separate detailed design explanations into other documents and provide the relevant paths.\n\n## Recommended Workflow\n\nThe following basic procedure improves both safety and output quality.\n\n1. Confirm that the Git status is clean and create a backup or commit.\n2. Run Claude Code from the repository root.\n3. Review `CLAUDE.md` and existing documentation.\n4. In Plan mode, obtain the goal, files to modify, and test plan.\n5. Divide large tasks into small, reviewable units.\n6. Implement one unit at a time in Default or Accept Edits mode.\n7. Manually review commands that install, delete, deploy, or modify data.\n8. Check tests, linting, type checks, and `git diff`.\n9. Document the completion status and remaining issues.\n10. If the next task is unrelated to the previous conversation, start a new session with `/clear`.\n\n## Security Checklist\n\n- Prevent `.env`, API keys, certificates, and customer data from being exposed in prompts or repositories.\n- Do not experiment directly on production servers or databases.\n- Read shell commands or installation scripts from unknown sources before running them.\n- Review dependencies, licenses, security vulnerabilities, and tests even for code written by Claude.\n- Apply the principle of least privilege and use an isolated development environment for important work.\n- Review automatically generated changes with Git diff, with a person retaining final responsibility.\n\nClaude Code can significantly shorten the development process, but it is not an automatic safeguard that guarantees the accuracy and safety of results. The most reliable approach combines clear instructions, limited permissions, small units of change, automated tests, and human review.","content_html":"\u003cp\u003eClaude Code is an agentic development tool that lets you use Anthropic's Claude in the terminal and code repositories. Rather than merely answering with code snippets, it can explore and edit files, run commands, execute tests, and analyze errors within the permitted scope.\u003c/p\u003e\n\u003cp\u003eThis guide explains not only the installation process, but also how to configure permissions safely, how to choose the right model for a task, and how to manage context and project instructions. Commands and supported environments may be updated, so when installing, check the latest commands shown in the official setup documentation.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#three-ways-to-code-with-claude\" class=\"anchor\" id=\"three-ways-to-code-with-claude\"\u003e\u003c/a\u003eThree Ways to Code with Claude\u003c/h2\u003e\n\u003cp\u003eThe key difference between these approaches is not the output, but \u003cstrong\u003ethe extent to which the tool interacts with the local project\u003c/strong\u003e.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eApproach\u003c/th\u003e\n\u003cth\u003eLocal file access\u003c/th\u003e\n\u003cth\u003eCommand execution\u003c/th\u003e\n\u003cth\u003eSuitable tasks\u003c/th\u003e\n\u003cth\u003eMain limitations\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Approach\"\u003eClaude web\u003c/td\u003e\n\u003ctd data-label=\"Local file access\"\u003eLimited by default\u003c/td\u003e\n\u003ctd data-label=\"Command execution\"\u003eUnavailable by default\u003c/td\u003e\n\u003ctd data-label=\"Suitable tasks\"\u003eQuestions, code explanations, short examples, design reviews\u003c/td\u003e\n\u003ctd data-label=\"Main limitations\"\u003eRequires copying and running responses to apply them directly to the project\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Approach\"\u003eClaude desktop app\u003c/td\u003e\n\u003ctd data-label=\"Local file access\"\u003eVaries by feature, integration, and user approval\u003c/td\u003e\n\u003ctd data-label=\"Command execution\"\u003eVaries by feature and integration\u003c/td\u003e\n\u003ctd data-label=\"Suitable tasks\"\u003eDocument work, conversation-based tasks, supported local integrations\u003c/td\u003e\n\u003ctd data-label=\"Main limitations\"\u003eDoes not automatically control repositories and shells in every installation environment\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Approach\"\u003eClaude Code\u003c/td\u003e\n\u003ctd data-label=\"Local file access\"\u003eAvailable within the project scope\u003c/td\u003e\n\u003ctd data-label=\"Command execution\"\u003eAvailable according to permission policies\u003c/td\u003e\n\u003ctd data-label=\"Suitable tasks\"\u003eEditing actual repositories, testing, refactoring, long-term projects\u003c/td\u003e\n\u003ctd data-label=\"Main limitations\"\u003eRequires review and security configuration because it handles shell and file permissions\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eClaude Code is not only for professional developers. However, because it can perform tasks that affect the system, such as deleting files, installing dependencies, and running build scripts, beginners in particular should use Plan mode together with version control.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#prerequisites\" class=\"anchor\" id=\"prerequisites\"\u003e\u003c/a\u003ePrerequisites\u003c/h2\u003e\n\u003cp\u003ePrepare the following first.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCheck the currently supported operating systems and shell environments in the official documentation.\u003c/li\u003e\n\u003cli\u003ePrepare an Anthropic account that can use Claude Code or a supported authentication and billing environment.\u003c/li\u003e\n\u003cli\u003eFor an existing project, create a Git repository and commit or back up your changes.\u003c/li\u003e\n\u003cli\u003eIdentify the project's test, build, and lint commands.\u003c/li\u003e\n\u003cli\u003eYou can use an editor such as VS Code, but VS Code itself is not a requirement for Claude Code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOn Windows, check the PowerShell, Command Prompt, or WSL requirements provided in the official documentation. If the computer is managed by an organization, first review installation permissions, proxy settings, firewall rules, and data-handling policies.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#installing-and-launching-claude-code\" class=\"anchor\" id=\"installing-and-launching-claude-code\"\u003e\u003c/a\u003eInstalling and Launching Claude Code\u003c/h2\u003e\n\u003ch3\u003e\n\u003ca href=\"#1-check-the-official-installation-command\" class=\"anchor\" id=\"1-check-the-official-installation-command\"\u003e\u003c/a\u003e1. Check the Official Installation Command\u003c/h3\u003e\n\u003cp\u003eSelect the latest installation method for your operating system from the official Claude Code setup documentation. Installation methods and commands may change, so use the official documentation as your source rather than reusing commands from outdated videos or blog posts.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#2-open-the-project-folder\" class=\"anchor\" id=\"2-open-the-project-folder\"\u003e\u003c/a\u003e2. Open the Project Folder\u003c/h3\u003e\n\u003cp\u003eCreate a new folder or navigate to an existing repository. If you use VS Code, open the folder with \u003cstrong\u003eFile \u0026gt; Open Folder\u003c/strong\u003e, then select \u003cstrong\u003eTerminal \u0026gt; New Terminal\u003c/strong\u003e.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003ecd\u003c/span\u003e\u003cspan\u003e path/to/project\n\u003c/span\u003e\u003cspan\u003eclaude\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWhen you run \u003ccode\u003eclaude\u003c/code\u003e, a browser authentication process may appear if needed. After you log in, Claude Code examines the project based on the current working directory. Therefore, it is safer to run it from the actual repository root rather than your home directory or an overly broad parent folder.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#3-start-small-with-the-first-request\" class=\"anchor\" id=\"3-start-small-with-the-first-request\"\u003e\u003c/a\u003e3. Start Small with the First Request\u003c/h3\u003e\n\u003cp\u003eRather than asking it to build an entire application from the outset, divide the work into steps like these.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eAsk it to read and summarize the project structure.\u003c/li\u003e\n\u003cli\u003eAsk it to present an implementation plan and the files to be changed.\u003c/li\u003e\n\u003cli\u003eAsk it to implement only one feature.\u003c/li\u003e\n\u003cli\u003eAsk it to run tests or static analysis.\u003c/li\u003e\n\u003cli\u003eAsk it to explain the changes and remaining risks.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eExample request:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eRead this repository and summarize its structure and how to run it. Do not modify any files yet.\n\u003c/span\u003e\u003cspan\u003eOnly propose a plan for adding a login form and the files that would need to change.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e\n\u003ca href=\"#permission-modes-and-safe-configuration\" class=\"anchor\" id=\"permission-modes-and-safe-configuration\"\u003e\u003c/a\u003ePermission Modes and Safe Configuration\u003c/h2\u003e\n\u003cp\u003eThe wording shown for Claude Code's permission modes may vary by version and settings screen. The main mode concepts used in the official configuration are as follows.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eMode\u003c/th\u003e\n\u003cth\u003eBehavior\u003c/th\u003e\n\u003cth\u003eRecommended use\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Mode\"\u003eDefault\u003c/td\u003e\n\u003ctd data-label=\"Behavior\"\u003eRequests approval as needed when editing files or running potentially risky tools\u003c/td\u003e\n\u003ctd data-label=\"Recommended use\"\u003eGeneral day-to-day work\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Mode\"\u003eAccept Edits\u003c/td\u003e\n\u003ctd data-label=\"Behavior\"\u003eAutomatically allows file edits, though separate approval may still apply to other tools\u003c/td\u003e\n\u003ctd data-label=\"Recommended use\"\u003eDevelopment work where changed files are tracked with Git\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Mode\"\u003ePlan\u003c/td\u003e\n\u003ctd data-label=\"Behavior\"\u003eFocuses on analysis and planning without editing files or running commands\u003c/td\u003e\n\u003ctd data-label=\"Recommended use\"\u003eUnderstanding repositories, reviewing designs, and a beginner's first step\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Mode\"\u003eDon't Ask\u003c/td\u003e\n\u003ctd data-label=\"Behavior\"\u003eA non-interactive policy that rejects operations not approved in advance instead of asking about them\u003c/td\u003e\n\u003ctd data-label=\"Recommended use\"\u003eAutomation environments or when using strict allowlists\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Mode\"\u003eBypass Permissions\u003c/td\u003e\n\u003ctd data-label=\"Behavior\"\u003eBypasses permission checks\u003c/td\u003e\n\u003ctd data-label=\"Recommended use\"\u003eAvoid except in environments where risks are controlled, such as isolated containers\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003e\u003ccode\u003eShift+Tab\u003c/code\u003e may be used to switch between some permission states provided in the interactive interface. However, not all settings necessarily cycle using this shortcut alone, so check the status shown on the current screen and the official permission documentation.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#recommended-workflow-for-beginners\" class=\"anchor\" id=\"recommended-workflow-for-beginners\"\u003e\u003c/a\u003eRecommended Workflow for Beginners\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eReceive an implementation plan in Plan mode.\u003c/li\u003e\n\u003cli\u003eReview the files to be changed and the commands to be run.\u003c/li\u003e\n\u003cli\u003eImplement in Default or Accept Edits mode.\u003c/li\u003e\n\u003cli\u003eManually review package installations, database changes, and deletion commands.\u003c/li\u003e\n\u003cli\u003eReview \u003ccode\u003egit diff\u003c/code\u003e and test results before committing.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eBypass Permissions is not merely a convenient high-speed mode. It can amplify the harm caused by incorrect commands, excessive file access, or exposure of secrets, so do not use it as the default on a personal computer or in an important repository.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#model-selection-and-cost-management\" class=\"anchor\" id=\"model-selection-and-cost-management\"\u003e\u003c/a\u003eModel Selection and Cost Management\u003c/h2\u003e\n\u003cp\u003eIn an interactive session, you can use \u003ccode\u003e/model\u003c/code\u003e to view or change the models available for your account and environment. Model names, aliases, and availability may vary by time and authentication method, so it is better not to build automation around a fixed model list.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e/model\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eGeneral selection principles are as follows.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eTask type\u003c/th\u003e\n\u003cth\u003eSelection criteria\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Task type\"\u003eArchitecture design, difficult debugging, complex reasoning\u003c/td\u003e\n\u003ctd data-label=\"Selection criteria\"\u003eConsider a higher-performance model first\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Task type\"\u003eGeneral implementation, test writing, repetitive development\u003c/td\u003e\n\u003ctd data-label=\"Selection criteria\"\u003eConsider a model with a good balance of performance and speed\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Task type\"\u003eSimple searches, format conversions, minor edits\u003c/td\u003e\n\u003ctd data-label=\"Selection criteria\"\u003eIf supported by your account, consider a faster and more economical model\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eOpus, Sonnet, and Haiku are names that distinguish model families, but the exact versions in each family and their availability in Claude Code may continue to change. Some environments may support aliases such as \u003ccode\u003e/model sonnet\u003c/code\u003e, but checking the options displayed in the current session is the most accurate approach.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#practical-ways-to-reduce-costs\" class=\"anchor\" id=\"practical-ways-to-reduce-costs\"\u003e\u003c/a\u003ePractical Ways to Reduce Costs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun it from the necessary subdirectory to reduce unnecessary file exploration.\u003c/li\u003e\n\u003cli\u003eSpecify the goal, constraints, and completion criteria in a single request to reduce rework.\u003c/li\u003e\n\u003cli\u003eProvide the area around an error and the reproduction steps rather than an entire large log.\u003c/li\u003e\n\u003cli\u003eExclude unnecessary paths such as generated files, build outputs, and large datasets.\u003c/li\u003e\n\u003cli\u003eOnce exploration and design are complete, start a fresh session for the next unit of work.\u003c/li\u003e\n\u003cli\u003eHandle simple tasks with a faster, less expensive model where available.\u003c/li\u003e\n\u003cli\u003eIf using the API, check cost-related commands together with usage information in the Anthropic Console.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe cost structure varies depending on the login method. Claude subscription accounts may have plan-specific usage limits, while usage through the Anthropic API or cloud providers may be billed by token. Therefore, do not assume that a particular model is always free or always costs a fixed amount.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#managing-the-context-window\" class=\"anchor\" id=\"managing-the-context-window\"\u003e\u003c/a\u003eManaging the Context Window\u003c/h2\u003e\n\u003cp\u003eThe context window is the range of conversations, file contents, tool results, project instructions, and other information that the model can reference when generating the current response. It is not the same as permanent memory or simply the character count of the conversation.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#main-commands\" class=\"anchor\" id=\"main-commands\"\u003e\u003c/a\u003eMain Commands\u003c/h3\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eCommand\u003c/th\u003e\n\u003cth\u003ePurpose\u003c/th\u003e\n\u003cth\u003eCaution\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Command\"\u003e\u003ccode\u003e/context\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"Purpose\"\u003eCheck the composition of context usage\u003c/td\u003e\n\u003ctd data-label=\"Caution\"\u003eThe display format may vary by version\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Command\"\u003e\u003ccode\u003e/compact\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"Purpose\"\u003eSummarize the current conversation to free up context space\u003c/td\u003e\n\u003ctd data-label=\"Caution\"\u003eDetails may be condensed during summarization\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Command\"\u003e\u003ccode\u003e/clear\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"Purpose\"\u003eClear the current conversation history and start a new conversation\u003c/td\u003e\n\u003ctd data-label=\"Caution\"\u003eFirst record necessary decisions and work status in a document\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eThere is no universal threshold at which response quality necessarily declines once context usage exceeds a certain percentage. Claude Code may perform automatic compaction, and quality is affected not only by the amount of information included, but also by its relevance, redundancy, and conflicts.\u003c/p\u003e\n\u003cp\u003eConsider cleaning up the context if you notice the following signs.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt repeatedly misses requirements that have already been revised.\u003c/li\u003e\n\u003cli\u003eIt mistakes an outdated file state for the current state.\u003c/li\u003e\n\u003cli\u003eIt confuses requirements from different features.\u003c/li\u003e\n\u003cli\u003eIt rereads the same files unnecessarily.\u003c/li\u003e\n\u003cli\u003eThe conversation and tool output have become excessively long.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou do not need to run \u003ccode\u003e/clear\u003c/code\u003e every time you finish a feature. Instead, you can reduce information loss by recording completed decisions, unresolved items, and test results in project documentation or work logs before moving to a new session.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#managing-project-instructions-with-claudemd\" class=\"anchor\" id=\"managing-project-instructions-with-claudemd\"\u003e\u003c/a\u003eManaging Project Instructions with CLAUDE.md\u003c/h2\u003e\n\u003cp\u003eThe filename is generally written as \u003ccode\u003eCLAUDE.md\u003c/code\u003e, including uppercase letters. This file is not Claude's permanent memory, but a persistent instruction document that Claude Code references within the project. Including it in the repository lets you share instructions with team members, but sensitive information must not be recorded in it.\u003c/p\u003e\n\u003cp\u003eYou can use the \u003ccode\u003e/init\u003c/code\u003e command to analyze the project and begin creating an initial \u003ccode\u003eCLAUDE.md\u003c/code\u003e, but the result must be reviewed by a person.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#recommended-content\" class=\"anchor\" id=\"recommended-content\"\u003e\u003c/a\u003eRecommended Content\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe project's purpose and core features\u003c/li\u003e\n\u003cli\u003eLanguages, frameworks, and runtime versions used\u003c/li\u003e\n\u003cli\u003eThe roles of important directories and modules\u003c/li\u003e\n\u003cli\u003eInstallation, development server, test, lint, and build commands\u003c/li\u003e\n\u003cli\u003eCode style and naming conventions\u003c/li\u003e\n\u003cli\u003eFiles that must not be modified and generated code\u003c/li\u003e\n\u003cli\u003eSecurity and personal data handling principles\u003c/li\u003e\n\u003cli\u003eCompletion criteria and verification procedures\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e# Project instructions\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e## Stack\n\u003c/span\u003e\u003cspan\u003e- Use TypeScript and Node.js.\n\u003c/span\u003e\u003cspan\u003e- The package manager is pnpm.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e## Commands\n\u003c/span\u003e\u003cspan\u003e- Tests: \u003c/span\u003e\u003cspan\u003e`pnpm test`\n\u003c/span\u003e\u003cspan\u003e- Lint: \u003c/span\u003e\u003cspan\u003e`pnpm lint`\n\u003c/span\u003e\u003cspan\u003e- Build: \u003c/span\u003e\u003cspan\u003e`pnpm build`\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e## Rules\n\u003c/span\u003e\u003cspan\u003e- Do not read or commit \u003c/span\u003e\u003cspan\u003e`.env`\u003c/span\u003e\u003cspan\u003e or actual credentials.\n\u003c/span\u003e\u003cspan\u003e- Present a plan before changing the response format of a public API.\n\u003c/span\u003e\u003cspan\u003e- Add relevant tests for feature changes.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThere is no official maximum limit of 200 lines for \u003ccode\u003eCLAUDE.md\u003c/code\u003e. However, overly long instructions can consume context and create conflicts between rules, so it is practical to keep them brief and specific. Separate detailed design explanations into other documents and provide the relevant paths.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#recommended-workflow\" class=\"anchor\" id=\"recommended-workflow\"\u003e\u003c/a\u003eRecommended Workflow\u003c/h2\u003e\n\u003cp\u003eThe following basic procedure improves both safety and output quality.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eConfirm that the Git status is clean and create a backup or commit.\u003c/li\u003e\n\u003cli\u003eRun Claude Code from the repository root.\u003c/li\u003e\n\u003cli\u003eReview \u003ccode\u003eCLAUDE.md\u003c/code\u003e and existing documentation.\u003c/li\u003e\n\u003cli\u003eIn Plan mode, obtain the goal, files to modify, and test plan.\u003c/li\u003e\n\u003cli\u003eDivide large tasks into small, reviewable units.\u003c/li\u003e\n\u003cli\u003eImplement one unit at a time in Default or Accept Edits mode.\u003c/li\u003e\n\u003cli\u003eManually review commands that install, delete, deploy, or modify data.\u003c/li\u003e\n\u003cli\u003eCheck tests, linting, type checks, and \u003ccode\u003egit diff\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDocument the completion status and remaining issues.\u003c/li\u003e\n\u003cli\u003eIf the next task is unrelated to the previous conversation, start a new session with \u003ccode\u003e/clear\u003c/code\u003e.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003e\n\u003ca href=\"#security-checklist\" class=\"anchor\" id=\"security-checklist\"\u003e\u003c/a\u003eSecurity Checklist\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent \u003ccode\u003e.env\u003c/code\u003e, API keys, certificates, and customer data from being exposed in prompts or repositories.\u003c/li\u003e\n\u003cli\u003eDo not experiment directly on production servers or databases.\u003c/li\u003e\n\u003cli\u003eRead shell commands or installation scripts from unknown sources before running them.\u003c/li\u003e\n\u003cli\u003eReview dependencies, licenses, security vulnerabilities, and tests even for code written by Claude.\u003c/li\u003e\n\u003cli\u003eApply the principle of least privilege and use an isolated development environment for important work.\u003c/li\u003e\n\u003cli\u003eReview automatically generated changes with Git diff, with a person retaining final responsibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eClaude Code can significantly shorten the development process, but it is not an automatic safeguard that guarantees the accuracy and safety of results. The most reliable approach combines clear instructions, limited permissions, small units of change, automated tests, and human review.\u003c/p\u003e\n","tags":["Claude Code","Anthropic","AI Coding","Development Tools","CLI"],"faqs":[{"question":"Is VS Code required to use Claude Code?","answer":"No. Using VS Code's integrated terminal is convenient, but it is not required. If you have an operating system and terminal environment supported by the official documentation, you can run `claude` from the project directory."},{"question":"What is the biggest difference between Claude on the web and Claude Code?","answer":"Claude on the web mainly provides conversations and code responses, while Claude Code can read and modify actual project files and run terminal tools within the permitted scope. This makes it more productive, but file and command permissions must be managed carefully."},{"question":"Which permission mode should beginners start with?","answer":"A safe workflow is to first review the change plan and target files in Plan mode, then implement the changes in Default or Accept Edits mode. It is best not to automatically approve tasks such as installing packages, deleting files, or modifying databases."},{"question":"Does Don't Ask mode automatically execute every task?","answer":"No. Don't Ask is generally a policy that rejects tasks that have not been pre-approved rather than asking the user for permission. It should be distinguished from Bypass Permissions, which bypasses all permission checks."},{"question":"How do I change the model in Claude Code?","answer":"In an interactive session, enter `/model` to view and select the models available for your current account and environment. Model versions and aliases may change, so use the current menu as your reference rather than an outdated list."},{"question":"Does using Sonnet always cost the least?","answer":"Not always. Cost depends not only on the model's pricing but also on the input context, output length, number of retries, cache usage, and authentication and billing methods. A more economical model may be better for simple tasks, but for difficult tasks, a higher-performing model may reduce rework and lower the overall cost."},{"question":"What is the difference between /clear and /compact?","answer":"`/clear` is used to erase the current conversation history and start as if it were a new session. `/compact` summarizes the existing conversation to free up context space, but some details may be condensed during the summarization process."},{"question":"Does response quality necessarily decline when context usage exceeds 80%?","answer":"There is no universal official threshold like that. In addition to the usage percentage, quality is affected by the relevance, repetition, and conflicts of information, as well as the size of tool outputs. It is reasonable to monitor the status with `/context` and clean it up when signs appear, such as confusion over old requirements."},{"question":"Which filename is correct, claude.md or CLAUDE.md?","answer":"The project instructions file is written as `CLAUDE.md` in the official documentation. Because some operating systems and tools are case-sensitive, it is safest to use the official capitalization exactly as shown."},{"question":"Does CLAUDE.md have to be at most 200 lines?","answer":"There is no official maximum limit of 200 lines. However, long instructions use more context and may cause rule conflicts, so it is best to state the key commands and constraints concisely and put detailed explanations in separate documents."},{"question":"Can I put API keys or passwords in CLAUDE.md?","answer":"No. CLAUDE.md may be committed to the repository and shared with the team, so actual credentials, customer data, and secret keys should not be recorded in it. Secrets should be managed using environment variables or secret management systems approved by the organization."},{"question":"When should I use Bypass Permissions?","answer":"It should be considered carefully only in controlled environments, such as isolated containers or disposable sandboxes, where harm caused by bypassing permissions can be limited. It is advisable not to use it as the default mode on personal computers, in important repositories, or in production environments."}],"sources":[{"url":"https://code.claude.com/docs/en/overview","title":"Claude Code overview","type":"source"},{"url":"https://code.claude.com/docs/en/setup","title":"Claude Code setup","type":"source"},{"url":"https://code.claude.com/docs/en/permissions","title":"Claude Code permissions","type":"source"},{"url":"https://code.claude.com/docs/en/model-config","title":"Claude Code model configuration","type":"source"},{"url":"https://code.claude.com/docs/en/costs","title":"Claude Code costs","type":"source"},{"url":"https://code.claude.com/docs/en/memory","title":"Claude Code memory and CLAUDE.md","type":"source"},{"url":"https://code.claude.com/docs/en/interactive-mode","title":"Claude Code interactive mode","type":"source"}],"images":[{"id":617,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NzQ0NCwicHVyIjoiYmxvYl9pZCJ9fQ==--d808896af034f2719d1a1a65b061553a991d3196/ai-572421ed.webp","is_representative":true,"generation_method":"ai_image","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"코드가 표시된 노트북과 파일 트리, 권한 방패, 연결된 작업 흐름을 그린 일러스트","caption":"코드 작업에서 파일, 권한, 컨텍스트가 연결되는 구조를 시각화합니다.","description":null},"en":{"alt":"Illustration of a coding laptop, file tree, permission shield, and connected workflow","caption":"The diagram visualizes how files, permissions, and context connect in a coding workflow.","description":null},"ja":{"alt":"コード画面のノートPC、ファイルツリー、権限シールド、連携ワークフローのイラスト","caption":"コーディング作業でファイル、権限、コンテキストが連携する仕組みを示しています。","description":null},"es":{"alt":"Ilustración de un portátil con código, árbol de archivos, escudo de permisos y flujo conectado","caption":"El diagrama muestra cómo se conectan archivos, permisos y contexto en un flujo de programación.","description":null},"id":{"alt":"Ilustrasi laptop berkode, pohon file, perisai izin, dan alur kerja yang terhubung","caption":"Diagram ini memvisualisasikan hubungan file, izin, dan konteks dalam alur kerja pemrograman.","description":null},"pt":{"alt":"Ilustração de notebook com código, árvore de arquivos, escudo de permissões e fluxo conectado","caption":"O diagrama mostra como arquivos, permissões e contexto se conectam em um fluxo de programação.","description":null},"zh-hant":{"alt":"顯示程式碼的筆電、檔案樹、權限盾牌與連接工作流程的插圖","caption":"此圖呈現程式開發流程中檔案、權限與上下文的連結方式。","description":null},"de":{"alt":"Illustration eines Laptops mit Code, Dateibaum, Berechtigungsschild und vernetztem Arbeitsablauf","caption":"Die Grafik zeigt, wie Dateien, Berechtigungen und Kontext in einem Programmierablauf verbunden sind.","description":null}}},{"id":618,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NzQ1MCwicHVyIjoiYmxvYl9pZCJ9fQ==--e073adddcaf8ad6bf81bc0a0b0ca1d385d6d6a38/ai-c02b920d.webp","is_representative":false,"generation_method":"ai_image","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"중앙 서버에 코드, 권한 잠금, 워크플로, 문서, 데이터베이스, 클라우드가 연결된 그림","caption":"Claude Code의 코드 실행, 권한, 컨텍스트와 데이터 연결 구조를 시각화한 그림입니다.","description":null},"en":{"alt":"Central server linked to code, permission lock, workflow, documents, databases, and cloud services","caption":"The illustration visualizes how Claude Code connects execution, permissions, context, and data.","description":null},"ja":{"alt":"中央サーバーにコード、権限ロック、ワークフロー、文書、データベース、クラウドが接続された図","caption":"Claude Codeにおけるコード実行、権限、コンテキスト、データの連携を表しています。","description":null},"es":{"alt":"Servidor central conectado con código, permisos, flujos, documentos, bases de datos y nube","caption":"La ilustración representa la conexión entre ejecución, permisos, contexto y datos en Claude Code.","description":null},"id":{"alt":"Server pusat terhubung ke kode, kunci izin, alur kerja, dokumen, basis data, dan cloud","caption":"Ilustrasi ini menunjukkan hubungan eksekusi, izin, konteks, dan data dalam Claude Code.","description":null},"pt":{"alt":"Servidor central ligado a código, bloqueio de permissões, fluxos, documentos, bancos de dados e nuvem","caption":"A ilustração mostra a conexão entre execução, permissões, contexto e dados no Claude Code.","description":null},"zh-hant":{"alt":"中央伺服器連接程式碼、權限鎖、工作流程、文件、資料庫與雲端服務","caption":"此圖呈現 Claude Code 中程式執行、權限、上下文與資料的連接關係。","description":null},"de":{"alt":"Zentraler Server mit Code, Zugriffssperre, Abläufen, Dokumenten, Datenbanken und Cloud-Diensten","caption":"Die Grafik zeigt das Zusammenspiel von Ausführung, Berechtigungen, Kontext und Daten in Claude Code.","description":null}}}],"published_at":"2026-08-13T12:12:59+09:00","updated_at":"2026-08-13T12:12:59+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant","de"],"url":"https://injoys.com/en/articles/claude-code-setup-permissions-models-context-guide"}