# Inside Claude Code > An interactive course on Claude Code and on how agents really work: lessons with quizzes, best practices and things you probably did not know. In English and Turkish. Full text: https://claude.ibrahimuzun.com/llms-full.txt ## Claude Code foundations (en) From your first session to a daily habit: how it reads your project, asks for permission, plans, and when to reach for what. - [What Claude Code is](https://claude.ibrahimuzun.com/en/learn/foundations/what-it-is.md): Claude Code is an agent harness that reads, edits and runs things in your project. What sets it apart is that it acts and then checks, and that you decide where it runs. - [Your first session](https://claude.ibrahimuzun.com/en/learn/foundations/first-session.md): Start in a repo, let /init write a first CLAUDE.md, ask for something small you can check, and learn where to read what Claude actually did. - [Permission modes](https://claude.ibrahimuzun.com/en/learn/foundations/permissions.md): Six modes decide how much Claude may do without asking. Pick the mode by what a mistake would cost, and put hard rules where the harness enforces them. - [Plan mode](https://claude.ibrahimuzun.com/en/learn/foundations/plan-mode.md): In plan mode Claude reads and proposes while edits stay blocked. It pays when the approach is the risk, and wastes time when the diff would be one sentence. - [Asking well](https://claude.ibrahimuzun.com/en/learn/foundations/asking-well.md): A specific request saves a round of corrections, and a pass/fail check lets Claude find its own mistakes before you do. - [Recovering when it goes wrong](https://claude.ibrahimuzun.com/en/learn/foundations/recovering.md): Checkpoints make mistakes cheap to undo, /clear beats a third correction, and a few debugging habits find the cause when the tool itself misbehaves. ## Context and memory (en) The one budget that decides everything. CLAUDE.md, compaction, caching, and what a long session really costs. - [The context window is the one budget](https://claude.ibrahimuzun.com/en/learn/context/the-budget.md): Everything Claude knows in a session sits in one window, and most of it is read again on every turn. Managing what goes in is the main skill of long sessions. - [What belongs in CLAUDE.md](https://claude.ibrahimuzun.com/en/learn/context/claude-md.md): CLAUDE.md is context that Claude reads, not configuration that Claude obeys. Write only what the code cannot tell it, keep it short, and move hard rules to hooks. - [Rules that wait and memory that stays](https://claude.ibrahimuzun.com/en/learn/context/rules-and-memory.md): Path-scoped rules load only when a matching file is touched, and auto memory is notes Claude writes for itself. Each one has a different answer to the question of what survives. - [What compaction keeps and what it loses](https://claude.ibrahimuzun.com/en/learn/context/compaction.md): Compaction swaps your history for a summary, then restores a few things by rule. Knowing which ones lets you steer it, and choose between /clear, /compact and rewind. - [Prompt caching and what a long session costs](https://claude.ibrahimuzun.com/en/learn/context/caching-and-cost.md): Claude Code is fast and affordable in long sessions because the unchanged start of each request is cached. A few ordinary actions break that cache, and knowing them is most of cost control. - [Choosing model, effort and fast mode](https://claude.ibrahimuzun.com/en/learn/context/models-and-effort.md): Model, effort and fast mode are three separate dials. Each one changes what a turn costs and how long it takes, and two of them reset the cache if you turn them mid-task. ## Extending Claude Code (en) Skills, hooks, subagents, MCP and plugins: what each one is for, and the difference between advice and a rule. - [Skills, loaded only when needed](https://claude.ibrahimuzun.com/en/learn/extending/skills.md): A skill is a folder whose description sits in context and whose body arrives only when the task calls for it. That split is what makes skills cheap, and what makes a bad description expensive. - [Hooks turn a wish into a guarantee](https://claude.ibrahimuzun.com/en/learn/extending/hooks.md): A CLAUDE.md line is a request the model usually honours. A hook is code the harness runs, so it happens every time. Choose hooks only for rules that have no exceptions. - [Subagents keep the mess out of your session](https://claude.ibrahimuzun.com/en/learn/extending/subagents.md): A subagent works in its own context window and returns only a summary. That is the whole benefit, and it is also the whole limit, so it pays to know what comes back. - [MCP connects tools, and every tool costs context](https://claude.ibrahimuzun.com/en/learn/extending/mcp.md): MCP gives Claude tools that live outside your machine's built-ins. The setup is one command. The real decisions are which scope to use and whether a plain CLI would have done the job for free. - [Plugins package what already works](https://claude.ibrahimuzun.com/en/learn/extending/plugins.md): A plugin is not a new capability. It bundles skills, subagents, hooks and MCP servers into one installable, versioned unit, and an enabled plugin costs context every turn whether you use it or not. - [Advice or rule: choosing the right tool](https://claude.ibrahimuzun.com/en/learn/extending/which-one-when.md): CLAUDE.md, skills, hooks, subagents and MCP each answer a different question. Pick by asking what must be true, how often it is needed, and what you are willing to carry in context. ## How agents work (en) The loop inside every agent, how agents work with each other, and when several agents are worse than one. - [The loop inside every agent](https://claude.ibrahimuzun.com/en/learn/agents/the-agent-loop.md): An agent is a model using tools in a loop. Everything else, from memory to multi-agent systems, is built on those few steps. - [Tools decide what an agent can do](https://claude.ibrahimuzun.com/en/learn/agents/tools.md): An agent can only act through its tools, and it only understands them through their descriptions. Good tools are few, clearly named, short in what they return, and honest about errors. - [Context is a budget, memory lives outside it](https://claude.ibrahimuzun.com/en/learn/agents/context-and-memory.md): An agent's attention is finite and gets worse as the window fills. Keep only what matters in view, load the rest when needed, and write long-term state to files. - [How agents work with each other](https://claude.ibrahimuzun.com/en/learn/agents/orchestrators-and-workers.md): Agents cooperate in three shapes: a lead that hands out work, a maker checked by a separate evaluator, and peers sharing a repository. In all three, files carry the messages. - [When many agents are worse than one](https://claude.ibrahimuzun.com/en/learn/agents/when-many-agents-fail.md): Parallel agents win on broad, read-heavy research and often lose on coding, where the pieces share assumptions. The cost is real: about 15 times the tokens of a chat. - [How to tell whether an agent is any good](https://claude.ibrahimuzun.com/en/learn/agents/evaluating-agents.md): Judge an agent by what it leaves behind, not by the steps it took. Start from real failures, mix cheap graders with calibrated ones, and suspect the test before the agent. ## Loop engineering (en) Stop prompting, start designing the system that prompts. Triggers, verification, stop conditions, memory and budgets. - [What loop engineering is](https://claude.ibrahimuzun.com/en/learn/loops/what-it-is.md): Loop engineering means building the system that prompts, checks and restarts an agent, so you stop being the person who types every turn. The term is new, and the honest story of where it came from is short. - [Four kinds of loop and how to pick one](https://claude.ibrahimuzun.com/en/learn/loops/four-kinds.md): Turn-based, goal-based, time-based and proactive loops differ in who or what starts the next turn. Picking the simplest one that fits is the first cost decision you make. - [The Ralph loop underneath everything](https://claude.ibrahimuzun.com/en/learn/loops/ralph.md): The oldest loop is a bash while-loop that feeds one prompt file to an agent forever. Fresh context, one task per iteration and tests as backpressure are why it works, and having no stop condition is why it needs the rest of this course. - [Do not start a loop you cannot check](https://claude.ibrahimuzun.com/en/learn/loops/verification-first.md): A loop optimises whatever its check measures, so a weak check produces confident wrong work. Build the check first, keep the maker and the checker apart, and calibrate the checker against your own judgment. - [Stop conditions and the budget](https://claude.ibrahimuzun.com/en/learn/loops/stop-and-budget.md): A loop needs three exits: a stop written as evidence, a hard cap for when the evidence never comes, and a rule for repeated failure. The cost numbers from real runs show why the caps are not optional. - [The harness for long-running work](https://claude.ibrahimuzun.com/en/learn/loops/long-running-harness.md): A loop that runs for hours forgets everything between sessions, so its memory has to live in files. Progress logs, a feature list the agent may only flip, a startup routine, and the habit of retesting each part when the model changes. ## Parallel and unattended (en) Worktrees, parallel sessions, headless runs, CI and schedules: Claude Code when you are not watching. - [One checkout per agent](https://claude.ibrahimuzun.com/en/learn/shipping/worktrees.md): Two agents editing the same folder overwrite each other. A worktree gives each session its own files and its own branch, so parallel work stays separate until you merge it. - [Claude Code without a terminal](https://claude.ibrahimuzun.com/en/learn/shipping/headless.md): claude -p runs the same agent loop once and exits, which makes it a command you can pipe, script and schedule. The flags decide whether it stays predictable. - [Claude Code on your pull requests](https://claude.ibrahimuzun.com/en/learn/shipping/github-actions.md): The Claude Code action runs the agent inside a GitHub workflow, either waiting for an @claude mention or running a prompt on any event. Setup is short; the access and secret choices are where it goes wrong. - [Work that runs on a clock](https://claude.ibrahimuzun.com/en/learn/shipping/scheduled-work.md): Claude Code has three places to run something repeatedly: cloud routines, Desktop scheduled tasks and the in-session /loop. They differ in where they run, how often they can fire and what survives. - [Settings a team can share](https://claude.ibrahimuzun.com/en/learn/shipping/team-settings.md): Claude Code reads settings from several scopes and merges them by a fixed order. Knowing which file wins, and what belongs in git, is what keeps a team's rules from becoming one person's habits. - [Running with nobody watching](https://claude.ibrahimuzun.com/en/learn/shipping/unattended-safely.md): When no one can answer a prompt, the permission rules are the only supervisor left. The safe setup is narrow allow rules, hard deny rules, a capped run and nothing valuable within reach. ## Lists (en) - [Tips](https://claude.ibrahimuzun.com/en/tips): 122 - [Best practices](https://claude.ibrahimuzun.com/en/best-practices): 42 ## Claude Code temelleri (tr) İlk oturumdan günlük alışkanlığa: projenizi nasıl okur, nasıl izin ister, nasıl planlar, ne zaman neye başvurmalısınız. - [Claude Code nedir](https://claude.ibrahimuzun.com/tr/learn/foundations/what-it-is.md): Claude Code, projenizde okuyan, düzenleyen ve komut çalıştıran bir ajan harness'ı. Onu ayıran şey, harekete geçip sonra kontrol etmesi ve nerede çalışacağına sizin karar vermeniz. - [İlk oturumunuz](https://claude.ibrahimuzun.com/tr/learn/foundations/first-session.md): Bir depoda başlayın, /init ilk CLAUDE.md'yi yazsın, kontrol edebileceğiniz küçük bir iş isteyin ve Claude'un gerçekte ne yaptığını nereden okuyacağınızı öğrenin. - [İzin modları](https://claude.ibrahimuzun.com/tr/learn/foundations/permissions.md): Altı mod, Claude'un sormadan ne kadarını yapabileceğini belirliyor. Modu, bir hatanın maliyetine göre seçin ve katı kuralları harness'ın zorladığı yere koyun. - [Plan modu](https://claude.ibrahimuzun.com/tr/learn/foundations/plan-mode.md): Plan modunda Claude okuyup öneri sunuyor, düzenlemeler ise engelli kalıyor. Yaklaşım riskliyse işe yarıyor, diff tek cümleyse zaman kaybı. - [İyi istemek](https://claude.ibrahimuzun.com/tr/learn/foundations/asking-well.md): Belirli bir istek bir düzeltme turunu kurtarır, geçti/kaldı kontrolü ise Claude'un hatalarını siz görmeden önce bulmasını sağlar. - [Ters gittiğinde toparlanmak](https://claude.ibrahimuzun.com/tr/learn/foundations/recovering.md): Checkpoint'ler hataları geri almayı ucuz yapıyor, üçüncü düzeltmeden /clear daha iyi ve aracın kendisi sorun çıkardığında birkaç debug alışkanlığı sebebi buluyor. ## Bağlam ve hafıza (tr) Her şeyi belirleyen tek bütçe. CLAUDE.md, compaction, önbellek ve uzun bir oturumun gerçek maliyeti. - [Bağlam penceresi tek bütçedir](https://claude.ibrahimuzun.com/tr/learn/context/the-budget.md): Claude'un bir oturumda bildiği her şey tek bir pencerede durur ve çoğu her turda yeniden okunur. Neyin içeri girdiğini yönetmek, uzun oturumların asıl becerisi. - [CLAUDE.md'ye ne yazılır](https://claude.ibrahimuzun.com/tr/learn/context/claude-md.md): CLAUDE.md, Claude'un okuduğu bir bağlamdır; uyduğu bir yapılandırma değil. Yalnızca koddan anlaşılmayanı yazın, kısa tutun, sert kuralları hook'a taşıyın. - [Bekleyen kurallar, kalan hafıza](https://claude.ibrahimuzun.com/tr/learn/context/rules-and-memory.md): Path kapsamlı kurallar yalnızca eşleşen bir dosyaya dokunulunca yüklenir, auto memory ise Claude'un kendine yazdığı notlardır. İkisinin "neyin ne kadar yaşadığı" sorusuna cevabı farklı. - [Compaction neyi tutar, neyi kaybeder](https://claude.ibrahimuzun.com/tr/learn/context/compaction.md): Compaction geçmişinizi bir özetle değiştirir, sonra birkaç şeyi kurala göre geri koyar. Hangilerini bilirseniz onu yönlendirebilir, /clear, /compact ve rewind arasında seçim yapabilirsiniz. - [Prompt caching ve uzun bir oturumun maliyeti](https://claude.ibrahimuzun.com/tr/learn/context/caching-and-cost.md): Claude Code uzun oturumlarda hızlı ve makul fiyatlı çünkü her isteğin değişmeyen başı cache'leniyor. Birkaç sıradan eylem bu cache'i bozuyor, ve onları bilmek maliyet kontrolünün büyük kısmı. - [Model, çaba ve fast mode seçimi](https://claude.ibrahimuzun.com/tr/learn/context/models-and-effort.md): Model, çaba ve fast mode üç ayrı kadrandır. Her biri bir turun maliyetini ve süresini değiştirir, ikisi iş ortasında çevrilirse cache'i sıfırlar. ## Claude Code'u genişletmek (tr) Skill'ler, hook'lar, alt ajanlar, MCP ve plugin'ler: her biri ne işe yarar, tavsiye ile kural arasındaki fark nedir. - [Skill'ler, yalnızca gerektiğinde yüklenir](https://claude.ibrahimuzun.com/tr/learn/extending/skills.md): Skill, açıklaması bağlamda duran, gövdesi ise iş gerektirdiğinde gelen bir klasördür. Bu ayrım skill'leri ucuz yapıyor, kötü yazılmış bir açıklamayı da pahalı. - [Hook'lar dileği garantiye çevirir](https://claude.ibrahimuzun.com/tr/learn/extending/hooks.md): CLAUDE.md'deki bir satır, modelin çoğu zaman uyduğu bir rica. Hook ise harness'ın çalıştırdığı kod, yani her seferinde olur. Hook'u yalnızca istisnası olmayan kurallar için seçin. - [Alt ajanlar dağınıklığı oturumunuzun dışında tutar](https://claude.ibrahimuzun.com/tr/learn/extending/subagents.md): Alt ajan kendi bağlam penceresinde çalışır ve size yalnızca bir özet döner. Faydanın tamamı bu, sınırın tamamı da bu; o yüzden geri ne geleceğini bilmekte fayda var. - [MCP araç bağlar, her araç bağlam yer](https://claude.ibrahimuzun.com/tr/learn/extending/mcp.md): MCP, Claude'a yerleşik araçların dışında araçlar verir. Kurulum tek komut. Asıl kararlar hangi scope'u kullanacağınız ve düz bir CLI'ın işi bedavaya görüp görmeyeceği. - [Plugin'ler zaten çalışanı paketler](https://claude.ibrahimuzun.com/tr/learn/extending/plugins.md): Plugin yeni bir yetenek değil. Skill'leri, alt ajanları, hook'ları ve MCP sunucularını tek bir kurulabilir, sürümlenebilir birimde topluyor; etkin bir plugin kullanmasanız da her turda bağlam yiyor. - [Tavsiye mi kural mı: doğru aracı seçmek](https://claude.ibrahimuzun.com/tr/learn/extending/which-one-when.md): CLAUDE.md, skill, hook, alt ajan ve MCP farklı birer soruya cevap veriyor. Seçimi, neyin doğru olması gerektiğine, ne sıklıkla lazım olduğuna ve bağlamda neyi taşımaya razı olduğunuza bakarak yapın. ## Ajanlar nasıl çalışır (tr) Her ajanın içindeki döngü, ajanların birbirleriyle nasıl çalıştığı ve birden çok ajanın ne zaman tek ajandan kötü olduğu. - [Her ajanın içindeki döngü](https://claude.ibrahimuzun.com/tr/learn/agents/the-agent-loop.md): Ajan, araçları döngü içinde kullanan bir modeldir. Hafızadan çok ajanlı sistemlere kadar geri kalan her şey bu birkaç adımın üstüne kurulur. - [Araçlar, ajanın neler yapabileceğini belirler](https://claude.ibrahimuzun.com/tr/learn/agents/tools.md): Ajan dünyaya yalnızca araçlarıyla dokunabilir ve araçları yalnızca açıklamalarından anlar. İyi araç azdır, adı nettir, kısa döner ve hatayı dürüstçe söyler. - [Bağlam bir bütçedir, hafıza onun dışında yaşar](https://claude.ibrahimuzun.com/tr/learn/agents/context-and-memory.md): Ajanın dikkati sınırlıdır ve pencere doldukça kötüleşir. Yalnızca önemli olanı görünürde tutun, gerisini gerektiğinde yükleyin, uzun vadeli durumu dosyalara yazın. - [Ajanlar birbirleriyle nasıl çalışır](https://claude.ibrahimuzun.com/tr/learn/agents/orchestrators-and-workers.md): Ajanlar üç biçimde işbirliği yapar: iş dağıtan bir lider, ayrı bir değerlendiriciyle denetlenen bir üretici ve ortak bir depoda çalışan eşler. Üçünde de mesajı dosyalar taşır. - [Çok ajanın tek ajandan kötü olduğu yer](https://claude.ibrahimuzun.com/tr/learn/agents/when-many-agents-fail.md): Paralel ajanlar geniş, okuma ağırlıklı araştırmada kazanır, parçaların varsayım paylaştığı kodlamada çoğu zaman kaybeder. Bedel gerçek: bir sohbetin yaklaşık 15 katı token. - [Bir ajanın iyi olup olmadığı nasıl anlaşılır](https://claude.ibrahimuzun.com/tr/learn/agents/evaluating-agents.md): Ajanı attığı adımlara değil, geride bıraktığı sonuca göre değerlendirin. Gerçek hatalardan başlayın, ucuz ve kalibre edilmiş değerlendiricileri karıştırın, ajandan önce testten şüphelenin. ## Loop engineering (tr) Prompt yazmayı bırakın, prompt yazan sistemi tasarlayın. Tetikleyiciler, doğrulama, durma koşulları, hafıza ve bütçe. - [Loop engineering nedir](https://claude.ibrahimuzun.com/tr/learn/loops/what-it-is.md): Loop engineering, ajanı sizin yerinize prompt'layan, sonucu kontrol eden ve yeniden başlatan sistemi kurmak demek. Böylece her turu yazan kişi olmaktan çıkıyorsunuz. Terim yeni ve nereden geldiğinin dürüst hikayesi kısa. - [Dört tür loop ve nasıl seçilir](https://claude.ibrahimuzun.com/tr/learn/loops/four-kinds.md): Turn-based, goal-based, time-based ve proactive loop'lar bir sonraki turu kimin ya da neyin başlattığıyla ayrılıyor. Uyan en basit olanı seçmek, verdiğiniz ilk maliyet kararı. - [Her şeyin altındaki Ralph döngüsü](https://claude.ibrahimuzun.com/tr/learn/loops/ralph.md): En eski loop, bir ajana tek bir prompt dosyasını sonsuza kadar veren bash while döngüsü. Her turda taze bağlam, iterasyon başına tek görev ve backpressure olarak testler onu çalıştırıyor. Durma koşulunun olmaması da kursun geri kalanına neden ihtiyaç olduğunu gösteriyor. - [Kontrol edemeyeceğiniz loop'u başlatmayın](https://claude.ibrahimuzun.com/tr/learn/loops/verification-first.md): Loop, kontrolünün ölçtüğü şeyi optimize eder, bu yüzden zayıf kontrol kendinden emin yanlış iş üretir. Önce kontrolü kurun, yapanı ve kontrol edeni ayırın, kontrolcüyü kendi muhakemenize göre kalibre edin. - [Durma koşulları ve bütçe](https://claude.ibrahimuzun.com/tr/learn/loops/stop-and-budget.md): Bir loop'un üç çıkışı olmalı: kanıt olarak yazılmış bir durma koşulu, kanıt hiç gelmezse sert bir sınır ve tekrarlayan başarısızlık için bir kural. Gerçek koşuların maliyet rakamları sınırların neden şart olduğunu gösteriyor. - [Uzun soluklu işler için harness](https://claude.ibrahimuzun.com/tr/learn/loops/long-running-harness.md): Saatlerce çalışan bir loop oturumlar arasında her şeyi unutur, bu yüzden hafızası dosyalarda durmalı. İlerleme kayıtları, ajanın yalnızca çevirebildiği bir özellik listesi, bir başlangıç rutini ve model değiştikçe her parçayı yeniden test etme alışkanlığı. ## Paralel ve gözetimsiz (tr) Worktree'ler, paralel oturumlar, headless çalıştırma, CI ve zamanlama: siz bakmıyorken Claude Code. - [Her ajana ayrı bir checkout](https://claude.ibrahimuzun.com/tr/learn/shipping/worktrees.md): İki ajan aynı klasörde çalışırsa birbirinin işini ezer. Worktree her oturuma kendi dosyalarını ve kendi dalını verir, paralel işler siz birleştirene kadar ayrı kalır. - [Terminalsiz Claude Code](https://claude.ibrahimuzun.com/tr/learn/shipping/headless.md): claude -p aynı ajan döngüsünü bir kez çalıştırıp çıkıyor, böylece onu pipe'layabilir, script'leyebilir ve zamanlayabilirsiniz. Öngörülebilir kalıp kalmayacağını bayraklar belirliyor. - [Pull request'lerinizde Claude Code](https://claude.ibrahimuzun.com/tr/learn/shipping/github-actions.md): Claude Code action'ı ajanı bir GitHub workflow'unun içinde çalıştırıyor: ya @claude çağrısını bekliyor ya da herhangi bir olayda bir prompt çalıştırıyor. Kurulum kısa, işlerin ters gittiği yer erişim ve secret seçimleri. - [Saate bağlı çalışan işler](https://claude.ibrahimuzun.com/tr/learn/shipping/scheduled-work.md): Claude Code'da bir şeyi tekrar tekrar çalıştırmanın üç yeri var: cloud routine'ler, Desktop zamanlanmış görevler ve oturum içi /loop. Nerede çalıştıkları, ne sıklıkla tetiklenebildikleri ve neyin ayakta kaldığı birbirinden farklı. - [Ekibin paylaşabileceği ayarlar](https://claude.ibrahimuzun.com/tr/learn/shipping/team-settings.md): Claude Code ayarları birkaç kapsamdan okuyup sabit bir sıraya göre birleştiriyor. Hangi dosyanın kazandığını ve neyin git'e girdiğini bilmek, ekip kurallarının tek kişinin alışkanlığına dönüşmesini önlüyor. - [Kimse izlemezken çalıştırmak](https://claude.ibrahimuzun.com/tr/learn/shipping/unattended-safely.md): Bir izin sorusuna cevap verecek kimse yoksa elinizdeki tek denetçi izin kuralları. Güvenli kurulum: dar allow kuralları, sert deny kuralları, sınırlı bir çalıştırma ve ulaşılabilecek yerde değerli hiçbir şey olmaması. ## Lists (tr) - [İpuçları](https://claude.ibrahimuzun.com/tr/tips): 122 - [En iyi pratikler](https://claude.ibrahimuzun.com/tr/best-practices): 42