How to Use Claude AI Efficiently:
The Setup Guide Nobody Gives You


The Problem Most People Don't See

Most people open Claude.ai, type a question, and assume they are getting the best possible response at the lowest possible cost. They are usually wrong on both counts.

Claude.ai Web — the browser interface at claude.ai — has a specific mechanic that most users never learn about: there is no caching and no compression. Every single message you send causes Claude to re-read the entire conversation history from the very beginning. The first message costs almost nothing. By message 30, you are paying the full token cost of every word ever exchanged in that chat — every question, every answer, every correction, every pleasantry — on top of your new question.

This is not a bug. It is how large language models work at their core. But knowing it changes how you should behave in a chat session entirely.

Claude Code — the terminal tool — is a different product with different mechanics. It has built-in caching, session memory, compaction, and persistent storage. Different environment, different rules.

This guide covers both. Read the section that matches where you are working.

Claude.ai Web — 10 Rules for the Browser

Claude.ai Web — claude.ai

The core mechanic: No caching. No compaction. Every message you send causes Claude to re-read the full conversation from scratch. The longer the chat, the more tokens every new message costs — before Claude has even started writing its reply.

1
Edit your prompt — don't follow up

Every new message you send re-reads the entire conversation history again. If your first message was unclear, sending a follow-up correction doubles your cost: you pay to re-read the old message, the old response, and now the correction. Instead, edit the original message directly and regenerate. Claude.ai lets you edit past messages — use it constantly.

2
Start a fresh chat every 15–20 messages

History cost compounds exponentially. A chat at message 40 loads roughly 10× more tokens per message than the same chat at message 4. When a conversation gets long, write a short summary of what was decided and what you still need, then paste it into a new chat. You get a lean, fast session without paying for context you no longer need.

3
Batch your questions into one message

Sending 3 questions in 3 separate messages loads the conversation context 3 times. Sending all 3 in one message loads it once. Combine related tasks, sub-questions, and constraints into a single well-structured message. Think of it like a brief to a colleague — put everything needed for the task in one go.

4
Use Projects for recurring files and context

Claude.ai Projects let you upload files — PDFs, documents, code snippets — that are cached across all chats in that project. Instead of pasting the same company overview, contract, or brief into every new chat, upload it once to a Project. Every chat inside that Project sees it without you paying to re-send it each time. This is the single most impactful feature most users never configure.

5
Save your role and style in Memory & Preferences

If every conversation starts with "I am a founder, respond concisely, no filler text, use bullet points" — you are wasting tokens and time. Go to Settings → Memory & Preferences and set your persona, tone, and formatting preferences once. Claude reads this at the start of every chat automatically, for free.

6
Turn off unused features

Web search, external connectors, and Extended Thinking (Advanced Analysis) all consume tokens even when you are not actively using them in a message. Turn off every feature you are not explicitly using for the current task. Each idle feature adds overhead to your context cost. Turn them on only when you need them, then back off.

7
Use Haiku for simple tasks

Claude Sonnet and Opus are powerful — and expensive. Haiku is the lightweight model: faster, cheaper, and completely sufficient for formatting text, grammar checks, short summaries, brainstorming lists, and drafting first passes. Haiku typically saves 50–70% of your token budget compared to Sonnet on tasks that do not require deep reasoning. Switch the model in the chat interface whenever the task does not demand heavy lifting.

8
Spread your sessions across the day

Claude.ai Pro operates on a 5-hour rolling usage window. Your limit resets gradually over those 5 hours, not once per day at midnight. This means spacing out 3 sessions throughout the day gives you approximately 3× the effective capacity compared to burning through everything in one sitting. Plan your heavy work in blocks separated by a few hours.

9
Avoid peak hours when possible

Server load affects both speed and effective throughput. The busiest window is roughly 5 AM–11 AM Pacific time on weekdays — when North American early risers and European afternoon users overlap. The same prompt sent during off-peak hours (evenings, weekends) tends to run faster and encounters fewer rate-limit slowdowns. If your schedule allows, shift heavy work sessions to quieter windows.

10
Enable Overage in Settings

By default, when you hit your monthly limit Claude stops responding until the next cycle. This is the worst outcome — it blocks you mid-project at exactly the moment you need it most. Go to Settings → Usage → Enable Overage. This switches Claude to pay-as-you-go when your included limit is exhausted, so you are never completely blocked. The per-token overage cost is reasonable and far less disruptive than a hard wall.

Claude Code (Terminal) — 7 Rules for the CLI

Claude Code — terminal CLI

The core mechanic: Claude Code has built-in prompt caching, session memory, automatic compaction, and JSONL-based conversation persistence. This is fundamentally different from the web interface — the rules are different because the architecture is different.

1
Continue the same task — start fresh for a new topic

When you are in the middle of a task — debugging a feature, writing a component, refactoring a module — use --continue to pick up exactly where you left off. Claude has the full context of past steps, decisions, and errors, and all of that is useful. But when you switch to a completely new topic or start a new feature, always start a fresh session. A new session is lean: just your CLAUDE.md and your prompt. An old session carries every past message — useful context for the same task, pure noise for a different one. Use --resume if you need to return to a specific past session by ID.

2
Compress your session before it gets heavy

Claude Code can automatically compact long sessions, but you should not wait for it. Run /compact manually after completing a logical chunk of work — finishing a feature, closing a bug, completing a migration. Think of it as a save point in a video game. It compresses the session history into a dense summary, keeping the relevant decisions while shedding the verbose back-and-forth. The result is a session that costs far fewer tokens on the next message.

3
Write a strong instruction file — it runs before every message

The CLAUDE.md file in your project root is loaded into context at the start of every turn, before your prompt. This makes it the highest-ROI investment in the entire Claude Code workflow. Up to 40,000 characters are available. Use it to document your architecture, your coding conventions, file naming rules, what not to do, and what to always do. Claude does not need to rediscover your patterns every session — it reads them from CLAUDE.md instantly. A well-maintained CLAUDE.md is the difference between Claude acting like a new hire who needs everything explained and a senior contributor who already knows the system.

4
Run parallel subagents — 5 at once costs roughly the same as 1

Claude Code can launch multiple subagents simultaneously. Because all agents in a session share the same prompt cache, running 5 agents in parallel costs approximately the same as running 1 agent sequentially — while completing 5× the work in the same elapsed time. This is the most powerful throughput optimization available. Whenever you have independent tasks — write tests for module A, refactor module B, update docs for module C — give them to parallel agents.

5
Set your permissions once — stop clicking Allow every session

Every time Claude Code asks permission to read a file, write a file, or run a command, you are paying attention tax — and a small delay overhead. Set glob patterns in settings.json once to pre-approve the operations Claude performs routinely on your project: reading source files, editing within src/, running your test suite. Stop clicking Allow on the same operations every session.

6
Hooks are your automation layer — use them

Claude Code exposes over 25 hook events: before tool use, after tool use, on message send, on session start, on file write, and more. Hooks let you inject automation at every step without modifying Claude's behavior directly. Common uses: automatically run your linter after every file edit, inject extra context before Claude reads a file, send a notification when a long task completes, or enforce conventions by checking outputs before they land. Set them up once in settings.json and they run silently in the background forever.

7
Interrupt freely with Escape — there is zero penalty

If Claude is going in the wrong direction, press Escape immediately. The interrupted response is dropped. Your previous context is fully preserved. You pay nothing extra for the cancelled response and you can redirect immediately. There is no penalty for interrupting, no context loss, and no wasted time. Most users wait politely for Claude to finish a bad response before correcting it — that is the wrong instinct. Interrupt early, redirect, and continue.

Web vs. Claude Code — The Key Difference

The single most important thing to understand is that these are not two versions of the same tool. They have different architectures, different cost models, and different best practices. The table below captures the difference in a way that should change how you decide which to use and when.

Web
Claude.ai browser
Code
Terminal CLI
History cost Grows with every message — full re-read every turn, no compression Managed by automatic compaction and prompt caching
Session memory None — only the messages visible in the current chat window JSONL-persisted — sessions can be resumed days later
Best practice Start fresh often, batch questions, edit instead of follow-up Continue the same task, fresh session for new topics
Recurring context Use Projects — upload files once, cached across all chats Use CLAUDE.md — read every turn automatically
Parallelism One conversation at a time Up to 5 parallel subagents sharing the same cache
Automation None — manual interaction only Hooks system — 25+ events you can script
Best for Exploration, drafting, research, one-off questions Multi-step coding tasks, sustained development, file editing

The underlying reason the best practices diverge is simple: in Claude.ai Web, old irrelevant context is pure cost with no benefit. In Claude Code, old relevant context is an asset that speeds up the current task. The session management strategy follows directly from this single architectural difference.

Why Claude Code Uses Markdown — And Why It Matters

Every response Claude Code produces is formatted in Markdown. File names appear as `backtick code`. Lists of tasks are bullet points. Section headers use ##. Code appears in fenced blocks. This is not a stylistic choice — it is a deliberate architectural decision with practical consequences across the entire workflow.

CLAUDE.md files are Markdown The instruction files that define how Claude behaves in your project — your architecture notes, your conventions, your rules — are plain .md files. Markdown is the only format that is simultaneously readable by a human scanning the file and by Claude loading it as context. A Word document or a proprietary format would require conversion. A plain .md file is already in the right format for both audiences.

Terminals render Markdown cleanly as plain text Claude Code runs in a terminal. Terminals cannot display rich text, fonts, or HTML. But Markdown degrades gracefully: even without a renderer, # Heading is obviously a heading and - item is obviously a list. The structure survives even in environments that cannot render it. A JSON response or an HTML response in a terminal would be noise. Markdown is always readable.

Markdown integrates with the entire development ecosystem GitHub READMEs, pull request descriptions, issue bodies, wiki pages, commit message bodies — all Markdown. When Claude Code generates a summary of changes and you paste it into a GitHub PR, it renders perfectly. No conversion, no reformatting. The format that Claude Code outputs is the same format that the tools around it consume natively.

Markdown is how AI models structure thought Claude, Gemini, GPT — all major models output Markdown by default for the same reason: it is the most natural way to express hierarchical, structured text using only characters. A model generating a plan, a summary, or a list of decisions writes it in Markdown because Markdown maps directly to the logical structure of the content — headings for sections, bullets for items, bold for key terms. Any other format would require an additional translation step.

Claude Code reads Markdown back — the loop closes When Claude Code reads a CLAUDE.md file, it is reading a Markdown document it can parse structurally. When it writes output you use to update a CLAUDE.md, it writes in Markdown. The format that enters the system is the same format that exits it. There is no translation layer, no schema mismatch, no format negotiation. The workflow is a closed loop — and Markdown is the protocol that holds it together.

If you are building any system around Claude Code — for your team, your company, or your own productivity — invest time in writing clean, well-structured Markdown in your CLAUDE.md files. The quality of Claude's output is directly proportional to the quality of the instructions it receives. Markdown is the medium. Make it count.

Now You Know How to Play It

Most people use Claude the way they use a search engine — type, send, read, repeat. That approach works, but it leaves the majority of the tool's capability and efficiency on the table.

The browser interface rewards discipline: edit instead of follow-up, start fresh before the history gets heavy, batch your work into single messages, and configure Projects and Memory so Claude already knows who you are and what you need before you type a word.

The terminal interface rewards investment: write a good CLAUDE.md, compact proactively, run parallel agents on independent tasks, and use hooks to automate the repetitive scaffolding around your workflow.

Both tools share one common thread: the cleaner and more structured your input, the better and more consistent the output. That is the whole game — and now you know how to play it.