This is the "how" to the month-one recap's "what." If you've seen my numbers and want to get to something similar, this is the shortest path I can write down. Nothing here is proprietary — it's all standard Claude Code features, stitched together in a way that happens to be very productive.
I'll assume you have a Mac and a terminal. Linux works the same; Windows is close enough.
1. Install and authenticate
# Install Claude Code
curl -fsSL https://claude.ai/install.sh | sh
# Or via npm
npm install -g @anthropic-ai/claude-code
# First run — it'll walk you through auth
claude
Pick the Pro or Max plan if you're going to live inside this tool. Usage adds up fast when you run sessions in parallel, and the subscription pricing is the right choice over pay-per-token once you're committing daily.
Verify:
claude --version
2. Set your global defaults
Claude Code reads a global config at ~/.claude/CLAUDE.md. This is where you put rules that apply to every project — preferences, guardrails, tool habits. Mine includes things like "auto-commit and push after every change" and "use the smallest image size when taking screenshots."
Open it and write down your own defaults:
$EDITOR ~/.claude/CLAUDE.md
Good starter content:
# Global Rules
## Git
- After every change, commit and push with a concise message.
- Never force-push to main.
## Communication
- Prefer direct edits over asking. Ask only when the answer is unclear
or the action is irreversible.
## Screenshots
- Request the smallest possible resolution (640x480 or less).
- Do not retain captured images in context — save to disk if needed later.
You'll grow this file over time. The 15 minutes it takes to write down your preferences pays back every single session.
3. One CLAUDE.md per project
Inside each repo you work in, add a CLAUDE.md at the root. This is Claude's briefing doc for that project — architecture, conventions, where things live, how to run the thing, what to avoid.
To generate a first draft automatically, open Claude Code in the project and run:
/init
It'll read the repo and propose a starter CLAUDE.md. Accept it, then edit it by hand. The file should be short — a page or two — and living. Update it whenever you discover something worth remembering.
4. Tune permissions to reduce prompt fatigue
By default, Claude Code asks before every tool call. That's safe but slow once you trust the pattern. Open ~/.claude/settings.json (or the project-scoped .claude/settings.json) and allowlist the commands you run constantly:
{
"permissions": {
"allow": [
"Bash(npm test:*)",
"Bash(npm run build:*)",
"Bash(git status)",
"Bash(git diff:*)",
"Bash(git log:*)"
]
}
}
There's a /fewer-permission-prompts skill that will scan your recent transcripts and suggest additions based on what you actually ran. Use it once a week — your allowlist will grow into exactly your workflow.
Don't allowlist destructive commands (rm -rf, git push --force, git reset --hard). Let those always prompt.
5. The parallel-terminals pattern
This is the unlock. Open one terminal tab per project, and run claude in each one. You end up with something like:
- Tab 1 — Roblox game A
- Tab 2 — Roblox game B
- Tab 3 — personal site
- Tab 4 — trading infra
- Tab 5 — whatever reactive thing came in today
You give one session a task ("add a leaderboard scene, write the tests"), switch to the next tab while it works, give that one a task, switch again. By the time you loop back, the first session has a diff waiting for you to review.
The review step is where you pay attention. Always look at the diff. 15 seconds per diff is the cost of keeping quality up, and it catches the vast majority of AI hallucinations before they compound.
Practical tips:
- Use a terminal multiplexer with named tabs (iTerm2, Warp, tmux) so you don't get lost.
- Keep each project's working directory open in a separate editor window too — reviewing a diff in your editor is faster than in the terminal.
- If a session is blocked waiting on a slow test, switch tabs and do something else. Never sit idle.
6. Auto-commit and push on every change
The single highest-ROI habit I've adopted. In ~/.claude/CLAUDE.md:
## Git: Auto-Commit and Push
- After every change (file edits, new files, deletions), immediately
commit and push to the remote.
- Use concise, descriptive commit messages.
- Do not wait for the user to ask — commit and push proactively on
every change.
Two effects:
- Natural checkpointing. You never lose work, and every commit is a reviewable unit.
- The scoreboard ticks. If you're doing the 10K Challenge, this is where the numbers come from. Not from gaming it — from actually pausing at every natural stopping point and saving.
If your team has a PR-based workflow, swap "push to main" for "push to the feature branch." Same principle.
7. Track it
Two trackers I run side-by-side:
Commit heatmap (macro): Fork the 10K tracker, point it at your GitHub username and a start date, deploy free to Cloudflare Pages. You get a live page showing your daily/weekly/monthly pace. Takes 20 minutes to set up.
Menu-bar tracker (micro): GitPulse sits in your menu bar and shows today's commit count, color-coded against your goal. Red when you're behind, green when you're on pace. Glancing at it every hour is surprisingly effective.
The macro tracker keeps you honest across months. The micro tracker keeps you honest today.
8. Add MCP servers for the tools you actually use
Model Context Protocol servers let Claude Code reach outside the filesystem — Gmail, Calendar, Google Drive, Linear, Slack, databases, your own APIs. If you have a tool you check constantly, there's probably an MCP server for it.
Start with one or two. Don't install every server you can find — each one adds surface area. I use Gmail and Calendar because email triage and meeting prep are the workflows I do most; a trading-specific one for my own infra; and the Roblox Studio MCP for Studio-connected work.
# List currently configured servers
claude mcp list
# Add one (example — Anthropic docs for each server vary)
claude mcp add <server-name> <transport-config>
9. Use skills for repeatable workflows
Skills are named workflows you invoke with /skill-name. A few I use constantly:
/simplify— review recent changes for reuse and quality/security-review— pre-merge security sweep on pending changes/review— structured PR review/init— generate a CLAUDE.md for a new project/loop— run a slash command repeatedly on an interval (great for "check the deploy every 5 min")
You can write your own skills too. If you find yourself giving Claude the same multi-step instruction more than twice, turn it into a skill and save it under ~/.claude/skills/.
10. Use the memory system
Claude Code has a per-project auto-memory at ~/.claude/projects/<project>/memory/. It stores facts about you, your preferences, project context, and external-system pointers across conversations. You don't manage it manually — Claude writes to it when it learns something durable.
You can nudge it: "remember that we deploy via Cloudflare Pages and never via GitHub Pages" and it'll save that. Over weeks, the memory file becomes a compact summary of "how we work here" without you having to write docs.
11. Review discipline
This is the one I come back to, because without it everything else collapses into slop:
- Never accept a diff you didn't look at. Even if it's 5 lines.
- Run the tests. Or let Claude run them — but verify the result, don't just trust the "done."
- For anything touching production, explicitly ask Claude to walk you through what the change will do before you merge.
- If something feels off, say so. Claude is good at correcting course when you push back. It's bad at noticing you should have pushed back.
The 10K number is meaningless if a meaningful fraction of those commits is garbage. Keep the bar up.
12. A minimal daily rhythm
This is roughly what a productive day looks like for me once the setup above is in place:
- Morning: open 3–5 terminal tabs, one per project I plan to touch. Give each a concrete first task. Review diffs as they come back.
- Mid-morning: work through any blockers, add failing tests I want Claude to make pass, commit + push as each project reaches a natural stopping point.
- Midday: check GitPulse. If I'm behind pace, ask "is there a reason I'm behind, or am I just stuck?" Usually there's one specific thing that's blocking me.
- Afternoon: reactive work, comms, any meetings. Keep one terminal tab going in the background for small continuous commits.
- End of day: look at the tracker page. One sentence about what I built today. Close all tabs cleanly.
Nothing heroic. It's the consistency, not the intensity, that makes the chart work.
The short version
If you only take four things from this:
- Global + per-project
CLAUDE.md. Write down your rules once. - One Claude Code session per project, run in parallel tabs. This is the multiplier.
- Auto-commit and push on every change. Checkpoint aggressively.
- Review every diff. Non-negotiable.
Everything else is optimization on top of those four. Get those right first and the rest comes naturally.
Good luck. If you build something cool, tell me about it.