{"id":56,"date":"2026-03-31T08:10:25","date_gmt":"2026-03-31T08:10:25","guid":{"rendered":"http:\/\/localhost\/vhack-wp\/?p=56"},"modified":"2026-04-09T05:18:55","modified_gmt":"2026-04-09T05:18:55","slug":"promptfoo-ollama-aired-team-lab-setup-results-step-by-step","status":"publish","type":"post","link":"https:\/\/innovtouch.org\/vhack\/promptfoo-ollama-aired-team-lab-setup-results-step-by-step\/","title":{"rendered":"Promptfoo + Ollama AIRed Team Lab \u2014 Setup &#038; Results (Step-by-Step)"},"content":{"rendered":"\n<p>Scope: Local LLM red teaming on Kali Linux (VMware), using Node.js (via NVM), Promptfoo CLI, and Ollama with llama2:7b-chat. This document explains what each screenshot shows, why the step matters, and what to verify before moving on.<\/p>\n\n\n\n<p><strong>Step 1: Update Kali packages and install prerequisites<\/strong><br>Screenshot reference (Step 1)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"842\" height=\"235\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/1.png\" alt=\"\" class=\"wp-image-883\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/1.png 842w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/1-300x84.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/1-768x214.png 768w\" sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Update package index and apply pending upgrades to keep the VM stable before installing developer tooling.<br>\u2981 Install core prerequisites needed later (curl, ca-certificates, git, build-essential).<br>Commands used<br>sudo apt update<br>sudo apt -y full-upgrade<br>sudo apt install -y curl ca-certificates git build-essential<br>What to verify<br>\u2981 No broken packages: the apt run finishes without errors (warnings are ok).<br>\u2981 curl and git are installed: <code>curl --version<\/code> and <code>git --version<\/code> work.<br>Notes<br>\u2981 If you see interactive package prompts (e.g., services restart), selecting the default safe option is usually fine for a lab VM.<br>\u2981 Running upgrades first avoids dependency conflicts later when installing Node and CLI tooling.<br>Common issues &amp; fixes<br>\u2981 Issue: Repository signature \/ NO_PUBKEY errors during apt update<br>\u2981 Fix: Refresh Kali archive keyring and re-run: <code>sudo apt install -y kali-archive-keyring &amp;&amp; sudo apt update<\/code>. <\/p>\n\n\n\n<p><strong>Step 2: Install NVM and Node.js (Node 20) on Kali<\/strong><br>Screenshot reference (Step 2)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"848\" height=\"1021\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/2.png\" alt=\"\" class=\"wp-image-884\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/2.png 848w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/2-249x300.png 249w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/2-768x925.png 768w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Install NVM (Node Version Manager) to manage Node versions cleanly.<br>\u2981 Install Node.js 20 and set it as the default version for the shell.<br>Commands used<br>curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.7\/install.sh | bash<br>source ~\/.bashrc<br>nvm &#8211;version<br>nvm install 20<br>nvm use 20<br>What to verify<br>\u2981 <code>node -v<\/code> prints v20.x and <code>npm -v<\/code> prints a version number.<br>\u2981 Re-open a new terminal and confirm Node is still available (NVM loaded).<br>Notes<br>\u2981 Using Node 20 is recommended for modern CLI tooling and better compatibility with Promptfoo.<br>\u2981 If NVM is installed but commands do not work in a new terminal, ensure your shell is bash and that <code>~\/.bashrc<\/code> contains the NVM init lines.<br>Common issues &amp; fixes<br>\u2981 Issue: <code>nvm: command not found<\/code> after installation<br>\u2981 Fix: Run <code>source ~\/.bashrc<\/code> (or start a new terminal). If you use zsh, add NVM init lines to <code>~\/.zshrc<\/code>.<br>\u2981 Issue: Slow downloads inside a VM<br>\u2981 Fix: This is normal. VM disk + shared network makes installs slower; avoid running multiple heavy downloads in parallel.<br> <br><strong>Step 3: Update npm and confirm Promptfoo CLI runs<\/strong><br>Screenshot reference (Step 3)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"376\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/3.png\" alt=\"\" class=\"wp-image-885\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/3.png 749w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/3-300x151.png 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"223\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1024x223.png\" alt=\"\" class=\"wp-image-886\" style=\"aspect-ratio:4.591732148957978;width:749px;height:auto\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1024x223.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-300x65.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-768x167.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1536x335.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-2048x446.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Confirm your Node and npm versions.<br>\u2981 Update npm to the latest stable version.<br>\u2981 Run Promptfoo via npx and confirm it prints a version.<br>Commands used<br>node -v<br>npm -v<br>npm install -g npm@latest<br>npm -v<br>npx promptfoo@latest &#8211;version<br>What to verify<br>\u2981 <code>npx promptfoo@latest --version<\/code> prints a version (example shown: 0.120.23).<br>\u2981 npm &#8216;deprecated&#8217; warnings are acceptable; they do not mean install failed.<br>Notes<br>\u2981 The first <code>npx promptfoo@latest<\/code> run is slower because npx downloads and caches dependencies under <code>~\/.npm\/_npx\/<\/code>.<br>\u2981 For faster repeated usage you can optionally install globally: <code>npm install -g promptfoo<\/code>.<br>Common issues &amp; fixes<br>\u2981 Issue: npx appears to &#8216;hang&#8217; on first run<br>\u2981 Fix: Wait a bit; it is downloading dependencies. Verify activity with <code>ps aux | grep node<\/code> or <code>ps aux | grep npm<\/code>.<br> <br><strong>Step 4: Install Ollama and verify the service is running<\/strong><br>Screenshot reference (Step 4)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"856\" height=\"440\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5.png\" alt=\"\" class=\"wp-image-887\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5.png 856w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-300x154.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-768x395.png 768w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"324\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-1024x324.png\" alt=\"\" class=\"wp-image-888\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-1024x324.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-300x95.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-768x243.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6.png 1195w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"929\" height=\"335\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1.png\" alt=\"\" class=\"wp-image-891\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1.png 929w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1-300x108.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/4-1-768x277.png 768w\" sizes=\"auto, (max-width: 929px) 100vw, 929px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Install Ollama (local LLM runtime) using the official install script.<br>\u2981 Confirm Ollama version and systemd service status.<br>\u2981 Note: CPU-only mode is expected if no GPU is detected.<br>Commands used<br>curl -fsSL https:\/\/ollama.com\/install.sh | sh<br>ollama &#8211;version<br>systemctl status ollama &#8211;no-pager<br>What to verify<br>\u2981 <code>ollama --version<\/code> prints a version (example shown: 0.15.6).<br>\u2981 <code>systemctl status ollama<\/code> shows: Active: active (running).<br>\u2981 Ollama API is reachable: <code>curl -s http:\/\/localhost:11434\/api\/tags | head<\/code> returns JSON.<br>Notes<br>\u2981 The installer creates\/starts <code>ollama.service<\/code> and binds the local API on <code>127.0.0.1:11434<\/code>.<br>\u2981 CPU-only mode is slower but fine for demos; model downloads and inference will take longer.<br>Common issues &amp; fixes<br>\u2981 Issue: Ollama service not running after install<br>\u2981 Fix: Start it: <code>sudo systemctl enable --now ollama<\/code> then re-check status.<br>\u2981 Issue: Download progress looks stuck<br>\u2981 Fix: Large archives can pause on slow networks; check with <code>ps aux | grep ollama<\/code> and wait.<br> <br><strong>Step 5: Pull the target model (llama2:7b-chat) and verify it is available<\/strong><br>Screenshot reference (Step 5)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"53\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-1-1024x53.png\" alt=\"\" class=\"wp-image-892\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-1-1024x53.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-1-300x16.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-1-768x40.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-1-1536x79.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/5-1-2048x106.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"204\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/52-1024x204.png\" alt=\"\" class=\"wp-image-893\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/52-1024x204.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/52-300x60.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/52-768x153.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/52-1536x307.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/52.png 1893w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Download the model weights to your local machine using <code>ollama pull<\/code>.<br>\u2981 Confirm the model appears in <code>ollama list<\/code> before moving to Promptfoo.<br>Commands used<br>ollama pull llama2:7b-chat<br>ollama list<br>What to verify<br>\u2981 <code>ollama list<\/code> shows <code>llama2:7b-chat<\/code> with a non-zero size (several GB).<br>\u2981 Optional quick test: <code>ollama run llama2:7b-chat \"Say: ready\"<\/code> returns a response.<br>Notes<br>\u2981 Model pulls are the biggest downloads in this lab. Keep enough free disk space (10\u201315 GB recommended per 7B model).<br>\u2981 If you later add mistral:7b and llama3:8b, expect additional multi-GB downloads.<br>Common issues &amp; fixes<br>\u2981 Issue: Model pull fails due to low disk space<br>\u2981 Fix: Free space: <code>sudo apt clean<\/code>, remove unused models (<code>ollama rm &lt;model><\/code>), or expand VM disk and resize partition.<br>\u2981 Issue: Model pull is slow<br>\u2981 Fix: Normal on shared networks\/VM. Avoid parallel downloads.<\/p>\n\n\n\n<p><strong> Step 6: Create Promptfoo project folder and red-team config file<\/strong><br>Screenshot reference (Step 6)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"492\" height=\"148\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-1.png\" alt=\"\" class=\"wp-image-894\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-1.png 492w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/6-1-300x90.png 300w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"826\" height=\"574\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/62.png\" alt=\"\" class=\"wp-image-895\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/62.png 826w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/62-300x208.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/62-768x534.png 768w\" sizes=\"auto, (max-width: 826px) 100vw, 826px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Create a dedicated working directory for the demo run.<br>\u2981 Create <code>promptfooconfig.yaml<\/code> (or <code>promptfooconfig.yml<\/code>) with Ollama provider + prompt + redteam plugins.<br>Commands used<br>mkdir -p ~\/ai-redteam-promptfoo<br>cd ~\/ai-redteam-promptfoo<br>nano promptfooconfig.yaml<br>What to verify<br>\u2981 File exists: <code>ls -la promptfooconfig.yaml<\/code>.<br>\u2981 Config includes provider: <code>ollama:chat:llama2:7b-chat<\/code> and redteam plugins (example: prompt-extraction, system-prompt-override).<br>Notes<br>\u2981 The &#8216;tests&#8217; section is used by <code>promptfoo eval<\/code>. For <code>promptfoo redteam run<\/code>, Promptfoo generates its own adversarial tests based on plugins.<br>\u2981 To make injection targeting explicit, include an input variable in your prompt like <code>User message: {{query}}<\/code>.<br>Common issues &amp; fixes<br>\u2981 Issue: YAML indentation errors<br>\u2981 Fix: Use 2 spaces for indentation and avoid tabs. Run <code>npx promptfoo@latest eval<\/code> to validate parsing.<br> <br><strong>Step 7: Run the automated red-team scan and interpret the CLI output<\/strong><br>Screenshot reference (Step 7)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/7-1-1024x525.png\" alt=\"\" class=\"wp-image-896\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/7-1-1024x525.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/7-1-300x154.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/7-1-768x394.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/7-1-1536x787.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/7-1-2048x1049.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"696\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/72-1024x696.png\" alt=\"\" class=\"wp-image-897\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/72-1024x696.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/72-300x204.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/72-768x522.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/72-1536x1044.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/72.png 1615w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Start the red-team scan; Promptfoo will generate attack cases and run them against the model.<br>\u2981 Review the generated test summary and confirm results complete without errors.<br>Commands used<br>npx promptfoo@latest redteam run<br>What to verify<br>\u2981 You see &#8216;Test Generation Summary&#8217; with plugin counts (example: 16 total tests).<br>\u2981 Scan completes with a result line similar to: <code>Results: X passed, Y failed, Z errors<\/code>.<br>\u2981 A report is available via <code>promptfoo redteam report<\/code> (local web UI or HTML report).<br>Notes<br>\u2981 A 0% &#8216;attack success rate&#8217; means attacks did not cause a policy failure under the current plugins and target prompt \u2014 the scan still ran correctly.<br>\u2981 If scans take a long time in a CPU-only VM, reduce concurrency and\/or number of tests: set <code>maxConcurrency: 1<\/code> and reduce <code>numTests<\/code>.<br>Common issues &amp; fixes<br>\u2981 Issue: Run takes too long on VM<br>\u2981 Fix: Reduce load: <code>maxConcurrency: 1<\/code> and <code>numTests: 6\u201310<\/code>. Also test one plugin at a time.<br>\u2981 Issue: Email verification prompt appears<br>\u2981 Fix: Promptfoo may request email verification for red-team scans. Complete it once, then future runs proceed normally.<br> <br><strong>Step 8: View results in the Promptfoo UI and review pass\/fail evidence<\/strong><br>Screenshot reference (Step 8)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"391\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/8-1-1024x391.png\" alt=\"\" class=\"wp-image-898\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/8-1-1024x391.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/8-1-300x114.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/8-1-768x293.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/8-1-1536x586.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/8-1-2048x781.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/82-1024x564.png\" alt=\"\" class=\"wp-image-899\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/82-1024x564.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/82-300x165.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/82-768x423.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/82-1536x845.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/82-2048x1127.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>What you are doing<br>\u2981 Open the Promptfoo results UI (served locally) and drill into the run.<br>\u2981 Review per-plugin results and individual prompt\/output evidence.<br>Commands used<br>npx promptfoo@latest redteam report<br>npx promptfoo@latest view<br>xdg-open .promptfoo\/redteam\/report.html<br>What to verify<br>\u2981 The UI shows the run name, target provider, number of tests, and &#8216;Attack Success Rate&#8217;.<br>\u2981 You can open an individual test to see the prompt, model output, and evaluation status.<br>\u2981 Export option works if you want CSV\/JSON for documentation.<br>Notes<br>\u2981 Attack Success Rate is the percentage of tests that produced a vulnerability finding (fail). If it shows 0%, it means no failures were detected for that run.<br>\u2981 For a stronger demo, compare multiple models (llama2 vs mistral vs llama3) and\/or add plugins like indirect prompt injection where appropriate.<br>Common issues &amp; fixes<br>\u2981 Issue: Browser does not open automatically<br>\u2981 Fix: Copy the localhost URL printed by Promptfoo or run <code>xdg-open<\/code> on the HTML report path.<br>\u2981 Issue: UI loads but shows no rows<br>\u2981 Fix: Ensure you are looking at the correct run\/eval ID. Re-run <code>redteam report<\/code> to refresh the report index.<br>Next steps for better leraning:<br>\u2981 Run the same scan against multiple models (mistral:7b, llama3:8b) and compare attack success rates.<br>\u2981 Add explicit injection variable <code>{{query}}<\/code> in your prompt to make the attack surface clearer.<br>\u2981 For faster runs on CPU, set <code>maxConcurrency: 1<\/code> and start with <code>numTests: 6<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" src=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/83-1024x561.png\" alt=\"\" class=\"wp-image-900\" srcset=\"https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/83-1024x561.png 1024w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/83-300x164.png 300w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/83-768x421.png 768w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/83-1536x842.png 1536w, https:\/\/innovtouch.org\/vhack\/wp-content\/uploads\/2026\/03\/83-2048x1123.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scope: Local LLM red teaming on Kali Linux (VMware), using Node.js (via NVM), Promptfoo CLI, and Ollama with llama2:7b-chat. This document explains what each screenshot shows, why the step matters, and what to verify before moving on. Step 1: Update Kali packages and install prerequisitesScreenshot reference (Step 1) What you are doing\u2981 Update package index [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":879,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-56","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/posts\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/comments?post=56"}],"version-history":[{"count":5,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/posts\/56\/revisions"}],"predecessor-version":[{"id":902,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/posts\/56\/revisions\/902"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/media\/879"}],"wp:attachment":[{"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/media?parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/categories?post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innovtouch.org\/vhack\/wp-json\/wp\/v2\/tags?post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}