Every Claude conversation starts blank. Close the tab, open a new one, and Claude has no idea who you are or what you were working on. This isn't a bug — it's by design. Claude's context window is stateless.
The question is: how do you share your context across conversations without pasting the same information into every new chat?
Custom instructions persist across all conversations. You fill in a text box in Settings, and Claude gets that text prepended to every session. It works for stable, short information: your name, role, output preferences.
The limits: 1,500 characters (roughly 350 words), and it's static. You can't update it from within a conversation. If you want Claude to know about your current project, you have to manually edit the settings page every time something changes.
Projects let you upload files and have conversations in that context. Better for longer, more structured information — but limited to 5 uploaded files per project, one project at a time, and no way for Claude to search across projects or update the files.
MCP connectors give Claude a live data source it can query. You store your context in a structured record store, and Claude fetches it on demand. The context is searchable, updatable, and available across every conversation.
Stash is a hosted MCP server built for this. Setup: sign in with Google at stashlite.com → copy your connector URL → paste into Claude Settings → Integrations.
Once connected, Claude has a context() tool that returns your standing context — role, current projects, preferences, open threads — in a single call costing ~150 tokens.
// Who you are I'm a senior engineer at a fintech startup. Team: payments infrastructure, 6 people. I report to the CTO. // What you're working on Current project: migrating from one database version to a newer one (target: end of Q2). Open task: write rollback plan for the migration. Blocked by: SRE review (waiting on Sam). // How you like to work Default: terse answers with code examples. For architecture decisions: give me options with trade-offs. Skip preamble. Start with the answer.
You store this once — and Claude can retrieve it in any conversation with a single tool call.
When something changes, just tell Claude in your current session:
Update my context: migration is done, now focused on the observability stack. → Claude adds a record to your context collection
The next conversation picks it up automatically.
The real power is running parallel work threads — different projects, different modes of work — with Claude always knowing which thread you're in.
// context collection Role: product manager Work: shipping new pricing page (see projects/pricing) Learning: reading "Obviously Awesome" by April Dunford (ch.4) // projects/pricing collection Background: current page converts 2.1%, target 3.5% Last session: agreed on layout, now need copy review Open Q: where does the comparison table go? // learning collection Chapter 4 notes: competitive alternatives framing...
When you start a session focused on pricing, run:
context()
find("pricing", collection="projects/pricing")
When you want to pick up your reading:
find("Obviously Awesome", collection="learning")
Claude knows exactly where you left off, without you manually briefing it.
context() + one find() ≈ 300–400 tokens. Pasting equivalent notes manually: 1,500–3,000 tokens. You get better, more organised context at a fraction of the cost.
Stash is currently single-user — each account has its own store. Shared team memory is on the roadmap. If you're working with colleagues who all use Claude, the current pattern is: each person maintains their own context, and shared knowledge (meeting decisions, project state) gets saved to everyone's store when it's relevant.
context()Your context is now shared across every Claude conversation. No copy-pasting, no re-briefing.
Free tier: 2,500 records, 50 queries/month. No card required.
Get your connector URL →