Claude Code (CC)
2025-12-23 → 2026-01-01
Anthropic’s AI coding agent.
Settings
The preferences and settings are stored in CLAUDE.md (at project root or in .claude/) and .claude/settings.json for each project. The former contains natural language instructions for CC, such as project overview, tool preferences, directory structure, etc. The latter contains the explicit permissions (i.e., allowed commands that Claude can run), hooks (e.g., linter), and other settings.
See the Official documentation for more details.
Global preferences
You can create global CLAUDE.md and settings.json and put it in ~/.claude/ directory, which is used by Claude to store various temporary files and settings. These settings and preferences are applied to every CC sessions unless overridden by project-specific settings.
You can incorporate these files into your dotfiles repo.
Tips
If you’re annoyed by manually approving trivial commands, add them the pre-approved list. These can be stored in the global setting file. You can ask CC to create one.
You can also ask CC to set up certain hooks. For instance, you can ask it to run a linter/fixer (e.g., ruff) whenever a script is edited or created. CC will automatically run it.
Skills
You can equip CC with skills. Each skill is a markdown document containing specific instructions for a task, optionally accompanied by scripts.
See the Official documentation for more details.
Creating Skills
Skills are stored as SKILL.md files in .claude/skills/SKILL_NAME/ (project-level) or ~/.claude/skills/SKILL_NAME/ (global). Each skill file contains a YAML header with a description of when the skill should be used, step-by-step instructions for CC to follow, and optional references to helper scripts.
The YAML header requires:
name: A short identifier for the skilldescription: When the skill should be invoked (CC uses this to decide relevance)
When CC is launched, only the YAML headers of available skills are loaded to CC’s context. They are used as an index for CC. CC uses these descriptions to determine which skills to invoke.
Example: A Minimal Math Skill
~/.claude/skills/math/
├── SKILL.md
└── verify.py
The SKILL.md file may look like:
---
name: math
description: >
Verify mathematical derivations step-by-step using SymPy.
Use this when users ask to verify proofs, check calculations,
or solve symbolic math problems.
---
When the user asks you to verify or solve mathematical problems:
1. Use the bundled `verify.py` script for symbolic computation
2. Show step-by-step derivation
3. Verify the final result
## Usage
Run the verification script:
# Check two expressions are equal
~/.claude/skills/math/verify.py eq "EXPR1" "EXPR2"
# Simplify/expand expression
~/.claude/skills/math/verify.py simp "EXPR"
Always explain your reasoning alongside the output.
A skill may or may not have accompanying scripts. It can have no script at all (just instructions) or simple inline code examples.
Using Skills
Skills are not invoked by the user, but only by CC. Skills are exposed to CC based on the YAML header. When CC determines that the skill is applicable, it will invoke the skill. When invoked, CC reads the full skill file and follows its instructions.
The “math skill” shown above would be invoked automatically when you ask CC to check derivation of some mathematical formula.
Skills essentially let you encode repeatable workflows as reusable “recipes” that CC can execute on demand.
Installing Skills from Plugin Marketplace
CC provides a built-in plugin marketplace for easy skill installation. Use the /plugin marketplace add command:
/plugin marketplace add <github-repo>
For example, to install the official Anthropic skills:
/plugin marketplace add anthropics/skills
This command:
- Fetches the GitHub repository (e.g.,
github.com/anthropics/skills) - Downloads all skill files (
.mdand associated scripts) - Installs them to your
.claude/plugins/directory
Note that these skills are not automatically available. You need to explicitly enable them by invoking /plugin command or manually editing .claude/settings.json (project-level) or ~/.claude/settings.json (global):
{
"enabledPlugins": {
"pyright-lsp@claude-plugins-official": true,
"document-skills@anthropic-agent-skills": true,
"example-skills@anthropic-agent-skills": true
}
}
Checking available skills and using them
In CC, you can check available skills by running:
/skills
If the skills are correctly installed, you should see the list of available skills. They will be invoked when necessary.
Skill Collections
Several community repositories provide curated collections of ready-to-use skills:
- anthropics/skills - Official repository with example skills from Anthropic
- K-Dense-AI/claude-scientific-skills - Scientific skills for research
- travisvn/awesome-claude-skills
- ComposioHQ/awesome-claude-skills
Some remarks
When working with LLMs, don’t over-engineer. The base LLMs are getting increasingly capable and generally evolve towards a direction where carefully crafted prompts, tools, and crutches become unnecessary. Creating too many skills can potentially limit AI agents’ capacity and create more maintenance.