Control which files mesa keeps locally vs. uploads to VCS.
Mesa uses a .mesaignore file to decide which files stay in local ephemeral storage and which are uploaded to
your repository. Files matching .mesaignore patterns are never uploaded — no blob upload, no tree mutation, no
ref update. They behave like normal files while the daemon is running but disappear on restart.This is useful for editor scratch files (swap files, lock files), OS metadata (.DS_Store), and other files
that should never be committed.
When the mesa daemon starts, it reads a single .mesaignore file and compiles the patterns into a matcher.
Every file write is checked against these patterns:
Match → file is routed to ephemeral storage (local only, lost on restart)
No match → file is uploaded to VCS (persisted in the repository)
The .mesaignore file uses gitignore syntax — the same
pattern format you already know from .gitignore.
Changes take effect on the next daemon restart (mesa mount). The file is the sole source of ignore rules —
there are no hidden defaults layered underneath. If you remove a pattern, that file type will be uploaded to VCS.
The .mesaignore applies globally to all repositories mounted through mesa. For per-repo ignore rules,
use the standard .gitignore inside each repository.
The pattern !.mesaignore is always enforced by the daemon, even if you remove it from your file. This prevents
you from accidentally ignoring your own configuration file.
If no .mesaignore file exists on disk, the daemon falls back to compiled-in defaults (the same patterns written
on first run). To operate with no ignore rules, create an empty .mesaignore file.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Mesa Docs","description":"A programmable storage layer and virtual filesystem for AI agents.","colors":{"primary":"#2D5A27","light":"#3A7A32","dark":"#234A1E"},"logo":{"light":"https://mintcdn.com/mesa/UqclTqQUBNQwQKCx/assets/mesa-logo.png?fit=max\u0026auto=format\u0026n=UqclTqQUBNQwQKCx\u0026q=85\u0026s=1632f70d3927b0309e73e5aa930a8c68","dark":"https://mintcdn.com/mesa/UqclTqQUBNQwQKCx/assets/mesa-logo-dark.png?fit=max\u0026auto=format\u0026n=UqclTqQUBNQwQKCx\u0026q=85\u0026s=003cdbbbaf4a2329c88ab65fc7b697df"},"favicon":"https://mintcdn.com/mesa/UqclTqQUBNQwQKCx/assets/mesa-favicon.png?fit=max\u0026auto=format\u0026n=UqclTqQUBNQwQKCx\u0026q=85\u0026s=81c5abe1a0dd865ffaea0dfc4c7ad748","background":{"color":{"light":"#F8F5F0","dark":"#1A1918"}},"navbar":{"links":[{"icon":"discord","href":"https://discord.com/invite/2vvEJFrCHV","label":""},{"icon":"github","href":"https://github.com/mesa-dot-dev/examples","label":""}],"primary":{"type":"button","label":"Dashboard","href":"https://app.mesa.dev"}},"footer":{"socials":{"x":"https://x.com/mesa","linkedin":"https://www.linkedin.com/company/mesa","github":"https://github.com/mesa-dot-dev"},"links":[{"header":"Product","items":[{"label":"Depot","href":"https://app.mesa.dev"}]},{"header":"Resources","items":[{"label":"TypeScript SDK on npm","href":"https://www.npmjs.com/package/@mesadev/sdk"},{"label":"TypeScript REST SDK on npm","href":"https://www.npmjs.com/package/@mesadev/rest"},{"label":"Python SDK on PyPI","href":"https://pypi.org/project/mesa-sdk"},{"label":"GitHub","href":"https://github.com/mesa-dot-dev/examples"}]}]},"fonts":{"heading":{"family":"IBM Plex Sans","weight":600},"body":{"family":"IBM Plex Sans","weight":400}},"icons":{"library":"fontawesome"},"integrations":{"telemetry":{"enabled":true}},"errors":{"404":{"redirect":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mesa","hasAudioNarration":false,"actualSubdomain":"mesa","customDomains":["docs.mesa.dev"],"gitSource":{"type":"github","owner":"mesa-dot-dev","repo":"depot","deployBranch":"docs-production","contentDirectory":"packages/docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae4df07dc81b0e62a5bdef0","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API Reference","count":95},{"language":"default","tag":"TS/JS SDK","count":32},{"language":"default","tag":"TS/JS SDK Reference","count":32},{"language":"default","tag":"Python SDK","count":31},{"language":"default","tag":"Python SDK Reference","count":31},{"language":"default","tag":"HTTP API","count":29},{"language":"default","tag":"REST API","count":29},{"language":"default","tag":"Endpoints","count":28},{"language":"default","tag":"Docs","count":26},{"language":"default","tag":"Repositories","count":16}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"a:has(>.nav-logo){display:flex!important;align-items:center!important}a:has(>.nav-logo)::after{content:\"Mesa Docs\";font-family:\"IBM Plex Sans\", sans-serif;font-weight:600;font-size:1.375rem;margin-left:0.5rem;white-space:nowrap;color:rgb(28 28 28)}html.dark a:has(>.nav-logo)::after{color:rgb(232 237 245)}.rounded-2xl,.rounded-xl,.rounded-lg,.rounded-md,.rounded-full{border-radius:4px!important}.code-group [data-component-part=\"code-block-root\"],[data-component-part=\"code-block-root\"]:has([data-component-part=\"code-group-tab-content\"]){border-radius:4px!important}[data-component-part=\"code-block-root\"] pre,[data-component-part=\"code-block-root\"] pre code{font-family:\"Noto Sans Mono\", \"IBM Plex Mono\", ui-monospace, SFMono-Regular,\n Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace!important;line-height:1.5!important;letter-spacing:0!important;font-variant-ligatures:none;font-feature-settings:\"liga\" 0, \"calt\" 0;font-kerning:none}.light [data-component-part=\"code-block-root\"],.light [data-component-part=\"code-group-tab-content\"],.light .prose :where(pre),.light .prose-sm :where(pre){background-color:rgb(235 229 219)!important;border-color:rgb(207 196 181)!important}.light [data-component-part=\"code-block-root\"] pre,.light [data-component-part=\"code-block-root\"] pre code,.light .prose :where(pre,pre code),.light .prose-sm :where(pre,pre code){background-color:rgb(235 229 219)!important;color:rgb(31 27 22)!important}.light .prose :where(code):not(:where(pre code)),.light .prose-sm :where(code):not(:where(pre code)){background-color:rgb(235 229 219)!important;color:rgb(31 27 22)!important;border:1px solid rgb(207 196 181)!important;padding:0.05rem 0.2rem!important}html:not(.dark) .code-block [data-fade-overlay=\"true\"],.light .code-block [data-fade-overlay=\"true\"]{--fade-color-light: rgb(235 229 219) !important;background:linear-gradient(to right, rgb(235 229 219 / 0), rgb(235 229 219))!important}.prose :where(strong,b),.prose-sm :where(strong,b){font-weight:600!important}.light .border-gray-100{border-color:rgb(229 231 235)!important}.sidebar-group-header{font-size:0.9rem!important}.light .prose,.light .prose-sm{color:rgb(45 42 38)!important}.light .prose :where(p,li,td,th,blockquote,span[data-as=\"p\"]),.light .prose-sm :where(p,li,td,th,blockquote,span[data-as=\"p\"]){color:rgb(45 42 38)!important}.light .prose :where(h1,h2,h3,h4,h5,h6,strong),.light .prose-sm :where(h1,h2,h3,h4,h5,h6,strong){color:rgb(20 19 17)!important}.light .prose :where(a),.light .prose-sm :where(a){color:rgb(35 74 30)!important}.light .text-gray-400,.light .text-slate-400,.light .text-zinc-400,.light .text-neutral-400{color:rgb(91 84 76)!important}.light .text-gray-500,.light .text-slate-500,.light .text-zinc-500,.light .text-neutral-500{color:rgb(78 72 65)!important}.light .text-gray-600,.light .text-slate-600,.light .text-zinc-600,.light .text-neutral-600{color:rgb(55 51 46)!important}.light .text-gray-700,.light .text-slate-700,.light .text-zinc-700,.light .text-neutral-700{color:rgb(35 32 29)!important}html.dark .prose,html.dark .prose-sm{color:rgb(194 202 214)!important}html.dark .prose :where(p,li,td,th,blockquote,span[data-as=\"p\"]),html.dark .prose-sm :where(p,li,td,th,blockquote,span[data-as=\"p\"]){color:rgb(194 202 214)!important}html.dark .prose :where(h1,h2,h3,h4,h5,h6,strong),html.dark .prose-sm :where(h1,h2,h3,h4,h5,h6,strong){color:rgb(232 237 245)!important}html.dark .dark\\:text-gray-400,html.dark .text-gray-400{color:rgb(186 193 204)!important}html.dark .dark\\:text-gray-500,html.dark .text-gray-500{color:rgb(158 166 179)!important}[data-component-part=\"step-number\"]>div{background-color:#2D5A27!important;color:#fff!important;font-weight:600!important;border-radius:9999px!important}html.dark [data-component-part=\"step-number\"]>div{background-color:#3A7A32!important;color:#fff!important}"}],"page":{"pagePath":"content/mesafs/advanced/mesaignore","slug":"/content/mesafs/advanced/mesaignore","pageMetadata":{"title":".mesaignore","sidebarTitle":".mesaignore","description":"Control which files mesa keeps locally vs. uploads to VCS.","href":"/content/mesafs/advanced/mesaignore"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Control which files mesa keeps locally vs. uploads to VCS.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Mesa uses a `,_jsx(_components.code,{children:`.mesaignore`}),` file to decide which files stay in local ephemeral storage and which are uploaded to\nyour repository. Files matching `,_jsx(_components.code,{children:`.mesaignore`}),` patterns are never uploaded — no blob upload, no tree mutation, no\nref update. They behave like normal files while the daemon is running but disappear on restart.`]}),`\n`,_jsxs(_components.p,{children:[`This is useful for editor scratch files (swap files, lock files), OS metadata (`,_jsx(_components.code,{children:`.DS_Store`}),`), and other files\nthat should never be committed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.p,{children:[`When the mesa daemon starts, it reads a single `,_jsx(_components.code,{children:`.mesaignore`}),` file and compiles the patterns into a matcher.\nEvery file write is checked against these patterns:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Match`}),` → file is routed to ephemeral storage (local only, lost on restart)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No match`}),` → file is uploaded to VCS (persisted in the repository)`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`.mesaignore`}),` file uses `,_jsx(_components.a,{href:`https://git-scm.com/docs/gitignore#_pattern_format`,children:`gitignore syntax`}),` — the same\npattern format you already know from `,_jsx(_components.code,{children:`.gitignore`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`file-location`,children:`File location`}),`\n`,_jsxs(_components.p,{children:[`Point Mesa at a `,_jsx(_components.code,{children:`.mesaignore`}),` file with the `,_jsx(_components.code,{children:`MESA_MESAIGNORE_PATH`}),` environment variable:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`MESA_MESAIGNORE_PATH`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`~/.config/mesa/.mesaignore`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` mesa`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mount`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`If `,_jsx(_components.code,{children:`MESA_MESAIGNORE_PATH`}),` is not set, Mesa uses its built-in default rules.`]}),`\n`,_jsx(Heading,{level:`2`,id:`customizing`,children:`Customizing`}),`\n`,_jsx(_components.p,{children:`Edit the file directly:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$EDITOR`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ~`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/.config/mesa/.mesaignore`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Changes take effect on the next daemon restart (`,_jsx(_components.code,{children:`mesa mount`}),`). The file is the `,_jsx(_components.strong,{children:`sole source of ignore rules`}),` —\nthere are no hidden defaults layered underneath. If you remove a pattern, that file type will be uploaded to VCS.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`.mesaignore`}),` applies globally to `,_jsx(_components.strong,{children:`all repositories`}),` mounted through mesa. For per-repo ignore rules,\nuse the standard `,_jsx(_components.code,{children:`.gitignore`}),` inside each repository.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`resetting-to-defaults`,children:`Resetting to defaults`}),`\n`,_jsx(_components.p,{children:`To restore the default patterns:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mesa`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dump-default-mesaignore`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/.config/mesa/.mesaignore`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`viewing-current-rules`,children:`Viewing current rules`}),`\n`,_jsx(_components.p,{children:`To see what patterns are active:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ~/.config/mesa/.mesaignore`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`To see the built-in defaults (useful for diffing against your customizations):`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mesa`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` dump-default-mesaignore`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`safety-guard`,children:`Safety guard`}),`\n`,_jsxs(_components.p,{children:[`The pattern `,_jsx(_components.code,{children:`!.mesaignore`}),` is always enforced by the daemon, even if you remove it from your file. This prevents\nyou from accidentally ignoring your own configuration file.`]}),`\n`,_jsx(Heading,{level:`2`,id:`fallback-behavior`,children:`Fallback behavior`}),`\n`,_jsxs(_components.p,{children:[`If no `,_jsx(_components.code,{children:`.mesaignore`}),` file exists on disk, the daemon falls back to compiled-in defaults (the same patterns written\non first run). To operate with no ignore rules, create an empty `,_jsx(_components.code,{children:`.mesaignore`}),` file.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":".mesaignore","sidebarTitle":".mesaignore","description":"Control which files mesa keeps locally vs. uploads to VCS.","href":"/content/mesafs/advanced/mesaignore"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"File location","slug":"file-location","depth":2,"children":[]},{"title":"Customizing","slug":"customizing","depth":2,"children":[]},{"title":"Resetting to defaults","slug":"resetting-to-defaults","depth":2,"children":[]},{"title":"Viewing current rules","slug":"viewing-current-rules","depth":2,"children":[]},{"title":"Safety guard","slug":"safety-guard","depth":2,"children":[]},{"title":"Fallback behavior","slug":"fallback-behavior","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"mesa","siteName":"Mesa Docs","title":".mesaignore - Mesa Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-03T16:51:03.071Z","originalFileLocation":"content/mesafs/advanced/mesaignore.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Control which files mesa keeps locally vs. uploads to VCS.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mesa Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\".mesaignore - Mesa Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Control which files mesa keeps locally vs. uploads to VCS.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mesa Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mesa.mintlify.site/_mintlify/api/og/v2?division=Advanced\u0026amp;title=.mesaignore\u0026amp;description=Control+which+files+mesa+keeps+locally+vs.+uploads+to+VCS.\u0026amp;theme=6e2bbc1f0f4138fd2c2069e7\u0026amp;signature=930d343d1f18f3fb9ed14e9e25db7271181e38e47e84c667c0e23b43190d7a0b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\".mesaignore - Mesa Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Control which files mesa keeps locally vs. uploads to VCS.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mesa.mintlify.site/_mintlify/api/og/v2?division=Advanced\u0026amp;title=.mesaignore\u0026amp;description=Control+which+files+mesa+keeps+locally+vs.+uploads+to+VCS.\u0026amp;theme=6e2bbc1f0f4138fd2c2069e7\u0026amp;signature=930d343d1f18f3fb9ed14e9e25db7271181e38e47e84c667c0e23b43190d7a0b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/mesa/KPm0NPrxB1Q8JHsu/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mesa Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2D5A27\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/content/mesafs/advanced/mesaignore.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mesa.dev/#organization\",\"name\":\"Mesa Docs\",\"url\":\"https://docs.mesa.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mesa/UqclTqQUBNQwQKCx/assets/mesa-logo.png?fit=max\u0026auto=format\u0026n=UqclTqQUBNQwQKCx\u0026q=85\u0026s=1632f70d3927b0309e73e5aa930a8c68\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mesa.dev#website\",\"name\":\"Mesa Docs\",\"url\":\"https://docs.mesa.dev\",\"publisher\":{\"@id\":\"https://docs.mesa.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore#webpage\",\"url\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore\",\"name\":\".mesaignore\",\"description\":\"Control which files mesa keeps locally vs. uploads to VCS.\",\"dateModified\":\"2026-09-03T16:51:03.071Z\",\"isPartOf\":{\"@id\":\"https://docs.mesa.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"MesaFS\",\"item\":\"https://docs.mesa.dev/content/mesafs/posix-mount\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced\",\"item\":\"https://docs.mesa.dev/content/mesafs/advanced/realtime\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\".mesaignore\",\"item\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore#article\",\"headline\":\".mesaignore\",\"name\":\".mesaignore\",\"description\":\"Control which files mesa keeps locally vs. uploads to VCS.\",\"url\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mesa.dev/content/mesafs/advanced/mesaignore#webpage\"},\"dateModified\":\"2026-09-03T16:51:03.071Z\",\"publisher\":{\"@id\":\"https://docs.mesa.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mesa.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mesa Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Mesa Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/content/mesafs/advanced/mesaignore.md","siteName":"Mesa Docs","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"book-open","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","icon":"map","href":"/content/getting-started/introduction"},{"title":"Quickstart","icon":"bolt","href":"/content/getting-started/quickstart"}]},{"group":"Concepts","pages":[{"title":"Versioning","icon":"code-branch","href":"/content/concepts/versioning"},{"title":"Filesystem","icon":"folder-tree","href":"/content/concepts/filesystem"},{"title":"Organizations","icon":"users","href":"/content/concepts/organizations"},{"title":"Authentication","icon":"key","href":"/content/concepts/authentication"},{"title":"Webhooks","icon":"bell","href":"/content/concepts/webhooks"}]},{"group":"Reference","pages":[{"title":"Authentication reference","href":"/content/reference/authentication"},{"title":"Mesa CLI Configuration","sidebarTitle":"Configuration","href":"/content/reference/mesa-cli-configuration"},{"title":"Limits","href":"/content/reference/limits"}]},{"group":"MesaFS","pages":[{"title":"POSIX Mount","sidebarTitle":"POSIX Mount","icon":"hard-drive","href":"/content/mesafs/posix-mount"},{"title":"App Mount","sidebarTitle":"App Mount","icon":"terminal","href":"/content/mesafs/app-mount"},{"title":"Layouts","sidebarTitle":"Layouts","icon":"sitemap","href":"/content/mesafs/layouts"},{"group":"Advanced","icon":"sliders","pages":[{"title":"Realtime","sidebarTitle":"Realtime","href":"/content/mesafs/advanced/realtime"},{"title":"Prefetching","description":"How mesa loads your repository in the background to reduce sandbox startup time.","href":"/content/mesafs/advanced/prefetching"},{"title":".mesaignore","sidebarTitle":".mesaignore","href":"/content/mesafs/advanced/mesaignore"}]}]},{"group":"Usage Patterns","pages":[{"title":"Overview","description":"Recommended patterns for using Mesa in agent products.","icon":"map","href":"/content/usage-patterns/overview"}]},{"group":"Integrations","pages":[{"group":"Sandboxes","icon":"cloud","expanded":false,"pages":[{"title":"Daytona","href":"/content/integrations/sandboxes/daytona"},{"title":"E2B","href":"/content/integrations/sandboxes/e2b"},{"title":"Superserve","href":"/content/integrations/sandboxes/superserve"},{"title":"Vercel","href":"/content/integrations/sandboxes/vercel"},{"title":"Freestyle","href":"/content/integrations/sandboxes/freestyle"},{"title":"Blaxel","href":"/content/integrations/sandboxes/blaxel"},{"title":"Sprites","href":"/content/integrations/sandboxes/sprites"},{"title":"Modal","href":"/content/integrations/sandboxes/modal"},{"title":"Cloudflare","href":"/content/integrations/sandboxes/cloudflare"}]},{"title":"GitHub","icon":"github","iconType":"brands","href":"/content/integrations/github/sync"}]}]},{"tab":"API Reference","icon":"code","menu":[{"item":"TS/JS SDK","icon":"js","pages":[{"title":"TS/JS SDK","href":"/content/reference/ts"}]},{"item":"Python SDK","icon":"python","pages":[{"title":"Python SDK","href":"/content/reference/py"}]},{"item":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/content/reference/cli-overview"}]},{"item":"HTTP API","icon":"code","pages":[{"title":"HTTP API","href":"/content/api-reference/overview"}]}],"pages":[{"title":"API Reference","href":"/content/reference/ts"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/content/changelog/rest-api"}]},{"tab":"Examples","icon":"flask","href":"https://github.com/mesa-dot-dev/examples"}]},"basePath":"","title":".mesaignore - Mesa Docs","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}