StashBase is an open-source, local-first writing workspace made by StashBase Inc. Your files stay on your computer. Text leaves it only when you use an agent or turn on search by meaning, and this page says where it goes in each case. The desktop app and this website are covered separately.
The desktop app
Your files stay on your computer
StashBase opens folders where they already are. It does not upload, sync or copy them to a StashBase server, and removing a project from StashBase does not delete its files. Text prepared from PDFs, Word documents, images, audio and video, along with search indexes, is stored in the app's local storage on your machine. PDF text extraction and OCR run locally; the components they need are downloaded on first use.
Browsing, previewing, editing, file preparation and keyword search need no account.
What leaves your computer
Claude Code and Codex. StashBase runs these as the command-line tools installed on your computer. Your prompts and the file content the agent reads go from that tool to Anthropic or OpenAI, under the account you already have with them, and their privacy terms apply. This traffic does not pass through StashBase's servers.
Default Agent. The built-in fallback agent sends your prompts and the
context needed to answer them through StashBase's hosted model gateway
(api.stashbase.ai), which forwards them to DeepSeek. The gateway does not
log or store your prompts or the replies, and we do not use them for training. It
records only how much of your credit allowance each request used. DeepSeek processes
the request under its own
privacy policy,
which says it processes and stores data in the People's Republic of China. If that
does not suit your material, use Claude Code or Codex instead. The Default Agent
requires a StashBase account.
Search by meaning. Off by default. If you add your own OpenAI or OpenRouter key, the text being indexed and your search queries are sent to that provider to create embeddings. Keyword search never does this, and Default Agent credits do not cover it.
External MCP clients. A client you connect can read and edit only the project you explicitly select and authorize.
StashBase account
An account is only needed for the Default Agent. You sign in with Google. We receive your email address, a user ID and Google profile information. We use your name to show who is signed in and your user ID to track Default Agent credits; the website and app show initials instead of your Google profile picture. Authentication is handled by Supabase. If you sign in on this website, the browser stores your Supabase session locally; the Account menu uses it to show your email and remaining weekly Default Agent allowance. Signing out there ends only that browser session. To delete your account and its data, email bingwu@stashbase.ai; we delete it within 30 days.
Usage statistics
Official builds share basic usage statistics by default, sent to PostHog (US-hosted). You can turn this off at any time in Settings → General → Privacy → Share basic usage statistics; every feature works the same either way. Development builds do not send anything.
What is sent: a random installation ID, the app version, your operating system, and the time of a small fixed set of events. Those events are the app opening, a project opening or failing to open, an agent turn starting and finishing (which agent, whether it succeeded, and a rough duration band), a document save succeeding or failing (at most once per outcome per day), and agent setup succeeding or failing. The installation ID is not tied to your account or your hardware. It can link activity from one installation over time, so we do not call it anonymous. Each event asks PostHog to create no person profile, skip GeoIP lookup and record no IP address, and our PostHog project is set to discard client IP addresses, so they are not stored with events.
What is never sent: documents, prompts, replies, search terms, file names or paths, project names, repository URLs, account identity, API keys, raw error messages, logs, screenshots or clipboard contents. There is no click tracking, session replay or conversation tracing.
Turning statistics off deletes the local installation ID. Turning them back on creates a new one and never sends past activity. Events already received cannot be recalled. The full event list is in the app's usage statistics document.
Updates and crash reports
The app checks GitHub Releases for new versions and downloads updates from there, so GitHub sees your IP address when it does. StashBase has no crash reporting: nothing is sent when the app fails.
This website
stashbase.ai is a static site served through Cloudflare. We use Google Analytics 4 to count page views and a few actions: clicks on download buttons, which platform was chosen, clicks through to GitHub Releases and Discord, copying a code block, and sending a message or a draft in a model demo (that one was sent, never what it said). We do not run ads or sell data. The sign-in callback page does not load Google Analytics.
The model demos. Nine pages can send text you enter to a model server: the LinkedIn post generator, the Xiaohongshu converter, the X thread writer, the X reply writer and the PR launch post writer (all five described in the next paragraph), the Hemmingway-1 demo, the humanizer, the email writer, and Slop Score when you ask it for the editor's note. Slop Score works out the score itself in your browser and sends nothing to do that. Your conversation, or the draft or notes you paste, goes through our Cloudflare Worker to Hemmingway's API, which writes the reply. The Worker does not log or store the text, with one exception for now: it logs the notes sent to the email writer, with the tone and language picked, to see how the tool is used, and those logs are deleted within seven days. It uses your IP address only to limit how many requests one visitor can send in a minute. Hemmingway's privacy policy says API requests are not kept and that it logs token counts, timing and success, never content. The text itself lives in your browser tab and is gone when you close or reload it.
The LinkedIn, Xiaohongshu, X thread, X reply and PR launch-post tools. The notes, article, tweet or pull request you paste or link to go through our Cloudflare Worker to Anthropic's Claude API, which writes the post, note, thread or reply. When you give a tool a link, the Worker fetches it for you: a web page directly, a tweet through X's public oEmbed endpoint, and a GitHub pull request through GitHub's API (never with a token of yours, so a private repository still cannot be read). The Worker logs how long the text was, the options picked and how many tokens the call used, never the text or the result. It uses your IP address only to limit requests per minute. Without an account, your browser keeps a random ID in its local storage, and the Worker counts that ID's uses of each tool for the day. If you sign in, the Worker checks your session with Supabase and counts your uses by your account's user ID instead. Either count is deleted after two days. The example each page opens with is cached for ten minutes, so pressing the button on arrival does not call the model again; the PR launch-post tool is the one exception, since a pull request is one person's launch and is never cached. Anthropic's privacy policy covers what happens to API requests on its side, and X's privacy policy and GitHub's privacy statement cover the two fetches. What the tools write is kept in your browser's local storage so you can find it again, and you can clear it on the page.
Downloads are served from GitHub Releases, and the community is on Discord. Each has its own privacy policy.
Contact
StashBase Inc. For questions about privacy, or to see or delete your data, email bingwu@stashbase.ai.