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:

FolderPurpose
knowledge/Reference docs, SDK patterns, learned gotchas
planning/Finalized plans documenting what was built
.claude/Commands, skills, agents
Project foldersIndividual 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:

TypeExample
Knowledge”Composio SDK requires toolkit version in the config”
Context”Always check for existing patterns before creating utilities”
InfrastructureA 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