claude-directory.md +57 −57
20 background: 'var(--ce-surface)',20 background: 'var(--ce-surface)',
21 border: '0.5px solid var(--ce-border-subtle)'21 border: '0.5px solid var(--ce-border-subtle)'
22 }}>{children}</code>, []);22 }}>{children}</code>, []);
2323 const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use <A href="/en/skills">skills/</A> instead: same <C>/name</C> invocation, plus you can bundle supporting files.</>, []); const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use <A href="/docs/en/skills">skills/</A> instead: same <C>/name</C> invocation, plus you can bundle supporting files.</>, []);
24 const FILE_TREE = useMemo(() => ({24 const FILE_TREE = useMemo(() => ({
25 project: {25 project: {
26 label: 'your-project/',26 label: 'your-project/',
34 oneLiner: 'Project instructions Claude reads every session',34 oneLiner: 'Project instructions Claude reads every session',
35 when: 'Loaded into context at the start of every session',35 when: 'Loaded into context at the start of every session',
36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',
3737 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/en/skills">skill</A> or a path-scoped <A href="/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>], tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>],
38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',
39 example: `# Project conventions39 example: `# Project conventions
40 40
60 color: '#9B7BC4',60 color: '#9B7BC4',
61 badge: 'committed',61 badge: 'committed',
62 oneLiner: 'Project-scoped MCP servers, shared with your team',62 oneLiner: 'Project-scoped MCP servers, shared with your team',
6363 when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/en/mcp#scale-with-mcp-tool-search">tool search</A></>, when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/docs/en/mcp#scale-with-mcp-tool-search">tool search</A></>,
64 description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>,64 description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>,
65 tips: [<>Use environment variable references for secrets: <C>{'${NOTION_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>],65 tips: [<>Use environment variable references for secrets: <C>{'${NOTION_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>],
66 exampleIntro: <>This example configures the Notion MCP server so Claude can read and update pages in your workspace. The <C>{'${NOTION_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>,66 exampleIntro: <>This example configures the Notion MCP server so Claude can read and update pages in your workspace. The <C>{'${NOTION_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>,
86 oneLiner: 'Gitignored files to copy into new worktrees',86 oneLiner: 'Gitignored files to copy into new worktrees',
87 when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>,87 when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>,
88 description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>,88 description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>,
8989 tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/en/desktop#work-in-parallel-with-sessions">desktop app</A></>], tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/docs/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/docs/en/desktop#work-in-parallel-with-sessions">desktop app</A></>],
90 exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.',90 exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.',
91 example: `# Local environment91 example: `# Local environment
92.env92.env
102 icon: 'folder',102 icon: 'folder',
103 color: 'var(--ce-accent)',103 color: 'var(--ce-accent)',
104 oneLiner: 'Project-level configuration, rules, and extensions',104 oneLiner: 'Project-level configuration, rules, and extensions',
105105 description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are automatically gitignored. Each file badge shows which.', description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are gitignored when Claude Code saves settings to them. Each file badge shows which.',
106 children: [{106 children: [{
107 id: 'settings-json',107 id: 'settings-json',
108 label: 'settings.json',108 label: 'settings.json',
113 oneLiner: 'Permissions, hooks, and configuration',113 oneLiner: 'Permissions, hooks, and configuration',
114 when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>,114 when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>,
115 description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.',115 description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.',
116116 contains: [<><A href="/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/en/settings#available-settings">model</A>: pick a default model for this project</>, <><A href="/en/settings#environment-variables">env</A>: environment variables set in every session</>, <><A href="/en/output-styles">outputStyle</A>: select a custom system-prompt style from output-styles/</>], contains: [<><A href="/docs/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/docs/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/docs/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/docs/en/settings#available-settings">model</A>: pick a default model for this project</>, <><A href="/docs/en/settings#environment-variables">env</A>: environment variables set in every session</>, <><A href="/docs/en/output-styles">outputStyle</A>: select a custom system-prompt style from output-styles/</>],
117 tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>],117 tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>],
118 exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>,118 exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>,
119 example: `{119 example: `{
146 badge: 'gitignored',146 badge: 'gitignored',
147 oneLiner: 'Your personal settings overrides for this project',147 oneLiner: 'Your personal settings overrides for this project',
148 when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence',148 when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence',
149149 description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, but not committed. Use this when you need different permissions or defaults than the team config.', description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, gitignored when Claude Code saves a setting to it. Use this when you need different permissions or defaults than the team config.',
150150 tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>Claude Code adds this file to <C>~/.config/git/ignore</C> the first time it writes one. If you use a custom <C>core.excludesFile</C>, add the pattern there too. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>], tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>When Claude Code saves a setting to this file in a repository that doesn't already ignore it, it adds <C>**/.claude/settings.local.json</C> to your global git excludes file: <C>core.excludesFile</C> from your global git config when it's set to an absolute or <C>~</C>-prefixed path, otherwise <C>$XDG_CONFIG_HOME/git/ignore</C>, or <C>~/.config/git/ignore</C>. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>],
151 exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.',151 exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.',
152 example: `{152 example: `{
153 "permissions": {153 "permissions": {
165 color: '#9B7BC4',165 color: '#9B7BC4',
166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',
167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,
168168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/en/hooks">hooks</A> or <A href="/en/permissions">permissions</A>.</>], description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],
169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],
170 docsLink: '/en/memory#organize-rules-with-claude/rules/',170 docsLink: '/en/memory#organize-rules-with-claude/rules/',
171 children: [{171 children: [{
369 color: '#C46686',369 color: '#C46686',
370 oneLiner: 'Dynamic workflow scripts that orchestrate many subagents',370 oneLiner: 'Dynamic workflow scripts that orchestrate many subagents',
371 when: 'Loaded at startup; each file becomes a /<name> command',371 when: 'Loaded at startup; each file becomes a /<name> command',
372372 description: <>Each <C>.js</C> file is a <A href="/en/workflows">dynamic workflow</A>: a script the runtime executes to spawn and coordinate many subagents. Workflows are written by Claude and saved here from <C>/workflows</C> rather than authored from scratch.</>, description: <>Each <C>.js</C> file is a <A href="/docs/en/workflows">dynamic workflow</A>: a script the runtime executes to spawn and coordinate many subagents. Workflows are written by Claude and saved here from <C>/workflows</C> rather than authored from scratch.</>,
373 tips: [<>Save a run from <C>/workflows</C> with <C>s</C> to create one of these</>, <>A project workflow takes precedence over a personal one in <C>~/.claude/workflows/</C> with the same name</>],373 tips: [<>Save a run from <C>/workflows</C> with <C>s</C> to create one of these</>, <>A project workflow takes precedence over a personal one in <C>~/.claude/workflows/</C> with the same name</>],
374 docsLink: '/en/workflows'374 docsLink: '/en/workflows'
375 }, {375 }, {
382 autogen: true,382 autogen: true,
383 oneLiner: 'Subagent persistent memory, separate from your main session auto memory',383 oneLiner: 'Subagent persistent memory, separate from your main session auto memory',
384 when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs',384 when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs',
385385 description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>, description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/docs/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>,
386 tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>],386 tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>],
387 docsLink: '/en/sub-agents#enable-persistent-memory',387 docsLink: '/en/sub-agents#enable-persistent-memory',
388 children: [{388 children: [{
402 autogen: true,402 autogen: true,
403 oneLiner: 'The subagent writes and maintains this file automatically',403 oneLiner: 'The subagent writes and maintains this file automatically',
404 when: 'Loaded into the subagent system prompt when the subagent starts',404 when: 'Loaded into the subagent system prompt when the subagent starts',
405405 description: <>Works the same as your <A href="/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>, description: <>Works the same as your <A href="/docs/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>,
406 example: `# code-reviewer memory406 example: `# code-reviewer memory
407 407
408## Patterns seen408## Patterns seen
1432 1432
1433Claude Code membaca instruksi, pengaturan, skills, subagents, dan memory dari direktori proyek Anda dan dari `~/.claude` di direktori home Anda. Commit file proyek ke git untuk membagikannya dengan tim Anda; file di `~/.claude` adalah konfigurasi pribadi yang berlaku di semua proyek Anda.1433Claude Code membaca instruksi, pengaturan, skills, subagents, dan memory dari direktori proyek Anda dan dari `~/.claude` di direktori home Anda. Commit file proyek ke git untuk membagikannya dengan tim Anda; file di `~/.claude` adalah konfigurasi pribadi yang berlaku di semua proyek Anda.
1434 1434
14351435Di Windows, `~/.claude` diselesaikan menjadi `%USERPROFILE%\.claude`. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/id/env-vars), setiap jalur `~/.claude` di halaman ini berada di bawah direktori itu sebagai gantinya.Di Windows, `~/.claude` diselesaikan menjadi `%USERPROFILE%\.claude`. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), setiap jalur `~/.claude` di halaman ini berada di bawah direktori itu sebagai gantinya.
1436 1436
1437Sebagian besar pengguna hanya mengedit `CLAUDE.md` dan `settings.json`. Sisa direktori bersifat opsional: tambahkan skills, rules, atau subagents sesuai kebutuhan Anda.1437Sebagian besar pengguna hanya mengedit `CLAUDE.md` dan `settings.json`. Sisa direktori bersifat opsional: tambahkan skills, rules, atau subagents sesuai kebutuhan Anda.
1438 1438
1452 1452
1453| File | Lokasi | Tujuan |1453| File | Lokasi | Tujuan |
1454| ----------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
14551455| `managed-settings.json` | Tingkat sistem, bervariasi menurut OS | Pengaturan yang diberlakukan perusahaan yang tidak dapat Anda ganti. Lihat [pengaturan yang dikelola server](/id/server-managed-settings). || `managed-settings.json` | Tingkat sistem, bervariasi menurut OS | Pengaturan yang diberlakukan perusahaan yang tidak dapat Anda ganti. Lihat [pengaturan yang dikelola server](/docs/id/server-managed-settings). |
1456| `CLAUDE.local.md` | Akar proyek | Preferensi pribadi Anda untuk proyek ini, dimuat bersama CLAUDE.md. Buat secara manual dan tambahkan ke `.gitignore`. |1456| `CLAUDE.local.md` | Akar proyek | Preferensi pribadi Anda untuk proyek ini, dimuat bersama CLAUDE.md. Buat secara manual dan tambahkan ke `.gitignore`. |
14571457| Plugin yang diinstal | `~/.claude/plugins` | Marketplace yang dikloning, versi plugin yang diinstal, dan data per-plugin, dikelola oleh perintah `claude plugin`. Versi yatim piatu dihapus 7 hari setelah pembaruan atau penghapusan plugin. Lihat [plugin caching](/id/plugins-reference#plugin-caching-and-file-resolution). || Plugin yang diinstal | `~/.claude/plugins` | Marketplace yang dikloning, versi plugin yang diinstal, dan data per-plugin, dikelola oleh perintah `claude plugin`. Versi yatim piatu dihapus 7 hari setelah pembaruan atau penghapusan plugin. Lihat [plugin caching](/docs/id/plugins-reference#plugin-caching-and-file-resolution). |
1458 1458
1459`~/.claude` juga menyimpan data yang ditulis Claude Code saat Anda bekerja: transkrip, riwayat prompt, snapshot file, cache, dan log. Lihat [data aplikasi](#application-data) di bawah.1459`~/.claude` juga menyimpan data yang ditulis Claude Code saat Anda bekerja: transkrip, riwayat prompt, snapshot file, cache, dan log. Lihat [data aplikasi](#application-data) di bawah.
1460 1460
1466 1466
1467| Anda ingin | Edit | Cakupan | Referensi |1467| Anda ingin | Edit | Cakupan | Referensi |
1468| :--------------------------------------------------------------- | :----------------------------------------- | :----------------- | :------------------------------------------------- |1468| :--------------------------------------------------------------- | :----------------------------------------- | :----------------- | :------------------------------------------------- |
14691469| Berikan Claude konteks proyek dan konvensi | `CLAUDE.md` | proyek atau global | [Memory](/id/memory) || Berikan Claude konteks proyek dan konvensi | `CLAUDE.md` | proyek atau global | [Memory](/docs/id/memory) |
14701470| Izinkan atau blokir tool call tertentu | `settings.json` `permissions` atau `hooks` | proyek atau global | [Permissions](/id/permissions), [Hooks](/id/hooks) || Izinkan atau blokir tool call tertentu | `settings.json` `permissions` atau `hooks` | proyek atau global | [Permissions](/docs/id/permissions), [Hooks](/docs/id/hooks) |
14711471| Jalankan skrip sebelum atau sesudah tool call | `settings.json` `hooks` | proyek atau global | [Hooks](/id/hooks) || Jalankan skrip sebelum atau sesudah tool call | `settings.json` `hooks` | proyek atau global | [Hooks](/docs/id/hooks) |
14721472| Atur variabel lingkungan untuk sesi | `settings.json` `env` | proyek atau global | [Settings](/id/settings#available-settings) || Atur variabel lingkungan untuk sesi | `settings.json` `env` | proyek atau global | [Settings](/docs/id/settings#available-settings) |
14731473| Simpan penggantian pribadi di luar git | `settings.local.json` | proyek saja | [Settings scopes](/id/settings#settings-files) || Simpan penggantian pribadi di luar git | `settings.local.json` | proyek saja | [Settings scopes](/docs/id/settings#settings-files) |
14741474| Tambahkan prompt atau kemampuan yang Anda panggil dengan `/name` | `skills/<name>/SKILL.md` | proyek atau global | [Skills](/id/skills) || Tambahkan prompt atau kemampuan yang Anda panggil dengan `/name` | `skills/<name>/SKILL.md` | proyek atau global | [Skills](/docs/id/skills) |
14751475| Tentukan subagent khusus dengan tools-nya sendiri | `agents/*.md` | proyek atau global | [Subagents](/id/sub-agents) || Tentukan subagent khusus dengan tools-nya sendiri | `agents/*.md` | proyek atau global | [Subagents](/docs/id/sub-agents) |
14761476| Orkestrasi banyak subagent dari skrip | `workflows/*.js` | proyek atau global | [Dynamic workflows](/id/workflows) || Orkestrasi banyak subagent dari skrip | `workflows/*.js` | proyek atau global | [Dynamic workflows](/docs/id/workflows) |
14771477| Hubungkan tools eksternal melalui MCP | `.mcp.json` | proyek saja | [MCP](/id/mcp) || Hubungkan tools eksternal melalui MCP | `.mcp.json` | proyek saja | [MCP](/docs/id/mcp) |
14781478| Ubah cara Claude memformat respons | `output-styles/*.md` | proyek atau global | [Output styles](/id/output-styles) || Ubah cara Claude memformat respons | `output-styles/*.md` | proyek atau global | [Output styles](/docs/id/output-styles) |
1479 1479
1480<h2 id="file-reference">1480<h2 id="file-reference">
1481 Referensi file1481 Referensi file
1486<Note>1486<Note>
1487 Beberapa hal dapat mengganti apa yang Anda masukkan dalam file ini:1487 Beberapa hal dapat mengganti apa yang Anda masukkan dalam file ini:
1488 1488
14891489 * [Pengaturan yang dikelola](/id/server-managed-settings) yang digunakan oleh organisasi Anda memiliki prioritas di atas segalanya * [Pengaturan yang dikelola](/docs/id/server-managed-settings) yang digunakan oleh organisasi Anda memiliki prioritas di atas segalanya
1490 * Bendera CLI seperti `--permission-mode` atau `--settings` mengganti `settings.json` untuk sesi itu1490 * Bendera CLI seperti `--permission-mode` atau `--settings` mengganti `settings.json` untuk sesi itu
14911491 * Beberapa variabel lingkungan memiliki prioritas di atas pengaturan yang setara, tetapi ini bervariasi: periksa [referensi variabel lingkungan](/id/env-vars) untuk masing-masing * Beberapa variabel lingkungan memiliki prioritas di atas pengaturan yang setara, tetapi ini bervariasi: periksa [referensi variabel lingkungan](/docs/id/env-vars) untuk masing-masing
1492 1492
14931493 Lihat [prioritas pengaturan](/id/settings#settings-precedence) untuk urutan lengkapnya. Lihat [prioritas pengaturan](/docs/id/settings#settings-precedence) untuk urutan lengkapnya.
1494</Note>1494</Note>
1495 1495
1496Klik nama file untuk membuka node itu di penjelajah di atas.1496Klik nama file untuk membuka node itu di penjelajah di atas.
1497 1497
1498| File | Cakupan | Commit | Apa yang dilakukan | Referensi |1498| File | Cakupan | Commit | Apa yang dilakukan | Referensi |
1499| --------------------------------------------------- | ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |1499| --------------------------------------------------- | ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
15001500| [`CLAUDE.md`](#ce-claude-md) | Proyek dan global | ✓ | Instruksi dimuat setiap sesi | [Memory](/id/memory) || [`CLAUDE.md`](#ce-claude-md) | Proyek dan global | ✓ | Instruksi dimuat setiap sesi | [Memory](/docs/id/memory) |
15011501| [`rules/*.md`](#ce-rules) | Proyek dan global | ✓ | Instruksi dengan cakupan topik, opsional gated path | [Rules](/id/memory#organize-rules-with-claude/rules/) || [`rules/*.md`](#ce-rules) | Proyek dan global | ✓ | Instruksi dengan cakupan topik, opsional gated path | [Rules](/docs/id/memory#organize-rules-with-claude/rules/) |
15021502| [`settings.json`](#ce-settings-json) | Proyek dan global | ✓ | Izin, hooks, variabel env, default model | [Settings](/id/settings) || [`settings.json`](#ce-settings-json) | Proyek dan global | ✓ | Izin, hooks, variabel env, default model | [Settings](/docs/id/settings) |
15031503| [`settings.local.json`](#ce-settings-local-json) | Proyek saja | | Penggantian pribadi Anda, auto-gitignored | [Settings scopes](/id/settings#settings-files) || [`settings.local.json`](#ce-settings-local-json) | Proyek saja | | Penggantian pribadi Anda, auto-gitignored | [Settings scopes](/docs/id/settings#settings-files) |
15041504| [`.mcp.json`](#ce-mcp-json) | Proyek saja | ✓ | Server MCP yang dibagikan tim | [MCP scopes](/id/mcp#mcp-installation-scopes) || [`.mcp.json`](#ce-mcp-json) | Proyek saja | ✓ | Server MCP yang dibagikan tim | [MCP scopes](/docs/id/mcp#mcp-installation-scopes) |
15051505| [`.worktreeinclude`](#ce-worktreeinclude) | Proyek saja | ✓ | File yang diabaikan untuk disalin ke worktrees baru | [Worktrees](/id/worktrees#copy-gitignored-files-into-worktrees) || [`.worktreeinclude`](#ce-worktreeinclude) | Proyek saja | ✓ | File yang diabaikan untuk disalin ke worktrees baru | [Worktrees](/docs/id/worktrees#copy-gitignored-files-into-worktrees) |
15061506| [`skills/<name>/SKILL.md`](#ce-skills) | Proyek dan global | ✓ | Prompt yang dapat digunakan kembali dipanggil dengan `/name` atau auto-invoked | [Skills](/id/skills) || [`skills/<name>/SKILL.md`](#ce-skills) | Proyek dan global | ✓ | Prompt yang dapat digunakan kembali dipanggil dengan `/name` atau auto-invoked | [Skills](/docs/id/skills) |
15071507| [`commands/*.md`](#ce-commands) | Proyek dan global | ✓ | Prompt file tunggal; mekanisme yang sama dengan skills | [Skills](/id/skills) || [`commands/*.md`](#ce-commands) | Proyek dan global | ✓ | Prompt file tunggal; mekanisme yang sama dengan skills | [Skills](/docs/id/skills) |
15081508| [`output-styles/*.md`](#ce-output-styles) | Proyek dan global | ✓ | Bagian prompt sistem khusus | [Output styles](/id/output-styles) || [`output-styles/*.md`](#ce-output-styles) | Proyek dan global | ✓ | Bagian prompt sistem khusus | [Output styles](/docs/id/output-styles) |
15091509| [`agents/*.md`](#ce-agents) | Proyek dan global | ✓ | Definisi subagent dengan prompt dan tools mereka sendiri | [Subagents](/id/sub-agents) || [`agents/*.md`](#ce-agents) | Proyek dan global | ✓ | Definisi subagent dengan prompt dan tools mereka sendiri | [Subagents](/docs/id/sub-agents) |
15101510| [`workflows/*.js`](#ce-workflows) | Proyek dan global | ✓ | Skrip workflow dinamis yang ditulis oleh Claude dan disimpan dari `/workflows`; setiap file menjadi perintah `/<name>` | [Dynamic workflows](/id/workflows) || [`workflows/*.js`](#ce-workflows) | Proyek dan global | ✓ | Skrip workflow dinamis yang ditulis oleh Claude dan disimpan dari `/workflows`; setiap file menjadi perintah `/<name>` | [Dynamic workflows](/docs/id/workflows) |
15111511| [`agent-memory/<name>/`](#ce-agent-memory) | Proyek dan global | ✓ | Memory persisten untuk subagents | [Persistent memory](/id/sub-agents#enable-persistent-memory) || [`agent-memory/<name>/`](#ce-agent-memory) | Proyek dan global | ✓ | Memory persisten untuk subagents | [Persistent memory](/docs/id/sub-agents#enable-persistent-memory) |
15121512| [`~/.claude.json`](#ce-claude-json) | Global saja | | Status aplikasi, OAuth, toggle UI, server MCP pribadi | [Global config](/id/settings#global-config-settings) || [`~/.claude.json`](#ce-claude-json) | Global saja | | Status aplikasi, OAuth, toggle UI, server MCP pribadi | [Global config](/docs/id/settings#global-config-settings) |
15131513| [`projects/<project>/memory/`](#ce-global-projects) | Global saja | | Auto memory: catatan Claude untuk dirinya sendiri di seluruh sesi | [Auto memory](/id/memory#auto-memory) || [`projects/<project>/memory/`](#ce-global-projects) | Global saja | | Auto memory: catatan Claude untuk dirinya sendiri di seluruh sesi | [Auto memory](/docs/id/memory#auto-memory) |
15141514| [`keybindings.json`](#ce-keybindings) | Global saja | | Pintasan keyboard khusus | [Keybindings](/id/keybindings) || [`keybindings.json`](#ce-keybindings) | Global saja | | Pintasan keyboard khusus | [Keybindings](/docs/id/keybindings) |
15151515| [`themes/*.json`](#ce-themes) | Global saja | | Tema warna khusus | [Custom themes](/id/terminal-config#create-a-custom-theme) || [`themes/*.json`](#ce-themes) | Global saja | | Tema warna khusus | [Custom themes](/docs/id/terminal-config#create-a-custom-theme) |
1516 1516
1517<h2 id="troubleshoot-configuration">1517<h2 id="troubleshoot-configuration">
1518 Troubleshoot konfigurasi1518 Troubleshoot konfigurasi
1519</h2>1519</h2>
1520 1520
15211521Jika pengaturan, hook, atau file tidak berlaku, lihat [Debug konfigurasi Anda](/id/debug-your-config) untuk perintah inspeksi dan tabel pencarian berdasarkan gejala.Jika pengaturan, hook, atau file tidak berlaku, lihat [Debug konfigurasi Anda](/docs/id/debug-your-config) untuk perintah inspeksi dan tabel pencarian berdasarkan gejala.
1522 1522
1523<h2 id="application-data">1523<h2 id="application-data">
1524 Data aplikasi1524 Data aplikasi
1530 Dibersihkan secara otomatis1530 Dibersihkan secara otomatis
1531</h3>1531</h3>
1532 1532
15331533File di jalur di bawah dihapus saat startup setelah berusia lebih dari [`cleanupPeriodDays`](/id/settings#available-settings). Default adalah 30 hari.File di jalur di bawah dihapus saat startup setelah berusia lebih dari [`cleanupPeriodDays`](/docs/id/settings#available-settings). Default adalah 30 hari.
1534 1534
1535| Jalur di bawah `~/.claude/` | Konten |1535| Jalur di bawah `~/.claude/` | Konten |
1536| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1536| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1537| `projects/<project>/<session>.jsonl` | Transkrip percakapan lengkap: setiap pesan, tool call, dan tool result |1537| `projects/<project>/<session>.jsonl` | Transkrip percakapan lengkap: setiap pesan, tool call, dan tool result |
15381538| `projects/<project>/<session>/subagents/` | Transkrip percakapan [Subagent](/id/sub-agents), dihapus bersama transkrip sesi induk saat berusia || `projects/<project>/<session>/subagents/` | Transkrip percakapan [Subagent](/docs/id/sub-agents), dihapus bersama transkrip sesi induk saat berusia |
1539| `projects/<project>/<session>/tool-results/` | Output tool besar yang tumpah ke file terpisah |1539| `projects/<project>/<session>/tool-results/` | Output tool besar yang tumpah ke file terpisah |
15401540| `file-history/<session>/` | Snapshot pra-edit file yang diubah Claude, digunakan untuk [checkpoint restore](/id/checkpointing). Menyimpan snapshot untuk 100 checkpoint terbaru; file snapshot yang tidak direferensikan oleh checkpoint yang dipertahankan dihapus, kecuali snapshot pertama setiap file || `file-history/<session>/` | Snapshot pra-edit file yang diubah Claude, digunakan untuk [checkpoint restore](/docs/id/checkpointing). Menyimpan snapshot untuk 100 checkpoint terbaru; file snapshot yang tidak direferensikan oleh checkpoint yang dipertahankan dihapus, kecuali snapshot pertama setiap file |
15411541| `plans/` | File rencana yang ditulis selama [plan mode](/id/permission-modes#analyze-before-you-edit-with-plan-mode) || `plans/` | File rencana yang ditulis selama [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) |
1542| `debug/` | Log debug per-sesi, ditulis hanya saat Anda memulai dengan `--debug` atau menjalankan `/debug` |1542| `debug/` | Log debug per-sesi, ditulis hanya saat Anda memulai dengan `--debug` atau menjalankan `/debug` |
1543| `paste-cache/`, `image-cache/` | Konten paste besar dan gambar yang dilampirkan |1543| `paste-cache/`, `image-cache/` | Konten paste besar dan gambar yang dilampirkan |
1544| `session-env/` | Metadata lingkungan per-sesi |1544| `session-env/` | Metadata lingkungan per-sesi |
1545| `tasks/` | Daftar tugas per-sesi yang ditulis oleh task tools |1545| `tasks/` | Daftar tugas per-sesi yang ditulis oleh task tools |
15461546| `shell-snapshots/` | Alias, fungsi, dan opsi shell yang ditangkap saat startup dan diterapkan oleh [Bash tool](/id/tools-reference#bash-tool-behavior) ke setiap perintah. Dihapus saat keluar dengan bersih. Sweep membersihkan yang tertinggal setelah crash. || `shell-snapshots/` | Alias, fungsi, dan opsi shell yang ditangkap saat startup dan diterapkan oleh [Bash tool](/docs/id/tools-reference#bash-tool-behavior) ke setiap perintah. Dihapus saat keluar dengan bersih. Sweep membersihkan yang tertinggal setelah crash. |
1547| `backups/` | Salinan `~/.claude.json` dengan stempel waktu yang diambil sebelum migrasi konfigurasi |1547| `backups/` | Salinan `~/.claude.json` dengan stempel waktu yang diambil sebelum migrasi konfigurasi |
1548| `feedback-bundles/` | Arsip transkrip yang disunting ditulis oleh `/feedback` pada penyedia pihak ketiga atau saat tidak ada kredensial Anthropic yang dikonfigurasi, untuk dikirim ke tim akun Anthropic Anda |1548| `feedback-bundles/` | Arsip transkrip yang disunting ditulis oleh `/feedback` pada penyedia pihak ketiga atau saat tidak ada kredensial Anthropic yang dikonfigurasi, untuk dikirim ke tim akun Anthropic Anda |
1549| `todos/`, `statsig/`, `logs/` | Direktori warisan dari versi yang lebih lama. Tidak lagi ditulis. Sweep menghapus kontennya dan kemudian direktori kosong. |1549| `todos/`, `statsig/`, `logs/` | Direktori warisan dari versi yang lebih lama. Tidak lagi ditulis. Sweep menghapus kontennya dan kemudian direktori kosong. |
1558| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1558| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1559| `history.jsonl` | Setiap prompt yang Anda ketik, dengan timestamp dan jalur proyek. Digunakan untuk recall panah atas. |1559| `history.jsonl` | Setiap prompt yang Anda ketik, dengan timestamp dan jalur proyek. Digunakan untuk recall panah atas. |
1560| `stats-cache.json` | Hitungan token dan biaya agregat yang ditampilkan oleh `/usage` |1560| `stats-cache.json` | Hitungan token dan biaya agregat yang ditampilkan oleh `/usage` |
15611561| `remote-settings.json` | Salinan cache dari [pengaturan yang dikelola server](/id/server-managed-settings) untuk organisasi Anda. Hanya ada saat organisasi Anda telah mengonfigurasinya. Disegarkan pada setiap peluncuran. || `remote-settings.json` | Salinan cache dari [pengaturan yang dikelola server](/docs/id/server-managed-settings) untuk organisasi Anda. Hanya ada saat organisasi Anda telah mengonfigurasinya. Disegarkan pada setiap peluncuran. |
1562 1562
1563File cache dan lock kecil lainnya muncul tergantung fitur mana yang Anda gunakan dan aman untuk dihapus.1563File cache dan lock kecil lainnya muncul tergantung fitur mana yang Anda gunakan dan aman untuk dihapus.
1564 1564
1569Transkrip dan riwayat tidak dienkripsi saat istirahat. Izin file OS adalah satu-satunya perlindungan. Jika tool membaca file `.env` atau perintah mencetak kredensial, nilai itu ditulis ke `projects/<project>/<session>.jsonl`. Untuk mengurangi paparan:1569Transkrip dan riwayat tidak dienkripsi saat istirahat. Izin file OS adalah satu-satunya perlindungan. Jika tool membaca file `.env` atau perintah mencetak kredensial, nilai itu ditulis ke `projects/<project>/<session>.jsonl`. Untuk mengurangi paparan:
1570 1570
1571* Turunkan `cleanupPeriodDays` untuk mempersingkat berapa lama transkrip disimpan1571* Turunkan `cleanupPeriodDays` untuk mempersingkat berapa lama transkrip disimpan
15721572* Atur variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/id/env-vars) untuk melewati penulisan transkrip dan riwayat prompt dalam mode apa pun. Dalam mode non-interaktif, Anda dapat meneruskan `--no-session-persistence` bersama `-p`, atau atur `persistSession: false` di Agent SDK.* Atur variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) untuk melewati penulisan transkrip dan riwayat prompt dalam mode apa pun. Dalam mode non-interaktif, Anda dapat meneruskan `--no-session-persistence` bersama `-p`, atau atur `persistSession: false` di Agent SDK.
15731573* Gunakan [aturan izin](/id/permissions) untuk menolak pembacaan file kredensial* Gunakan [aturan izin](/docs/id/permissions) untuk menolak pembacaan file kredensial
1574 1574
1575<h3 id="clear-local-data">1575<h3 id="clear-local-data">
1576 Hapus data lokal1576 Hapus data lokal
1627 Sumber daya terkait1627 Sumber daya terkait
1628</h2>1628</h2>
1629 1629
16301630* [Kelola memory Claude](/id/memory): tulis dan atur CLAUDE.md, rules, dan auto memory* [Kelola memory Claude](/docs/id/memory): tulis dan atur CLAUDE.md, rules, dan auto memory
16311631* [Konfigurasi settings](/id/settings): atur izin, hooks, variabel lingkungan, dan default model* [Konfigurasi settings](/docs/id/settings): atur izin, hooks, variabel lingkungan, dan default model
16321632* [Buat skills](/id/skills): bangun prompt dan workflow yang dapat digunakan kembali* [Buat skills](/docs/id/skills): bangun prompt dan workflow yang dapat digunakan kembali
16331633* [Konfigurasi subagents](/id/sub-agents): tentukan agen khusus dengan konteks mereka sendiri* [Konfigurasi subagents](/docs/id/sub-agents): tentukan agen khusus dengan konteks mereka sendiri