Captured events can contain prompts, commands, file paths, tool arguments, tool results, and final responses. Do not commit or share the SQLite database casually.
Before persistence, Termyte checks structured secret-like keys and common text patterns such as private keys, bearer tokens, JWTs, GitHub tokens, AWS access keys, and API-key assignments. It stores whether redaction was applied and which rule matched.Redaction is based on known keys and text patterns. It is a safety net, not a guarantee. Unusual credentials or sensitive business data may remain. Termyte is not a secret scanner or a sandbox.
Setup explains when captured content can leave the machine. Memory processing uses the selected Claude Code, Codex, or OpenCode service through a non-interactive CLI invocation, or calls an OpenAI-compatible endpoint. Redaction runs before trace-derived content enters that path.Local embeddings run on the machine, although model files may be downloaded first.
Durable jobs, leases, retries, and replay protection help Termyte survive interrupted processing. They do not replace a backup of the database.
⌘I
{"docsConfig":{"theme":"willow","$schema":"https://mintlify.com/docs.json","name":"Termyte","description":"Local continuity for coding work","colors":{"primary":"#0f172a","light":"#3493e0","dark":"#3493e0"},"favicon":"https://mintcdn.com/causalos/dVw9XgP212QfdtWV/favicon.svg?fit=max\u0026auto=format\u0026n=dVw9XgP212QfdtWV\u0026q=85\u0026s=c5e799f3abb3d296307b04ec6df014fd","navbar":{"links":[{"href":"https://github.com/termyte-labs/termyte/issues","label":"Support"}],"primary":{"type":"button","label":"Install Termyte","href":"/quickstart"}},"footer":{"socials":{"github":"https://github.com/termyte-labs/termyte"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/termyte-labs/termyte"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"causalos","hasAudioNarration":false,"actualSubdomain":"causalos","customDomains":["docs.termyte.xyz"],"gitSource":{"type":"github","owner":"palguna26","repo":"causal-os-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae955136c00b4612db8d5a0:success","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Use Termyte","count":10},{"language":"default","tag":"Understand Termyte","count":5},{"language":"default","tag":"How It Works","count":5},{"language":"default","tag":"Daily Work","count":5},{"language":"default","tag":"Integrations","count":5},{"language":"default","tag":"Reference","count":5},{"language":"default","tag":"Get Started","count":4},{"language":"default","tag":"Start Here","count":4},{"language":"default","tag":"Product Reference","count":3},{"language":"default","tag":"Help","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":[],"page":{"pagePath":"concepts/security","slug":"/concepts/security","pageMetadata":{"title":"Security and privacy","description":"Understand redaction, local storage, and provider boundaries.","href":"/concepts/security"},"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: \"Understand redaction, local storage, and provider boundaries.\"\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={p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`security-and-privacy`,children:`Security and privacy`}),`\n`,_jsx(Heading,{level:`2`,id:`treat-the-database-as-sensitive`,children:`Treat the database as sensitive`}),`\n`,_jsx(_components.p,{children:`Captured events can contain prompts, commands, file paths, tool arguments, tool results, and final responses. Do not commit or share the SQLite database casually.`}),`\n`,_jsx(Heading,{level:`2`,id:`redaction`,children:`Redaction`}),`\n`,_jsx(_components.p,{children:`Before persistence, Termyte checks structured secret-like keys and common text patterns such as private keys, bearer tokens, JWTs, GitHub tokens, AWS access keys, and API-key assignments. It stores whether redaction was applied and which rule matched.`}),`\n`,_jsx(_components.p,{children:`Redaction is based on known keys and text patterns. It is a safety net, not a guarantee. Unusual credentials or sensitive business data may remain. Termyte is not a secret scanner or a sandbox.`}),`\n`,_jsx(Heading,{level:`2`,id:`provider-calls`,children:`Provider calls`}),`\n`,_jsx(_components.p,{children:`Setup explains when captured content can leave the machine. Memory processing uses the selected Claude Code, Codex, or OpenCode service through a non-interactive CLI invocation, or calls an OpenAI-compatible endpoint. Redaction runs before trace-derived content enters that path.`}),`\n`,_jsx(_components.p,{children:`Local embeddings run on the machine, although model files may be downloaded first.`}),`\n`,_jsx(Heading,{level:`2`,id:`local-services`,children:`Local services`}),`\n`,_jsx(_components.p,{children:`The Viewer binds to the local machine by default. The MCP server communicates over stdin and stdout rather than opening a port.`}),`\n`,_jsx(Heading,{level:`2`,id:`recovery-is-not-backup`,children:`Recovery is not backup`}),`\n`,_jsx(_components.p,{children:`Durable jobs, leases, retries, and replay protection help Termyte survive interrupted processing. They do not replace a backup of the database.`})]})}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":"Security and privacy","description":"Understand redaction, local storage, and provider boundaries.","href":"/concepts/security"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Security and privacy","slug":"security-and-privacy","depth":1,"children":[]},{"title":"Treat the database as sensitive","slug":"treat-the-database-as-sensitive","depth":2,"children":[]},{"title":"Redaction","slug":"redaction","depth":2,"children":[]},{"title":"Provider calls","slug":"provider-calls","depth":2,"children":[]},{"title":"Local services","slug":"local-services","depth":2,"children":[]},{"title":"Recovery is not backup","slug":"recovery-is-not-backup","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"causalos","siteName":"Termyte","title":"Security and privacy - Termyte","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-01T06:10:00.044Z","originalFileLocation":"concepts/security.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=\"Understand redaction, local storage, and provider boundaries.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Termyte\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_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/causalos/HKDchWbkSFV7EY0T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Security and privacy - Termyte\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand redaction, local storage, and provider boundaries.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Termyte\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.termyte.xyz/concepts/security\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://causalos.mintlify.site/_mintlify/api/og/v2?division=How+It+Works\u0026amp;title=Security+and+privacy\u0026amp;description=Understand+redaction%2C+local+storage%2C+and+provider+boundaries.\u0026amp;theme=67845c55313ac4d1a34a843c\u0026amp;signature=0aaf00ffa648c014a24ad68d22d78b30508c4d3755b33f99c7951c73bfab2f11\">\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=\"Security and privacy - Termyte\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand redaction, local storage, and provider boundaries.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://causalos.mintlify.site/_mintlify/api/og/v2?division=How+It+Works\u0026amp;title=Security+and+privacy\u0026amp;description=Understand+redaction%2C+local+storage%2C+and+provider+boundaries.\u0026amp;theme=67845c55313ac4d1a34a843c\u0026amp;signature=0aaf00ffa648c014a24ad68d22d78b30508c4d3755b33f99c7951c73bfab2f11\">\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/causalos/HKDchWbkSFV7EY0T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Termyte\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0f172a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.termyte.xyz/concepts/security\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/security.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.termyte.xyz/#organization\",\"name\":\"Termyte\",\"url\":\"https://docs.termyte.xyz\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.termyte.xyz#website\",\"name\":\"Termyte\",\"url\":\"https://docs.termyte.xyz\",\"publisher\":{\"@id\":\"https://docs.termyte.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.termyte.xyz/concepts/security#webpage\",\"url\":\"https://docs.termyte.xyz/concepts/security\",\"name\":\"Security and privacy\",\"description\":\"Understand redaction, local storage, and provider boundaries.\",\"dateModified\":\"2026-08-01T06:10:00.044Z\",\"isPartOf\":{\"@id\":\"https://docs.termyte.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.termyte.xyz/concepts/security#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.termyte.xyz/concepts/security#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How It Works\",\"item\":\"https://docs.termyte.xyz/concepts/architecture\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Security and privacy\",\"item\":\"https://docs.termyte.xyz/concepts/security\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.termyte.xyz/concepts/security#article\",\"headline\":\"Security and privacy\",\"name\":\"Security and privacy\",\"description\":\"Understand redaction, local storage, and provider boundaries.\",\"url\":\"https://docs.termyte.xyz/concepts/security\",\"mainEntityOfPage\":{\"@id\":\"https://docs.termyte.xyz/concepts/security#webpage\"},\"dateModified\":\"2026-08-01T06:10:00.044Z\",\"publisher\":{\"@id\":\"https://docs.termyte.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.termyte.xyz#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Termyte\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Termyte\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/concepts/security.md","siteName":"Termyte","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/termyte-labs/termyte"}]},"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Use Termyte","pages":[{"title":"Use Termyte","href":"/guides/inspect-data"}]},{"tab":"Understand Termyte","groups":[{"group":"How It Works","pages":[{"title":"How Termyte works","href":"/concepts/architecture"},{"title":"What Termyte stores","href":"/concepts/data-model"},{"title":"Local operation","description":"What Termyte keeps on your machine and when network calls can happen.","href":"/concepts/local-first"},{"title":"Security and privacy","href":"/concepts/security"},{"title":"Current limitations","description":"The boundaries of the current Termyte release.","href":"/concepts/limitations"}]}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/cli"}]}]},"basePath":"","title":"Security and privacy - Termyte","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}