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 your Google profile picture, and use them to show who is signed in and to track your Default Agent credits. Authentication is handled by Supabase. 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 model demos. Four pages can send what you type to a server, and nothing else on the site does: 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; 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.

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.