Claude Code (CC)
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.
Using Skills
Skills are exposed to CC based on the YAML header of the skill file. 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. It may or may not run accompanying scripts.
For example, a “math skill” with a description like “use this whenever mathematical derivations are needed” would be invoked automatically when you ask CC to solve math problems.
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.