惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
S
Schneier on Security
P
Proofpoint News Feed
The Cloudflare Blog
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园 - 【当耐特】
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
F
Fortinet All Blogs
宝玉的分享
宝玉的分享
博客园 - 聂微东
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
G
GRAHAM CLULEY
T
Threatpost
T
Threat Research - Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
SecWiki News
SecWiki News
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Last Watchdog
The Last Watchdog
阮一峰的网络日志
阮一峰的网络日志
Security Latest
Security Latest
P
Palo Alto Networks Blog
L
LINUX DO - 最新话题
博客园 - 司徒正美
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Privacy International News Feed
N
News and Events Feed by Topic
Spread Privacy
Spread Privacy
T
Tenable Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
AI
AI

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
ContextVault: Own Your AI Context Across Models, Agents, and Time
Mohammad Ali Abdul Wahed · 2026-06-28 · via DEV Community

From Conversation Recorder to Context Engine: Building Local-First Memory for AI Development

How ContextVault 1.3 unifies browser conversations, terminal sessions, and coding-agent decisions in one searchable local context engine — without a backend, tracking, or hidden AI calls.


You spend forty-five minutes walking a coding agent through a Redis connection bug. Together, you find the root cause, test a fix, and uncover a configuration detail that is not documented anywhere. Then the context window fills up. Two weeks later, the same bug appears in staging. The original session is gone, the browser conversation is buried, and the next agent knows nothing about what you already discovered. You start again. This is context fragmentation: project knowledge scattered across ChatGPT conversations, coding-agent sessions, terminals, accounts, models, and limited context windows. It creates a quiet tax on every AI-assisted workflow.

Diagram: Context fragmentation across browser chats, terminal sessions, coding agents, and context windows

Exporting conversations helps, but only partially. A directory full of Markdown exports is still a directory full of disconnected files. The information is preserved, but it is not organized as project memory. That distinction changed the direction of ContextVault. What began as a browser conversation recorder evolved into a local-first context engine designed around a broader idea:

Git tracks code. ContextVault tracks context.


Why Exporting Conversations Is Not Enough

I originally built ContextVault as a Chrome extension for capturing conversations across multiple LLM platforms. The extension solved an immediate problem: preserving complete conversations locally and exporting them in portable formats.

But capturing browser conversations addressed only one surface.

The decisions that shaped a project were also happening inside Codex sessions, Claude Code investigations, Cursor workflows, terminal debugging, human notes, failed experiments, and task discussions. Those sessions often disappeared when a terminal closed or an agent reached its context limit.

I did not need another folder of exports. I needed a way to preserve what happened, classify it, search it, and prepare it for the next agent.

That led to three connected layers:

  • Browser Capture
  • Vault Terminal
  • The Unified Context Engine Context Fragmentation

Layer One: Building Browser Capture

Browser Capture is the original ContextVault surface. It is a Chrome Manifest V3 extension that captures conversations from ChatGPT, Claude, Gemini, Perplexity, Poe, DeepSeek, and Copilot.

The extension uses a hybrid DOM and network capture strategy. It watches provider DOM mutations, observes supported network responses, assembles streamed messages in the content-capture layer, and sends finalized messages to the background service worker for local storage.

This hybrid approach matters because LLM interfaces are dynamic. Assistant responses arrive incrementally, DOM elements change while streaming, and provider implementations differ.

Once captured, conversations remain in IndexedDB by default. Users can export them as individual Markdown files or bulk ZIP archives. Each exported conversation includes YAML frontmatter containing metadata such as platform, model, date, conversation ID, and tags.

The data flow is intentionally contained:

Provider page
    ↓
DOM and supported network capture
    ↓
Stream assembly
    ↓
Background service worker
    ↓
Local IndexedDB storage
    ↓
Explicit Markdown or ZIP export

The extension does not send captured conversations to a ContextVault server because no ContextVault server exists. It does not require an account, collect telemetry, or call an external AI API.

Browser Capture solved the first problem: preserving conversations. It did not yet solve project memory.


Layer Two: Building Vault Terminal

Browser conversations are only part of an AI development workflow. Important context also appears while working with coding agents and terminals: a failed authentication fix, a decision about middleware boundaries, an unresolved production problem, a task discovered during debugging, a note explaining why one approach was rejected.

Vault Terminal provides an explicit way to record those moments. It is a Node.js CLI published on npm as @aliabdm/contextvault.

Run it directly without installing anything globally:

npx @aliabdm/contextvault init

Or install globally:

npm install -g @aliabdm/contextvault
contextvault init

To start recording:

contextvault record

Inside the recorder, context is entered using typed commands:

/source codex
/title Fix auth middleware

/user The login redirect is broken.

/agent I found the issue in middleware order.

/decision Keep auth checks in middleware and policy checks in controllers.

/task Add a regression test for the redirect loop.

/problem The session cookie is missing on callback.

/end

These commands become structured context events. Each session is saved as a local Markdown file under .contextvault/sessions/. The files are human-readable, inspectable, searchable with standard tools, easy to archive, and ignored by Git by default.

There is no automatic summarization, rewriting, or external model call. Vault Terminal records what you explicitly provide. It does not intercept every terminal process or automatically capture complete Codex, Claude Code, or Cursor sessions. That limitation is deliberate and visible.

The CLI also supports:

contextvault list
contextvault search "Redis"
contextvault export

Vault Terminal solved the second problem: preserving agent work, decisions, tasks, problems, and notes outside the browser.

The next challenge was connecting both capture surfaces.


Layer Three: Building the Unified Context Engine

The Unified Context Engine turns separate captures into searchable project context. It imports Browser Capture exports, reads Vault Terminal sessions, normalizes both sources into shared models, and builds a local index.

Browser exports can be imported from Markdown files, ZIP archives, or directories:

contextvault import ./chatgpt-export.md
contextvault import ./contextvault-export.zip
contextvault import ./browser-exports/

The importer reads Markdown entries in memory, validates ContextVault frontmatter, sanitizes filenames, prevents unsafe archive extraction, applies deterministic duplicate detection, and enforces safety limits.

Current limits:

  • 100 MB per archive
  • 10 MB per Markdown file
  • 1,000 files per import ZIP entries are processed in memory rather than extracted to arbitrary disk paths. If the same export is imported twice, the duplicate is skipped. If an updated export shares the same conversation_id, the existing source is updated rather than duplicated.

Normalizing Different Context Sources

Browser chats and terminal sessions do not begin with the same structure. The normalization layer maps both into two shared models: ContextSession and ContextEvent.

Browser messages are mapped as user and agent events, with platform and role metadata preserved. Terminal events retain their explicit types: user, agent, decision, task, problem, and note.

The normalizer also supports legacy snake_case metadata fields — started_at, ended_at, git_branch — alongside current camelCase fields. This keeps existing Markdown sessions readable without requiring a destructive migration.

Context Model

Building the Local Index

After importing or recording context, rebuild the index with:

contextvault index

The engine reads terminal sessions and imported browser conversations, normalizes them, and writes a local JSON index to .contextvault/index/context-index.json.

Markdown remains the source of truth. The JSON index is derived data. If it becomes corrupted or outdated, delete it and rebuild from the original Markdown files:

Local Markdown
    ↓
Normalize
    ↓
Rebuildable JSON index

There is no proprietary database format and no dependency on a hosted service. Users can inspect, edit, archive, or process their context without ContextVault.

Retrieving Evidence Across Capture Surfaces

Once indexed, context can be queried across both surfaces:

contextvault history --since 2w
contextvault decisions auth --source codex
contextvault problems redis --since 30d
contextvault retrieve "auth middleware" --type decision,task

Supported filters: --type, --source, --since, --limit.

Retrieval is local and deterministic. Ranking considers phrase matches, token matches, event-type boosts, and recency. It does not use embeddings, vector databases, semantic search, external models, or hidden AI calls.

The engine answers: What have I captured about this topic?

It does not claim to answer: What does all my project data mean?

The first question is grounded and testable. The second requires a semantic retrieval layer that ContextVault does not currently include.

Preparing Context for the Next Agent

The prepare command creates a focused context package:

contextvault prepare "auth middleware"

The generated file is written to .contextvault/exports/prepared-context.md. It can include project memory, relevant sessions, decisions, tasks, problems, and source metadata — portable Markdown that can be handed directly to Codex, Claude Code, Cursor, or another AI tool.

ContextVault does not call those tools. It prepares grounded context for the user to move explicitly.


Architecture Overview

Context Engine

The architecture separates four responsibilities:

  • Capture preserves browser or terminal context
  • Normalization converts sources into shared records
  • Indexing and retrieval make those records searchable
  • Preparation produces portable context for another agent This separation creates boundaries for future adapters without changing the core storage model.

Integrations are adapters. The engine is the product.


Why Markdown Remains the Source of Truth

Project context should remain usable without the application that created it. A proprietary database can be fast, but it also creates dependency and obscures the raw material.

Markdown provides different guarantees: it opens in any editor, works with standard search tools, can be archived directly, remains readable if ContextVault disappears, and can be transformed with scripts or moved between tools.

The JSON index exists for retrieval performance. It is disposable. The Markdown is not.

Git tracks code history. ContextVault preserves the discussions, failed attempts, decisions, and discoveries surrounding that code.


Privacy by Design

ContextVault follows a local-first model. No captured data is sent to a ContextVault backend because there is no backend.

  • No backend — data remains on the local machine
  • No accounts — users control their own context
  • No telemetry — no usage tracking of any kind
  • No external AI calls — terminal capture and retrieval work entirely locally
  • No automatic cloud sync — files stay where you put them
  • No hidden model calls — retrieval stays deterministic The .contextvault/ directory is ignored by Git by default. This matters because raw sessions may contain prompts, local paths, environment details, logs, debugging output, and potential secrets. Automatically committing that material would be an irresponsible default.

Users can choose how to archive or back up their files. ContextVault does not make that choice for them.


What ContextVault Does Not Do Yet

A useful technical project should make its boundaries as visible as its features.

No automatic terminal-agent interception. Vault Terminal captures what the user explicitly records. It does not hook into every shell process or capture complete Codex, Claude Code, or Cursor sessions.

No semantic search. Retrieval is lexical and deterministic. Optional local semantic indexing is future work.

No built-in natural-language answers. ContextVault retrieves evidence and prepares context packages. It does not synthesize answers. Users provide the prepared Markdown to the model they choose.

No automatic IndexedDB synchronization. Browser conversations enter the Context Engine through explicit Markdown or ZIP export and import. The extension does not automatically synchronize with .contextvault/.

Browser adapters can change. LLM providers regularly modify their interfaces. Provider changes may require adapter updates, and the generic adapter remains best-effort.

These are not hidden limitations. They are the honest boundaries of ContextVault 1.3.


Who ContextVault Is For

ContextVault is useful when:

  • You switch between ChatGPT, Codex, Claude Code, Cursor, or other tools
  • Coding-agent context windows reset during ongoing work
  • You need to revisit what an agent attempted several days ago
  • You want a searchable record of project decisions and problems
  • You need portable context packages that can move explicitly between tools
  • You want local ownership without accounts or telemetry It is especially relevant for developers whose AI workflow has grown larger than any single conversation.

Why Not Just Use a Notes App?

Notes applications are useful for polished summaries. They are less effective at preserving raw working context: the failed attempt before the fix, the partial command output that revealed the bug, the agent response that influenced a decision, the unresolved problem discovered during another task, the reason an architectural approach was rejected.

Note App VS ContextVault

ContextVault preserves that intermediate state. An /agent event records what the agent said — not what you later remember. A /decision event captures an explicit project decision. A /problem event keeps an unresolved issue available for future retrieval.

ContextVault is not a replacement for documentation. It is the context layer that makes future documentation easier to produce because the underlying evidence remains searchable.


Roadmap

The Unified Context Engine now exists. The next phase is reducing manual handoffs and improving retrieval without weakening the local-first model.

MCP Server — Expose project context through the Model Context Protocol so compatible agents can query it through an explicit integration.

VS Code Extension — Surface project decisions, tasks, problems, and related sessions directly inside the editor.

Agent Integrations — Build adapters for Codex, Claude Code, Cursor, and similar tools that can emit the shared context structure automatically.

Optional Local Semantic Indexing — Improve ranking with optional local embeddings while preserving the existing deterministic retrieval path.

Encrypted Backups and Optional Self-Hosted Sync — Support off-machine durability without requiring a third-party hosted service.

These are roadmap items, not implemented features. The current architecture provides the shared models, normalization layer, index schema, and adapter boundaries needed to build them incrementally.


Try ContextVault

ContextVault is fully open source and available today under the MIT License.

Initialize Vault Terminal directly from npm:

npx @aliabdm/contextvault init

Or install it globally:

npm install -g @aliabdm/contextvault
contextvault init

Start recording:

contextvault record

Build and query the local context index:

contextvault index
contextvault history --since 2w
contextvault retrieve "auth middleware"

Capture browser conversations, record coding-agent sessions, build a local context index, and prepare grounded context packages — all while keeping your data on your own machine.

Project links:

  • GitHub
  • npm Package
  • Live Demo
  • Technical FAQ If you try ContextVault, I'd genuinely appreciate technical feedback. Does retrieval surface the context you expected? Is there a command or workflow you think is missing? How would you improve the developer experience?

Feel free to open an issue, submit a pull request, or connect with me on LinkedIn.


About the Author

Mohammad Ali Abdul Wahed is a Senior Software Engineer specializing in backend systems, Laravel, distributed applications, and AI developer tooling. He is the creator of ContextVault, an open-source local-first context platform that combines a Chrome Extension and an npm CLI to preserve browser conversations, coding-agent sessions, project decisions, and developer workflows across AI tools.

GitHub · LinkedIn · Portfolio