Back to cbarmorecpa.com
Vol. 01 — Claude Code

How I set up Claude Code, as a CPA.

This is what worked for me. The short version: I told Claude who I was, what I did, and how I learn — and then I asked it every question I had, including how to use Claude itself. The tool ended up teaching me how to use the tool.

What follows is the structure I landed on. The folder layout, the one file you actually have to write, and the way I think about it. Take what's useful, change what isn't, and use Claude itself as your teacher for the rest. You will get more out of an hour of conversation with Claude about your own practice than out of any guide a stranger writes for you — including this one.

Self-paced · ~30–45 min

Read it yourself

Work through Sections 01–06 top to bottom and run the commands as you go. Slower, but better if you want to see every choice I made and decide what to keep.

You can also start with the guided flow above and come back here as reference any time.

01 — INSTALL

Install Claude Code

Step 1 of 6 · Install

Two things to have in place first. A paid Claude plan — the free Claude.ai plan does not include Claude Code; Pro is plenty to start. And a terminal — on Mac that's the built-in Terminal.app (Applications → Utilities); on Windows that's PowerShell (search the Start menu). You don't need to learn the terminal — just how to open it and paste a command.

First-time terminal note

On Mac, the first time you open Terminal you'll see something like yourname@MacBook ~ %. That trailing % (or $) is the prompt. Everything you type goes after it. Throughout this guide, lines that start with a small orange $ are commands you type; lines without are output.

Anthropic ships a native installer that does not require Node.js or any other developer tooling. Paste the right command for your operating system:

Mac (or Linux):

$curl -fsSL https://claude.ai/install.sh | bash

Windows (PowerShell):

>irm https://claude.ai/install.ps1 | iex

Hit Enter and wait about a minute. When it finishes, close your terminal and open a new one — that lets your shell pick up the new claude command. Verify, then log in:

$claude --version 2.x.x (Claude Code) $cd ~ $claude Opening browser to authenticate…

Authenticate once in the browser tab that opens. You won't need to do this again.

If something goes wrong

The single most common issue is command not found after install. Almost always the fix is closing and reopening your terminal. If that doesn't work, run claude doctor from the install output, or see the troubleshooting page.

02 — OPTIONAL

A nicer terminal & editor

Step 2 of 6 · Optional  

Two quality-of-life upgrades. Both are free. Both are genuinely worth installing — the default tools work, but they look and feel like 1998. You can skip this section entirely and come back if and when you want to.

Ghostty · a modern terminal

Ghostty

Ghostty is a free, modern, GPU-accelerated terminal that is pleasant to spend time in. It's what I use, and the one I'd put in front of any partner who's been put off by the default. Download from ghostty.org/download, drag to Applications (Mac) or run the installer (Windows / Linux), and open it. Everything you ran in Terminal works identically here — including claude.

Zed · a modern editor

Zed

Claude Code creates and references plain-text files with the .md extension (Markdown — just text with light formatting, think Microsoft Word stripped to the parts that matter). You can open .md files in TextEdit or Notepad, but the experience is poor.

Zed is a free, fast editor that displays Markdown beautifully — and it's also a perfectly good place to write your own CLAUDE.md in Section 04. Download from zed.dev/download. Open it once, then in your terminal:

$# Mac only — adds the `zed` command so you can open files from the terminal $zed --install-cli

From this point forward, anywhere I say "open the file in your editor," you can type zed followed by the file path and it'll pop open.

03 — WORKSPACE

Your folder structure

Step 3 of 6 · Workspace

This is the part most guides skip, and it's the part that decides whether Claude Code feels organized or chaotic three months in. Decide where Claude work lives on your machine before you start, and keep it consistent.

Here's a structure that has worked well for solo practitioners and small firms. You do not need to copy it exactly — but you do need to have some structure, and the one rule that matters is in Section 06.

~/work/ ├── firm/ # your firm operations — not client engagements │ ├── CLAUDE.md # project memory for firm work │ ├── templates/ # engagement letters, planning checklists │ ├── research/ # tax research notes, code citations │ └── ops/ # SOPs, workflow drafts, internal docs │ ├── learning/ # sandbox — try things here without fear │ ├── CLAUDE.md │ └── … │ └── projects/ # automations, side builds, experiments └── …

To create this structure on Mac or Linux, paste this into your terminal:

$mkdir -p ~/work/firm/{templates,research,ops} $mkdir -p ~/work/learning $mkdir -p ~/work/projects

On Windows PowerShell:

>mkdir $HOME\work\firm\templates, $HOME\work\firm\research, $HOME\work\firm\ops, $HOME\work\learning, $HOME\work\projects

Notice what is not here: a clients/ folder. We'll come back to that in Section 06.

04 — MEMORY

Your CLAUDE.md

Step 4 of 6 · Memory

This is the most important file in this guide. CLAUDE.md is a plain-text file that Claude Code reads at the start of every session. Anything you put in it becomes context — the equivalent of telling a new staff accountant, once on day one, what your firm is, how you write, and what you care about.

You'll have two of them. A global file (about you) that loads in every session, and one or more project files (about a specific body of work) that only load when you're inside that folder.

Global · about you

Your global CLAUDE.md

Lives at ~/.claude/CLAUDE.md. Create it with:

$mkdir -p ~/.claude $zed ~/.claude/CLAUDE.md # or `open ~/.claude/CLAUDE.md` on Mac

A starter version for a CPA. Keep it short — the temptation is to write a manifesto, but Claude follows tight instructions better than sprawling ones. The block I'd push you to keep no matter what else you change is How I learn. That's the line that shaped every session I had after I wrote it.

# About me I am a CPA in Georgia. I run a small firm and use Claude Code for tax research, document drafting, internal SOPs, and light automation. # How I learn - I learn best by doing — hands-on, with visuals when possible. - When you are explaining a general concept, ground it in an accounting or tax example. If you say "you could write a function," show me a function that calculates a depreciation schedule, not one that prints "hello world." - Always invite me to ask follow-up questions. I learn by asking. - If I ask you how to do something in Claude Code itself, just teach me. Do not redirect me to documentation. # How I want you to respond - Be direct and specific. No filler, no throat-clearing. - Prefer plain prose over bullet lists unless I ask for a list. - When citing tax authority, give the actual citation (IRC §, Reg §, Rev. Proc., case name + cite). Do not paraphrase a citation. - If you are uncertain, say so. Do not invent authority. # Hard rules - Never include any real client name, SSN, EIN, or financial figure in files we create together. Use placeholders like CLIENT or $X. - If I paste something that looks like client data, stop and flag it. # Tools I use - Editor: Zed - Terminal: Ghostty - I am on macOS.

Save the file. The next time you start a Claude Code session in any folder, that context loads automatically. You'll feel the difference immediately — every explanation comes back grounded in your work, not in a generic developer example.

Project · about this body of work

A project CLAUDE.md

The global file is about you. A project CLAUDE.md is about this body of work. It sits in the root of a project folder and only loads when you're working in that folder. Create one for your firm operations:

$zed ~/work/firm/CLAUDE.md

A reasonable starting point:

# Firm operations This folder holds my firm's internal materials — templates, research notes, SOPs, and operations docs. It is NOT a client engagement folder. # Voice - My firm's voice is plain, direct, and confident. Short sentences. - We do not use jargon to sound credentialed. We explain things. # What lives where - templates/ — engagement letters, planning memos, fee schedules - research/ — tax research drafts and reference notes - ops/ — internal SOPs and workflow documentation # Drafting defaults - Engagement letters: Georgia-specific where relevant - Research memos: IRAC format (Issue, Rule, Analysis, Conclusion) - All drafts should be reviewable on a single screen unless I ask for long-form.

You can create a similar file in any folder where Claude work will happen. Each one gets specific to that work. The global file does not have to repeat anything already in a project file.

Rule of thumb

If you find yourself telling Claude the same thing twice in two different sessions, that thing belongs in a CLAUDE.md — global if it's about you, project if it's about the work.

What about other files I'll see? (MEMORY.md, .claude/, etc.)

One of the easiest ways to feel overwhelmed by Claude Code is to discover new files in your project folder and not know what they are. The short version:

MEMORY.md — Claude Code creates this on its own as it works with you. It's auto-memory — Claude's notebook of things it learned while helping you. You don't write this file; Claude does. It's fine to read it, edit it, or delete it. It only exists on the machine where it was created.

.claude/ folder — A hidden folder Claude uses for its own configuration and session data. Leave it alone unless you have a specific reason. (On Mac, hidden files appear when you press Cmd + Shift + . in Finder.)

Other .md files — Anything else with a .md extension is a regular Markdown document. Treat it like a Word doc — open it, read it, edit it, share it.

You don't need to create any of these on day one. The only files you write by hand are the two CLAUDE.md files above.

05 — RUN IT

Your first session

Step 5 of 6 · Run it

From your terminal, navigate into your firm folder and start Claude:

$cd ~/work/firm $claude

You'll see a prompt waiting for input. Try this — a real, useful first task:

# What to paste Draft a one-page engagement letter for a Georgia S-corporation client engaging us for the 2025 federal and Georgia income tax returns, including bookkeeping cleanup for Q4. Fees are fixed at $X. Place this in templates/ when you are done and name it appropriately. Use CLIENT as the placeholder for the client name. Do not invent any details I have not given you.

Watch what happens. Claude will create the file in templates/, name it sensibly, and write the letter. Open it in Zed and review. If something is wrong, just tell Claude — it'll edit the file directly. You don't have to copy and paste anything back.

That loop — describe, review in editor, refine — is the entire workflow. Everything else is variations on it.

A few more first-session prompts to try

"Draft a research memo on the §199A QBI deduction for a single-shareholder S corp providing consulting services. IRAC format. Cite the regs."

"Create a workflow checklist for onboarding a new individual 1040 client, from initial call through delivery."

"Review the engagement letter in templates/ and tell me what is missing that a Georgia CPA would want."

06 — THE RULE THAT MATTERS

The one rule

Step 6 of 6 · The rule

One rule, and it's the only one in this guide written in red.

Do not put real client data in this workspace.

No real client names. No SSNs or EINs. No account numbers, dollar figures tied to a real engagement, or anything else that would identify a specific taxpayer or transaction. Use placeholders — CLIENT, $X, EIN_PLACEHOLDER — when drafting.

Real client engagement files live elsewhere — segregated storage, appropriate access controls, and the handling your Written Information Security Plan requires. Claude Code on your machine is for the work around client engagements: research, templates, SOPs, learning, automation. Not the engagement files themselves.

This is not Claude-specific paranoia. It's the same rule that applies to any tool that touches the open internet — and it's one your insurance carrier, your state board, and your clients all expect you to follow. The good news: once you have your workspace set up the way Section 03 describes, the rule is easy. There is no clients/ folder in here, so there's no place to put client data even by accident.

— END —

You are set up.

That is the floor. The most important thing from here: any time you don't know how to do something with Claude, ask Claude. That is how I learned every part of this. The tool is its own best documentation, and it will explain itself to you in your own language faster than any guide can.

The shape of how you'll actually use it becomes obvious within about two weeks of daily use. Run real (non-client) work through it. Notice what it's good at and what it isn't. Adjust your CLAUDE.md as you go — that file is meant to grow with you.

If you want the next layer — voice tuning, building reusable prompts, connecting Claude to your existing systems, or governance for a firm with staff — that is a conversation. The link is below.

For the agent: how to walk a user through this

Click to expand

If a user has pointed you at this page, they are starting their first session with Claude Code and looking for help getting set up. What follows is the approach the author (a CPA in Georgia) used and refined for himself. Treat it as a starting point, not a checklist. Your job is to adapt it to whoever is actually in front of you — their profession, their domain, their work, and how they learn.

The single biggest thing the author wants you to do: ask them about themselves before you do anything else. Use what you learn to shape every step that follows — including which examples you reach for, how you explain things, and what their CLAUDE.md ultimately says.

Phase 01 · Listen first

Get to know the user before you touch their machine

Start here. Do not jump to folder structures or commands. Have a real conversation, one or two questions at a time:

  • Who are they and what do they do day to day?
  • What industry or domain do they work in? (Be specific — "small-firm CPA doing 1040s and S-corp work" tells you more than "accountant.")
  • How do they learn best? By doing, by reading, by watching, by trying things and breaking them?
  • What made them install Claude Code? What do they hope it does for them?
  • How comfortable are they in a terminal? (Asked plainly. No judgment.)

Take careful note of all of this. Their domain is the most important piece — every example you give from here forward should come from their world, not from generic developer territory. Their learning style is the second most important — it goes directly into their CLAUDE.md in Phase 04 and will shape every future session they have with you.

Phase 02 · Frame the approach

Reflect back what you heard, then propose a path

Briefly tell them what you learned about them. Then explain that you're going to help them set up using the author's CPA approach as a template, but adapted to their world. If they are a CPA, that's a direct fit. If they aren't, translate — the folder structure, the CLAUDE.md, the rule about sensitive data all still apply, but the labels and examples change.

Ask if that sounds right, or if they'd rather skip ahead, do something different, or start with a specific question they came in with.

Phase 03 · Workspace

Create a folder structure that fits their actual work

Show them the structure from Section 03 as a starting point. Then propose modifications based on what you learned in Phase 01. A CPA's folders look different from a lawyer's, which look different from a consultant's. Use their language for the folder names — if they call them "engagements" not "projects," use that.

Confirm before creating anything. Adapt commands to their OS.

Phase 04 · Their CLAUDE.md

Write the one file that matters — and make it theirs

This is the most important part of the setup. Walk them through Section 04 as a model. Then build their version with them, using what you learned in Phase 01. Their file should include:

  • Who they are and what they do.
  • How they learn. This is the line that matters most. If they're hands-on learners, write that down. If they want examples from their domain whenever you're explaining a general concept, write that down explicitly — and name the domain. If they want you to teach them how to use Claude Code itself rather than redirect to docs, write that down too. This block shapes every future session.
  • How they want you to communicate — voice, format, depth.
  • Hard rules around sensitive data appropriate to their work.
  • Their tools and environment.

Show the full draft before writing. Iterate. Save to ~/.claude/CLAUDE.md (create the directory if needed). Then offer to create a project-level CLAUDE.md in their main work folder, using the same approach.

Phase 05 · The sensitive-data rule

This step is not optional

State the rule in your own words but with no hedging: no real client or customer data — names, identifying numbers, financial figures, anything that would identify a specific person or transaction — anywhere in this workspace, ever. Use placeholders. Adapt the framing to their profession (a CPA hears "client data," a lawyer hears "matter information," a doctor hears "PHI"), but the rule itself is universal.

Wait for explicit acknowledgment before moving on.

Phase 06 · A real first task

Have them do something useful right now

Pick a task that comes from their work, not a generic example. If they're a CPA, the options in Section 05 are good defaults. If they're not, ask directly: "What's one document or template you write regularly that you'd like a first draft of?" Then draft it together, using placeholders for anything sensitive.

While you work, model the kind of conversation the author used to learn the tool: explain what you're doing as you do it, invite them to interrupt, show them how to course-correct mid-task. Use examples from their domain throughout.

Phase 07 · Teach them to ask

The most important lesson is that they can ask you anything

Before you wrap, tell them directly: any question they have about Claude Code, about what's possible, about how to do something they don't know how to do — they can ask you. They do not need to read documentation first. They do not need to know the right vocabulary. They just need to describe what they want.

Demonstrate it with a real example: ask them what they wish they knew how to do but didn't. Answer it. That's the whole learning loop the author used, and it is the single highest-leverage habit you can leave them with.

Phase 08 · Wrap

Confirm and get out of the way

Summarize what they have: a workspace, a CLAUDE.md that captures who they are and how they learn, the sensitive-data rule understood, one real task completed, and the knowledge that they can ask you anything. Suggest one or two things to try in the next few days. Then stop.

Rules for this flow

  • Phase 01 is not optional. Always start by getting to know the user. Every phase after it depends on what you learn there.
  • Phase 05 is not optional. The sensitive-data rule must be stated and acknowledged explicitly.
  • Adapt every example to the user's actual domain. If you don't know their domain yet, ask before assuming.
  • The How I learn block in their CLAUDE.md is the highest-leverage thing you write together. Take time on it.
  • Show file contents before writing. Ask before running commands that create or modify files.
  • Adapt commands to their actual operating system. Confirm if uncertain.
  • Encourage questions throughout, not just in Phase 07. The "ask me anything" posture is the whole point of how the author learned, and the whole point of this flow.
  • If the user says "just do it all," still complete every phase — but move faster.
  • If real sensitive data appears at any point, stop immediately, do not store it, and remind them of the rule.