Large language models are powerful but opaque—they confidently deliver answers they cannot justify. NLP++ offers the opposite: a rule-based programming language where every decision traces back to readable, auditable rules. The excellent news is you need not choose between them. Claude can help you build NLP++ analyzers, yet the finished product remains entirely self-contained deterministic code requiring no ongoing API dependency.
However, expectations must be managed upfront. You cannot submit a casual one-line request and expect Claude to generate a working analyzer from nothing. Success requires a clear plan from you; Claude’s assistance varies across the analyzer’s lifecycle.
Step 1 — Install VS Code
Download and install Visual Studio Code from code.visualstudio.com for your platform (Windows, macOS, or Linux). Open it once to confirm it runs.
Step 2 — Install the NLP++ extension
Open the Extensions view (Ctrl+Shift+X on Windows, Cmd+Shift+X on Mac), search for NLP++, and install it. When prompted, accept the download of the NLP engine and the VisualText support files. Use the cog icon to load the example analyzers and click around — the extension lays out the standard folder structure (spec/, input/, kb/) that every analyzer uses.
Step 3 — Add Claude Code to VS Code
Install Anthropic’s Claude Code extension from the marketplace and sign in with your Claude subscription. Claude now works as an assistant inside the same editor window, with access to your analyzer files.
Step 4 — Set up a folder and create an analyzer
Pick a folder somewhere on your local computer to hold your analyzers — this is the workspace where every analyzer you build will live. Point the VisualText extension at it, then create a new analyzer inside it and choose a template to start from.
The default is the Knowledge Base template, which is a good first start: it comes with the scaffolding (spec/KBFuncs.nlp, spec/kbinit.nlp, spec/output.nlp) for accumulating results into a knowledge base and emitting them as JSON. Most extraction tasks — including the built-in prompts in the next step — build on this template, so unless you have a reason to pick another, start here.
With the folder and a starter analyzer in place, you’re ready to hand Claude one of the built-in prompts along with your own specific instructions to build your first analyzer.
Step 5 — Use the built-in prompts — and bring a plan
The VisualText extension ships ready-made prompts that already fill in the machine-specific paths (the engine, the example analyzers, the templates, the language libraries) so Claude starts on the rails instead of guessing at conventions. Open the closest-fitting one, edit it to describe your task, and paste it into Claude. Each prompt is only as good as the plan you write into the blanks — be specific about the corpus and what to extract.
The five prompts, in the order to reach for them:
- From scratch: chemical formulas — a complete, self-contained worked example. Claude gathers a Wikipedia chemistry corpus and builds an analyzer that finds chemical formulas and breaks each into its elements and atom counts, emitting JSON. Study this one first to watch an analyzer built end to end.
- NLP++ local install — build an analyzer — the generic starting point for a brand-new analyzer. It hands Claude the installed engine, example, and template paths plus the conventions that keep it on the rails (use the Knowledge Base template as intended, accumulate results into a KB, emit JSON with JsonKB), then leaves a blank for you to describe your corpus and extraction task.
- Harden analyzer — for an analyzer you already have. It generates additional, varied test inputs including edge cases, runs them through the engine, and reports where the extraction looks wrong so you can tighten rules and re-bless your regression goldens.
- Create Dictionaries & KBs — also for an existing analyzer. It builds NLP++ dictionaries (
.dict) and knowledge bases (.kbb), learning the exact format from the shared language and misc libraries, and places the files under the analyzer’skb/user/directory. - Add missing words to the English dictionary — for an analyzer that reports unrecognized words. It reads
missing_words.txtfrom the analyzer’s output log and, for each genuine word, adds a properly featured entry (part of speech, root, verb/noun features) toen-full.dictanden-full.kbb— keeping both files alphabetized with identical headword sets, and quarantining noise (typos, fragments, proper nouns) into a separate list for your review.
Tip: each prompt fills in the machine-specific paths automatically when you open it, so it’s ready to paste. Start from the closest-fitting prompt and edit rather than writing from a blank page.
Step 6 — Explore the analyzer visually in VisualText
VisualText is what we call the NLP++ language extension for VS Code. It gives you a visual way to look inside an analyzer instead of reading raw folders — use it to understand what Claude built (or any existing analyzer).
Open the Analyzer tab and click through the analyzer’s steps. Each pass is right there to inspect:
- Rules — click a pass to open its rules and see the grammar logic that fires.
- Functions — read the NLP++ functions that passes call.
- Output files — inspect what each pass emits as the text flows through the sequence.
- The final parse tree — see the fully built tree the analyzer produces for a given input.
- Dictionaries and knowledge bases — open the KB View to browse the
.dictand.kbbentries the analyzer relies on.
Click around. There are lots of ways to visually examine an analyzer in NLP++ using VisualText, and the fastest way to learn one is to run it and watch each step. And when you get stuck, check the Help view in the bottom left — it’s packed with helpful information and tips for understanding and using NLP++.
When you want to change behavior, you have two levers: ask Claude to make the edit, or open the rule, dictionary, or function and change it by hand. Re-run after every change, and lock in the behavior you want with regression tests.
Conclusion
Claude and NLP++ cover each other’s weaknesses. Claude gets you moving fast — gathering a corpus, scaffolding passes, drafting dictionaries — while VisualText keeps the result open to inspection at every step. Nothing stays hidden: every rule, function, dictionary, and parse tree is visible and editable in front of you.
That’s the payoff worth protecting. The classic failure mode of AI-assisted development is shipping code you don’t understand, and with NLP++ you never have to. Take the time to click through what Claude builds until you can trust it, extend it, and fix it yourself. What you end up with is a self-contained, deterministic analyzer that runs with no ongoing API dependency — one that is genuinely yours.
![]()
