My Claude Code Setup
Claude Code is my primary development tool. Not as an assistant I occasionally consult—as the interface through which most of my coding happens.
Here’s how I’ve set it up.
The Core Philosophy
Every session should make the next session better.
This sounds abstract, but it drives concrete decisions: how I structure projects, what gets documented, and when to build automation. If I’m going to correct Claude about something, that correction should persist.
Project Structure
Every project gets a CLAUDE.md file. This is the context file Claude reads at the start of each session. It contains:
- Purpose: What this project does and why
- Architecture: How things connect
- Conventions: Patterns to follow, gotchas to avoid
- Data files: What lives where
The CLAUDE.md acts as institutional memory. When I return to a project after weeks away, Claude already knows the context.
For my personal productivity system, the folder structure looks like:
| Folder | Purpose |
|---|---|
| knowledge/ | Reference docs, SDK patterns, learned gotchas |
| planning/ | Finalized plans documenting what was built |
| .claude/ | Commands, skills, agents |
| Project folders | Individual workflows with their own CLAUDE.md |
Commands vs Skills vs Agents
Claude Code supports three extension types. I use all three for different purposes:
Commands (explicit triggers)
Things I invoke manually with a slash. /publish for end-of-session git + documentation + improvement capture. /new-project for scaffolding new work with AI-guided recommendations.
Skills (auto-detected) Patterns Claude recognizes and applies automatically. When I’m working on a specific type of task, relevant skills activate without me asking.
Agents (autonomous) Specialized sub-agents for complex tasks. When a problem needs deep exploration or parallel work, agents handle it independently and report back.
The decision tree: if I need to trigger it explicitly, it’s a command. If it should apply automatically when relevant, it’s a skill. If it needs to work autonomously, it’s an agent.
Claude Tasks
For work that needs to happen on a schedule or in response to events, I use Claude Tasks. These are like cron jobs but with Claude’s intelligence built in.
A few examples of what I have running:
Morning briefing: Summarizes overnight messages, flags anything urgent, prepares my daily priorities based on calendar and task list.
Weekly review: Analyzes what I accomplished, identifies patterns in how I’m spending time, suggests adjustments.
Project monitoring: Watches for specific conditions in active projects and alerts me when something needs attention.
The power is that these aren’t dumb automations—Claude understands context. The morning briefing knows the difference between “your CEO messaged” and “someone reacted to your message.” It surfaces what actually matters.
The Self-Improvement Loop
This is the part I’m most proud of.
At the end of meaningful sessions, I run /publish. It handles git operations, but more importantly, it asks: what should persist?
Three categories of improvements:
| Type | Example |
|---|---|
| Knowledge | ”Composio SDK requires toolkit version in the config” |
| Context | ”Always check for existing patterns before creating utilities” |
| Infrastructure | A new command for a workflow I’ve done three times |
All changes require my approval. The human stays in the loop. But over months of this, Claude has accumulated significant context about how I work, what I prefer, and what mistakes to avoid.
Remote Access
I run Claude Code on a remote server so it’s available even when my laptop is closed. This lets me:
- Start long tasks and walk away
- Send ideas from my phone that Claude starts working on
- Resume sessions from any device
The setup takes a weekend, but the always-on availability is worth it.
What I’ve Learned
Context is everything. A well-written CLAUDE.md is worth more than clever prompting. Give Claude the context it needs upfront.
Build for the next session. Every shortcut you take now becomes friction later. Document as you go.
AI works best on identified bottlenecks. Don’t automate for the sake of it. Find the painful parts of your workflow and apply AI there.
The compound effect is real. Individual improvements seem small. After months, the accumulated context makes Claude dramatically more useful.
Is This Setup For Everyone?
Probably not. This level of customization makes sense if:
- You use Claude Code daily
- You work across multiple projects with different contexts
- You’re willing to invest in infrastructure that pays off over time
If you’re just starting with Claude Code, begin simpler. Use it for a while. Notice what you repeat. Then build the automation.
The best setup is one that evolves with how you actually work.
Related: Self-Improvement Loops, Remote Claude Development, AI-Powered Inbox Triage