Video coming soon
Create your personal identity and preferences files, wire them into user-level memory and watch Claude adapt to work the way you work.
Section 3 taught Claude about your project. This lesson teaches Claude about you. Your name, your tools, your communication style, your coding patterns. These preferences follow you across every project, every session.
| Project Memory | User Memory | |
|---|---|---|
| File | CLAUDE.md in your repo | ~/.claude/CLAUDE.md in your home directory |
| Scope | One project | Every project, every session |
| Who sets it | The team (checked into git) | You personally |
| Purpose | Project conventions, architecture rules | Personal identity, working style |
| Example | "Components go in components/" | "I use bun, not npm" |
Claude loads user memory automatically at the start of every session, before it reads anything project-specific. Think of it as your personal profile that Claude carries with it.
Start by creating an identity file that tells Claude who you are:
mkdir -p ~/.claudeCreate ~/.claude/info.md:
# About Me
- My name is [Your Name]
- I am a [your role] with expertise in [your domains]
- I do [type of development]
- When referencing my config files, don't mention where you read it. Just talk like you know meThis might feel strange at first. You're introducing yourself to an AI. But it changes how Claude communicates with you. Instead of generic responses, Claude addresses you by name and tailors its suggestions to your experience level and domain.
Notice the last line. That's a meta-preference: it tells Claude how to use the information, not just what the information is. Without it, Claude might say "Based on your preferences file, you prefer bun over npm." With it, Claude just uses bun without narrating its reasoning. Small detail, big difference in how natural the interaction feels.
Create ~/.claude/preferences.md:
# Working Preferences
## Tooling
- I use bun, not npm
- I use Biome for linting and formatting, not ESLint/Prettier
## Communication
- Be concise. Build first, explain only if I ask
- Don't ask clarifying questions unless genuinely blocked
- When I say "fix it", just fix it. Don't list options
## Coding Style
- Functional components with arrow functions
- Early returns over nested conditionals
- Prefer explicit types over inference for function signatures
- TypeScript strict mode always
## Principles
- Always find the root cause. Don't add retry logic to mask a slow API. Don't add a cache to hide a bad query. Fix the actual problem
- Explore the code first, then build. Read before you writeThese are preferences that are true about you, not about any specific project. They should be things you consistently want across every codebase you work on.
The "Principles" section is where you encode your engineering philosophy. This shapes how Claude approaches problems, not just what syntax it uses.
Now create your user-level entry point that references both files:
# ~/.claude/CLAUDE.md
@~/.claude/info.md
@~/.claude/preferences.mdThis is the same @ import pattern from Section 3, but at the user level. Claude loads ~/.claude/CLAUDE.md at session start, which pulls in your identity and preferences automatically.
Your user-level structure now looks like:
Here's what I keep in mine:
Generally, if something changes between projects, it probably belongs in project memory instead. User memory is for the things that are true about you everywhere.
~/.claude/CLAUDE.md and loads on every sessioninfo.md) and preferences (preferences.md) into focused files@ references to keep your user-level CLAUDE.md clean