Skip to content

Repository files navigation

BROVIS

Bro's Virtual Intelligence System — a self-hosted, J.A.R.V.I.S.-inspired morning dashboard. Open source. BYOK. No accounts, no telemetry, no cloud lock-in.

Overview

Karpathy LLM prototype. LLM Overview


LLM

Ingest

Obsidian Web Clipper to save website information:

LLM Clipper

Dragged saved website into ingest window, analyze, select input :

LLM Ingest

Save all pages to import into LLC

LLM Save


Query LLM

LLM Query


Lint - Health Check for LLM

LLM Lint


Test Harness with automated test scripts

LLM Test

Obsidian integration

The data/ folder is a valid Obsidian vault. Open it in Obsidian to get graph view, backlink navigation, and the Web Clipper workflow for fast ingestion from the browser.

Obsidian Graph

Obsidian Graph


Features

  • Karpathy - LLM

Stack

Layer Tech
Frontend Vanilla JS ES modules, no framework
Server Node.js + Express (CORS proxy, OAuth)
Styling Plain CSS with design tokens
Storage Browser localStorage
Auth Google OAuth2 (calendar only)

Quick start

1. Prerequisites

  • Node.js 18+
  • API keys (see below)

2. Clone and install

git clone https://github.com/Tracy-Sanders/LLM-Harness.git
cd /ai/[new prototype]
npm install

3. Configure environment

cp .env.example .env
# Edit .env — set PORT and optionally your dev fallback keys

4. Run

npm run dev     # nodemon — auto-restarts on changes
# or
npm start       # plain node

Open http://localhost:3001 and click CONFIG to enter your API keys.


Testing

npm test                  # run all tests once
npm run test:watch        # re-run on file changes
npm run test:coverage     # show coverage report

LLM workflows

Four dedicated pages are accessible from the nav bar:

Route Purpose
#llm-ingest Feed a source URL or paste text → Claude generates structured wiki pages
#llm-query Ask questions across the knowledge base → Claude synthesizes an answer
#llm-healthcheck Validate that your Claude API key is working
#llm-test Run the LLM test suite against your key

Project structure

brovis/
├── index.html
├── server/
│   └── index.js              Express proxy + Google OAuth (Calendar + Gmail)
├── src/
│   ├── orchestrator.js       App entry point — wires everything together
│   ├── brovis.css
│   ├── lib/
│   │   ├── config.js         Single source of truth for user config (BYOK)
│   │   ├── storage.js        localStorage abstraction (brovis.* namespace)
│   │   ├── http.js           Shared fetch wrapper + X-Brovis-Key header
│   │   ├── i18n.js           Translations (en/es/de/zh) + DOM application
│   │   └── claude.js         LLM client (complete, chat, chatRaw)
│   ├── widgets/
│   │   ├── index.js          Registry — isWidgetVisible, isWidgetRunnable
│   └── display/
│       ├── config.js         Full config page renderer
│       ├── llm-ingest.js     Knowledge base ingest workflow
│       ├── llm-query.js      Knowledge base query workflow
│       ├── llm-healthcheck.js  API key health check
│       └── llm-test.js       LLM test suite runner
├── data/
│   ├── index.md              Master knowledge base index
│   └── log.md                Change log
├── maps/
│   └── vault-map.md          Navigation guide for LLM agents
├── metadata/
│   └── llm-schema.md         Page schema + YAML frontmatter conventions
├── LICENSE
└── package.json

License

MIT — see LICENSE.


About

Harness for prototyping

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages