---
title: "VHDB — A Searchable Vibe-Coding History Database and Claude Code Plugin | WISP"
description: "VHDB stores and searches your vibe-coding session history. Local first, secrets masked, with a Claude Code plugin and a check before edits."
url: https://www.j2w2.org/project-vhdb.html
lang: ko
---

Developer tool · Claude Code plugin · Database

# VHDB — Ask your past sessions

'Have we done this before?', 'Why did we decide this?', 'How did this file get here?' VHDB stores the conversations, decisions, errors, fixes, edits and commits from your vibe-coding sessions, and lets both you and Claude search them. It is a history database with a Claude Code plugin.

[Official site](https://vhdb.j2w2.org) [View the plugin (GitHub)](https://github.com/nathak/vhdb-plugin)

![VHDB intro image — decision, error, fix and commit cards answering: have we done this before, why did we decide this, how did this file get here](https://www.j2w2.org/images/vhdb/main.jpg)

*VHDB intro image (an illustration)*

## The same questions keep coming back

The longer you vibe-code, the more the same questions return. The answer is somewhere in an old conversation, but once the session ends it is hard to find. VHDB (Vibe History Database) stores the **conversations, decisions, errors, fixes, edits and commits** from your sessions and searches them when you need them. The history it reads is either SmartWorkbench's decision ledger (read only) or the records the plugin keeps in its own log.

## Ask your past sessions

Search right inside Claude Code with slash commands.

`/vhdb:search "refresh race" kind:error,decision`
`/vhdb:search file:src/auth.js kind:decision`
`/vhdb:history src/auth.js`

**Have we done this before?** It finds past attempts and errors, and the fix that closed them. **Why did we decide this?** It shows a decision with its reason and the earlier decision it replaced. **How did this file get here?** It shows every request that touched the file as a newest-first timeline.

Queries take words, phrases, and file, commit, session, kind and time filters. Korean is searched by syllable, and code also by camelCase, snake_case and path pieces; decisions and errors rank higher, and newer records get extra weight.

## Claude looks things up before it works

The plugin also gives Claude tools it calls itself. `query_history` and `file_history` look up the history before work to avoid repeating a mistake or reversing a decision, and `record_decision` records the choice and its reason when one option is picked among several. If an earlier decision is overturned, that decision is marked as superseded.

The three switches are **all off by default**; `/vhdb:on` turns on recording and context injection, and the guard is turned on separately with `/vhdb:on guard`. **Record** keeps test, build and lint results and failures, and closes an open error when the same check later passes. **Inject** adds valid decisions and unresolved errors, within a fixed size, when you send a prompt and when an error you have already seen comes back, with a note that they are past records and not instructions. **Guard** pauses the first edit to a file under a valid decision once and shows that decision; if it fails or times out, it does not block the edit.

## On your computer, with secrets masked

The plugin has no network code, and all data stays in your own computer's repository. Secrets such as tokens, API keys and credentials inside URLs are masked before they are stored, and search results never include the body of a tool's output.

The database engine was written from scratch in Rust and needs no external database. The session log itself is the source of truth, and if anything stops at any moment, it comes back to the same result from the same log. The same engine runs in three places: inside the Claude Code plugin (local), as a personal daemon, and as a team server.

## To be honest

For now the plugin uses **only the local engine**. Connecting to a team server and uploading remotely are not built yet. There is no search across projects, semantic search is optional and only a simple method exists for now. Because it is a log, individual history entries cannot be deleted, and times are shown in UTC. This is the first release (0.1.0).

## Getting started

You need Node.js 24 or later and a git repository. After you download the plugin repository, start Claude Code like this.

`claude --plugin-dir ~/vhdb-plugin`

Then search with `/vhdb:search token refresh kind:decision since:30d` and turn on recording and context injection with `/vhdb:on` (guard separately with `/vhdb:on guard`). The history it reads can be the ledger SmartWorkbench builds with `/swb ledger on`, or the records this plugin keeps after `/vhdb:on record`. The team server is installed from the installers (.deb, .rpm, tar.gz) on the releases page.

## Overview

![VHDB overview — SmartWorkbench logs and plugin logs enter the engine through ingest, and WASM, a local daemon and a team server answer queries on top of it](https://www.j2w2.org/images/vhdb/architecture.jpg)

*One engine reads the logs and answers searches in three places (inside the plugin, a personal daemon, a team server). The labels in the picture are in Korean.*

## Main features

- History search — words, phrases and file, commit, session, kind and time filters; Korean by syllable

- File history — every request that touched a file, as a newest-first timeline

- Claude tools — look up history before work and record decisions

- Record, inject and guard — all off by default, turned on when you need them

- Local first — no network code in the plugin, secrets masked before storing

- One engine, three places — inside the plugin, a personal daemon, a team server

## Links and usage

Commands, tools, settings and file locations are in the plugin repository's README, and the server installers are on the releases page.

[Official site (vhdb.j2w2.org)](https://vhdb.j2w2.org) [Plugin repository (GitHub)](https://github.com/nathak/vhdb-plugin) [Installers (releases)](https://github.com/nathak/vhdb-public/releases/latest)

VHDB

Vibe-coding history database · Claude Code plugin

### Project info

- **Category**: Developer tool · database

- **Parts**: Engine (local, personal daemon, team server) + Claude Code plugin

- **Distribution**: Plugin on GitHub, server as release installers

- **Audience**: Developers who use Claude Code

- **Version**: 0.1.0

- **Requirements**: Node.js 24 or later, a git repository

- **Plugin license**: MIT

Next project

## [OG](https://www.j2w2.org/en/project-og.md)
