explaingit

willmarple/harness-visualizer

12TypeScriptAudience · developerComplexity · 3/5ActiveSetup · moderate

TLDR

Local Vue app that inventories every AI coding agent config in a project (Claude Code, Cursor, Codex, MCP servers, hooks, skills) and shows which file outranks which.

Mindmap

mindmap
  root((harness-visualizer))
    Inputs
      Project directory
      CLAUDE.md and AGENTS.md
      MCP server configs
      Hook and sub-agent files
    Outputs
      Agents tab
      Issues warnings
      Sortable inventory
      Raw JSON view
    Use Cases
      Audit agent rule conflicts
      Edit configs with file watcher
      Propose edits through a skill
    Tech Stack
      Vue 3.5
      Vite 8
      Pinia
      Tailwind v4
      Express 5
      Socket.IO

Things people build with this

USE CASE 1

See in one screen which configs each AI agent in your repo is reading

USE CASE 2

Find contradictory rules across CLAUDE.md, cursor rules, and copilot-instructions

USE CASE 3

Live-edit MCP server configs and hook scripts with a markdown editor and file watcher

USE CASE 4

Install the skill so an agent proposes edits through the visualizer instead of writing files directly

Tech stack

VueVitePiniaTailwindExpressSocket.IOTypeScriptVitest

Getting it running

Difficulty · moderate Time to first run · 30min

Clone, npm install, and npm run dev:safe; backend binds 127.0.0.1 only and the dev script checks ports 3001 and 5173 before starting.

In plain English

This project is a local tool that lets you see, in one screen, what configuration your AI coding assistants are actually reading. Setups for tools like Claude Code, Cursor, Codex CLI, Pi, Windsurf, Copilot, Continue, Cline, Aider, Gemini CLI, and Roo end up spread across many folders: a .claude directory, a .cursor directory, copilot-instructions files, MCP server configs, hook scripts, sub-agent files, and so on. After a few months of adding rules and skills, it gets hard to tell which file outranks which, what is loaded when, and whether two agents are being told contradictory things. Point the app at a project on disk and it inventories every relevant file, grouping results by which agent reads each one. The categories it scans for are context files such as CLAUDE.md or AGENTS.md or cursor rules, skill folders, MCP server configs, hooks defined inside settings.json, and sub-agent files. The same physical file can show up under more than one category. The interface has three tabs. Agents is the default and shows a collapsible panel per detected agent with its config files, scopes, and capabilities. Issues shows aggregated warnings, like an Inspections panel in an IDE. Table is a flat, sortable inventory for power users. Clicking any entry opens an Inspector on the right with a typed Details view and a Raw JSON view. Toggling Edit swaps in a markdown editor that writes back to disk, and a file watcher re-renders the view live. You install it by cloning the repo, running npm install, and starting npm run dev:safe, which checks ports 3001 and 5173 first and asks before killing whatever is squatting on them. The frontend opens at localhost:5173 and the backend stays bound to 127.0.0.1 only, so it is never exposed on the network. There are keyboard shortcuts, atomic file writes, and a six-extension allow-list with a 1 MB cap. The project also ships a portable skill that you install into Claude Code, Cursor, Codex, or Pi. Once installed, the agent reads a generated manifest of the current state and is taught to propose changes through the running visualizer instead of editing the config files directly, so the human can review proposals in the browser. The stack is Vue 3.5, Vite 8, Pinia, Tailwind v4, Express 5, Socket.IO, chokidar, and zod, organized as an npm workspaces monorepo with frontend, backend, and shared packages, plus around 590 Vitest tests.

Copy-paste prompts

Prompt 1
Clone harness-visualizer, run npm run dev:safe, and point it at my project to inventory my AI agent configs
Prompt 2
Walk me through the Issues tab of harness-visualizer and how to resolve a conflicting CLAUDE.md vs AGENTS.md warning
Prompt 3
Install the harness-visualizer skill into Claude Code so it proposes config changes through the running UI
Prompt 4
Show me how harness-visualizer detects which MCP servers Cursor is loading versus Claude Code in the same repo
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.