A tiny programming language whose keywords are all things you would say to a chatbot, running entirely in the browser with no build step and no dependencies. You ACT_AS something, TAKE_INPUT variables, REWARD_IF a condition THEN do this PENALIZE do that instead, and OUTPUT results. To be sure you didn’t invent a variable, DO_NOT_HALLUCINATE it and it throws a GaslightError at you if the value is empty. THINK_STEP_BY_STEP pauses between every node. ACT_AS demo TAKE_INPUT a = 5 TAKE_INPUT b = 7 OUTPUT “sum is:” OUTPUT a + b Hand written lexer, recursive descent parser with real operator precedence, tree walking evaluator, all in one engine.js. Blocks are indentation delimited so REWARD_IF/PENALIZE behave like Python. The IDE has line numbers, syntax highlighting, step-through debugging, pause and reset, live variable inspection, named snippets in localStorage, and three runnable samples. Errors report a line number and say whether it was a ParseError or GaslightError.
A completely local semantic web clipper for Chrome. Save any page, then search it later by what it means. No account, no server, nothing ever leaves your machine. Chrome extension (Manifest V3), no build step, zero dependencies. Pages are chopped into ~300 word chunks on paragraph edges and stored as vectors in IndexedDB. The default engine needs no downloads: stemmed tokens run through a signed hashing trick into a 512-dim vector with sublinear term frequency, L2 normalised, compared with cosine. On top sit boosts for token overlap, title matches and exact phrases, plus a coverage factor so a rare unknown word can’t randomly match an unrelated page. Drop transformers.js into vendor/ and it upgrades to real all-MiniLM-L6-v2 embeddings, falling back to lexical when the model is missing. Clip from the popup, right click menu, or Cmd+Shift+Y. Domain filter and min score on any query, recent feed, per-domain tally, JSON export/import.