Multi-harness AI coding tool config inspector — scan, visualize, and audit AI assistant ecosystems.
Project description
LiteHarness
Multi-harness AI coding tool config inspector.
Scan, visualize, and audit every AI coding assistant installed on your machine — from one place.
Supported Tools
| Tool | Harness | Config Paths | Instruction File |
|---|---|---|---|
| Claude Code | claude_code |
~/.claude/, .claude/ |
CLAUDE.md |
| Cursor | cursor |
~/.cursor/, .cursor/ |
.cursorrules, .cursor/rules/*.md |
| Codex CLI | codex |
~/.codex/ |
AGENTS.md, codex.json |
| Windsurf | windsurf |
~/.windsurf/, .windsurf/ |
.windsurfrules, .windsurf/rules/*.md |
| GitHub Copilot | copilot |
~/.config/github-copilot/, .github/ |
.github/copilot-instructions.md |
Each tool has its own harness — a self-contained module that knows how to detect the tool, discover its config files, parse them, and run health checks.
Installation
# Install from PyPI
pip install liteharness
Or install from source in development mode:
git clone https://github.com/boricles/claude-lens.git
cd claude-lens
pip install -e .
Usage
CLI Report
# Scan all detected AI tools and print a report
liteharness report
# Scan a specific harness only
liteharness report --harness claude_code
# List all supported harnesses and detection status
liteharness harnesses
JSON Output
# Full JSON scan data
liteharness scan
# Filter to one harness
liteharness scan --harness cursor
# Pretty-printed
liteharness scan | python3 -m json.tool
Web Dashboard
# Launch interactive browser UI on localhost:1834
liteharness web
# Custom port
liteharness web --port 9000
Other Commands
# Compare two scan snapshots
liteharness diff snapshot-a.json snapshot-b.json
# Export a project's config as a portable bundle
liteharness export myproject
# Clean up stale sessions and orphaned data (interactive)
liteharness clean
# Print version
liteharness version
The legacy claude-lens command is still available as an alias.
What It Detects
For each tool, LiteHarness discovers:
- Global settings — permissions, preferences, API config
- Instruction files — system prompts and rules (CLAUDE.md, .cursorrules, etc.)
- Rules/agents — custom agent definitions, rule files
- Sessions — session metadata (count, size, age — never reads content)
- Plugins/extensions — installed plugins with capabilities
- Memory — memory files and index integrity
- Health issues — orphaned state, stale sessions, missing instructions, config drift
Health Checks
Each harness runs its own health checks:
| Check | Harnesses | Severity |
|---|---|---|
| Missing instruction file | All | info |
| Orphaned project state | Claude Code | warning |
| Stale sessions (>30 days) | Claude Code | info |
| Memory index drift | Claude Code | warning |
| Disk usage >100-200 MB | Claude Code, Cursor, Windsurf | warning |
| Outdated config (>180 days) | Copilot | info |
Architecture
liteharness/
harnesses/
__init__.py # BaseHarness ABC, schema dataclasses, registry
claude_code.py # Claude Code harness
cursor.py # Cursor harness
codex.py # Codex CLI harness
windsurf.py # Windsurf harness
copilot.py # GitHub Copilot harness
scanner.py # Orchestrator — runs all harnesses, merges results
parser.py # Shared parsers (frontmatter, JSON, etc.)
report.py # CLI text report renderer
server.py # HTTP server + web dashboard
web/index.html # Single-file web dashboard (Tailwind + vanilla JS)
export.py # Project config export
diff.py # Scan snapshot comparison
clean.py # Cleanup stale data
style.py # Shared ANSI color helpers
Adding a New Harness
- Create
liteharness/harnesses/newtool.py - Subclass
BaseHarnessand implementdetect(),scan(),health_checks() - Decorate with
@register_harness - Add the module name to
_ensure_harnesses_loaded()inharnesses/__init__.py
Design Principles
- Zero mandatory dependencies — stdlib only for core scanner and CLI
- Local-first — web server binds to
127.0.0.1only - Privacy-safe — never reads conversation content from session files
- Non-destructive — never modifies user files unless in explicit
cleanmode - Self-contained harnesses — each harness module is independent
Development
# Run all tests
python3 -m unittest discover tests/ -v
# Run a specific test file
python3 -m unittest tests.test_windsurf_harness -v
# Run as module
python3 -m liteharness version
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_dev_harness-0.2.0.tar.gz.
File metadata
- Download URL: ai_dev_harness-0.2.0.tar.gz
- Upload date:
- Size: 47.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c09b374785fe07ed93bfa515473aa2c6ec35328d67dd972e99e9f22bd16a12d
|
|
| MD5 |
73be2c8ee4257079b4ce2b04ff86446e
|
|
| BLAKE2b-256 |
074f6927ba2c8d94e0c8d17b3d2412791bc6d19ed494cb8ca1c9b2f4e1a0e786
|
File details
Details for the file ai_dev_harness-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ai_dev_harness-0.2.0-py3-none-any.whl
- Upload date:
- Size: 50.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80390cbf2bd44846356380422033742e7b86c5e558ccb76ee9b4107bc5ece9d6
|
|
| MD5 |
de7d608183af42174089b8e2ab4c7c0b
|
|
| BLAKE2b-256 |
dfc15d615a9bfd242fa19b438c1b55c81ea7777b0ebfb56ebc2ae913094e75ab
|