The settings and features I first grasped when starting to use Claude Code

The settings and features I first grasped when starting to use Claude Code

2026.04.03

This page has been translated by machine translation. View original

I am Katagiri from the AI Business Division/West Japan Development Team.
As April is approaching and more people are likely to start using Claude Code, I have organized "essential settings and features to understand first" from my perspective.

About this article

[Target audience]

  • Those who have installed Claude Code but haven't configured it specifically
  • Those who want to review Claude Code's basic functions

Current status check

Run the command below to check if Claude Code is working properly.

claude doctor

After execution, please confirm the following two points:

claude doctor execution result (partial excerpt)
 Currently running: native (2.1.84) ← check if running native version
 Auto-update channel: stable (version setting for auto-updates)

Introduction - Claude Code global settings (settings.json)

Before creating CLAUDE.md, let's first check settings.json which contains Claude Code settings.
This file is used to specify models, environment variables, and the Hooks mentioned later.

Where to place settings.json

  • ~/.claude/settings.json shared across all projects
  • .claude/settings.json project-specific (create as needed)

Example of settings.json

Below is what I set up initially.

settings.json
{
  "autoUpdatesChannel": "stable",
  "language": "japanese",
  "cleanupPeriodDays": 14,
  "showTurnDuration": true,
  "spinnerTipsEnabled": false,
  "model": "sonnet",
  "env": {
    "DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1"
  }
}
Explanation of settings
  • autoUpdatesChannel ("stable"): Update resource channel
  • language ("japanese"): Fix responses to Japanese
  • cleanupPeriodDays (14): Automatically delete old session history after 14 days
  • showTurnDuration (true): Display time taken for each response
  • spinnerTipsEnabled (false): Turn off tips display during loading (optional)
  • DISABLE_NON_ESSENTIAL_MODEL_CALLS ("1"): Stop unnecessary API calls in the background

Auto-update (About update resource channels)

This setting allows you to configure whether to install the latest version or the stable version when Claude Code updates.

"latest": Receive the latest version as soon as it's released (default)
"stable": Use a version from about 1 week ago, skipping releases with major regressions

Quoted from Official Documentation

After setting, run claude doctor to confirm that it has been applied.

Creating instructions for Claude Code (CLAUDE.md)

CLAUDE.md is an instruction document that is automatically loaded at the beginning of each session.
The purpose is to create a state where "you don't need to explain the same things every time."

Where to place CLAUDE.md

  • ~/.claude/CLAUDE.md ← "personal rules" common to all projects
  • ./CLAUDE.md (project root) ← instructions specific to that project

Principles to know before writing CLAUDE.md

The longer your CLAUDE.md becomes, the more tokens are consumed each time, and it may reduce overall inference accuracy.

+ What to write: Your work style, what you don't want done, rules used across projects  

- What not to write: Code style, things controlled by settings.json, overly long background explanations

Example of CLAUDE.md

First, let's create rules common to all projects.

CLAUDE.md
# Basic policy
- Always present a work plan and get confirmation before making changes
- Progress in small, incremental steps rather than making large changes at once
- If there are any unclear points, stop work and ask questions

# Things not to do
- Don't modify files that haven't been specified
- Don't read or modify `.env` files
- Don't skip tests without permission

# Context management
- Suggest `/clear` after completing work
- Suggest `/compact` for long sessions

Creating project-specific CLAUDE.md during work

Project-specific CLAUDE.md can be created automatically using /init within a Claude session.
Since it's automatically generated, make sure to review it after creation.
You can also create it manually in the project directory without issues.

Examples to add for each project

  • Add team-specific rules that weren't automatically detected
  • Delete unnecessary lines (shorter is better!)

4 ways to reduce token consumption

The context window includes [conversations with Claude Code, loaded files, execution results, CLAUDE.md content] etc.
As this amount increases, accuracy decreases and token consumption (cost) increases.

Check the session's context window status

Use the /context command to check current usage.

/context example
 /context
  Context Usage
   claude-sonnet-4-6 · 15k/200k tokens (8%)

   Estimated usage by category
 System prompt: 6.2k tokens (3.1%)
 System tools: 8.3k tokens (4.2%)
 Memory files: 196 tokens (0.1%)
 Skills: 476 tokens (0.2%)
 Messages: 8 tokens (0.0%)
 Compact buffer: 3k tokens (1.5%)
 Free space: 182k (90.9%)

     Memory files · /memory
 ~/.claude/CLAUDE.md: 196 tokens

     Skills · /skills

About 15k tokens are consumed at startup.
Of these, about 14.5k (System prompt + System tools) are fixed costs that cannot be changed.
What you can adjust from here are the [Memory files (CLAUDE.md) + Skills] parts.

4 commands for token saving

/clear ← Initialize the context window

When to use:

  • When switching to a different task
  • When one task is completed
  • When the conversation starts going off track

/compact ← Summarize the context window to create space

When to use:

  • When you want to continue the same task, but the context exceeds 70%.

It's even more useful with instructions, like /compact Make sure to keep the changed files and current TODOs.

/context ← Check current usage

When to use:

  • When you feel the response accuracy is poor
  • When the speed slows down

@ ← Specify files to narrow down what to load

Using @filename or @directory allows you to include files in the prompt.
By passing only the parts related to the current task, rather than the entire project, you can minimize the increase in the context window.

+ Bad example: `@project-a/` Find bugs in the entire project  

- Optimal example: `@src/auth.ts Add error handling that's missing in the loginUser function`

Understanding two features

Let's briefly summarize two representative features of Claude Code: [Skills・Hooks].

Execution (calling) timing

  • Skills:
    • Explicitly executed (/skill-name)
    • Automatically executed by Claude Code as needed
  • Hooks:
    • Automatically executed according to Claude Code's processing

1. Skills
By placing SKILL.md in the .claude/skills/ directory, you can package workflows.

SKILL.md
---
name: memo-management
description: Used when handling memos, minutes, and note files. Applied in situations requiring summarization, organization, and action extraction.
---

## How to handle memo files
- Read only; do not change or overwrite content

2. Hooks
A powerful feature that automatically runs shell commands when Claude Code performs specific actions (before/after tool execution, at session end, etc.).
Add a hooks block to settings.json to describe them.
Recently, it's also possible to use if filters to hook only specific commands and block execution.

Here's a simple example setting that sends a notification when work is completed.

settings.json
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Work completed\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

How to choose between CLAUDE.md and Skills

Since CLAUDE.md is loaded in its "entirety" at the beginning of each session, it always consumes tokens.
For Skills, only the "description" is loaded at startup, and the entire content is loaded when needed.
By utilizing Skills, you can use tokens more efficiently.

Conclusion

In this article, I've summarized the settings and features that new Claude Code users should understand first.
I myself am still at the stage of starting to use it extensively.
I want to continue sharing things I notice and stumble upon from the perspective of someone who has just started, just like many of you.

Share this article