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:

  1. Fetches the GitHub repository (e.g., github.com/anthropics/skills)
  2. Downloads all skill files (.md and associated scripts)
  3. 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:

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.