Tenure for VS CodePersistent, cross-application AI memory. Connects your tools, agents, and interfaces with a shared, evolving understanding. Fully local and private. The workflow this unlocksYou spend an hour in OpenWebUI thinking through an architecture problem. You explore options, rule some out, land on a direction. Then you open VS Code to start building. Tenure is already there. It knows what you decided, what you rejected, and why. You don't re-explain anything. You just build. This works today. OpenWebUI, LibreChat, and any OpenAI-compatible chat client connect to Tenure by pointing at The problem it also solvesBeyond cross-interface continuity, Tenure fixes the way AI coding sessions break in practice, not dramatically, but through drift. A script gets renamed in The deeper issue is duplication. Anything that copies information already in your code or config will go stale. Anything that just points to that information tends to stay correct. Most Tenure doesn't duplicate. It learns. What this extension doesOn every file switch, it pushes your current workspace context: project name, active file, language, to Tenure so the proxy resolves the right project scope before your first message is sent. Without the extension, Tenure still works, it resolves scope from the first message. The extension makes it instant and accurate, especially across monorepos where the root name and the active package are different things. Don't have Tenure installed?The recommended install runs in a docker container the only thing it can touch on your machine is macOS / Linux:
Windows (PowerShell):
Your API token is saved to Prefer a one-liner? The shell scripts are still available, see the quickstart. Setup
That's it. The extension syncs automatically on every file switch. Which clients work with Tenure?Tenure works with any client where you control the base URL. That includes OpenWebUI, Cline, Continue, Windsurf, and any OpenAI-compatible chat interface. Point them at Cursor Pro and the Claude Code VS Code extension route through their own backends by default. Claude Code can be configured to route through an external proxy using claudeCode.disableLoginPrompt: true. Commands
Settings
Monorepo and multi-language supportThe extension walks upward from your active file looking for the nearest
project manifest — In a monorepo with If no manifest is found, the extension falls back to a stable slug derived from your workspace folder name so scope resolution never fails silently. Why not just use AGENTS.md or shared MCP memory?
Shared MCP memory across tools is mostly experimental. Memory one tool writes and another reads only works if both are disciplined about when to write and when to retrieve. In practice that coordination is not there yet. Tenure runs locally, outside any single tool, and uses a proxy layer that all your clients route through. The memory is written once and applied everywhere, without requiring each tool to implement the same retrieval discipline. Learn more |