neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证7 LLM engines in one browser tab: hand-written WebGPU kernels, a 27B with DFlash 2, no server
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Private AI in your browser tab. Chat, generate images, search the web, and talk to your documents — running entirely on your own device. No server, no API keys, no data leaving your machine.
▶ Try it live · Guided tour
LocalMind is a single web page that runs real AI models on your own device. Open the link, pick a model, and start chatting — the model downloads once, caches in your browser, and works offline after that. Your conversations, files, and memory never leave your machine.查看完整 README ↗| Where | How |
|---|---|
| Your browser | Open localmind.naklitechie.com in Chrome or Edge 113+, or Firefox 130+ |
| Your own copy | git clone https://github.com/NakliTechie/LocalMind && cd LocalMind && python3 -m http.server 8080 |
On first open LocalMind downloads LFM2.5 230M (~140 MB) once and keeps it in the browser's cache, so the next start skips the download; where Chrome already has Gemini Nano, it starts on that with no download. Tap an example prompt or type. The model picker above the message box lists what is already on this device first; pick a bigger model when you want more. To drive the loaded model from a script, turn on Settings → JavaScript API:
await window.localmind.load('lfm2-230m-webgpu');
const r = await window.localmind.chat.completions.create({ messages: [{ role: 'user', content: 'Hello' }] });
No account, no API key, no config file. Your own copy needs an HTTP server; file:// will not load the workers.
You want help with things you would rather not paste into a website: a contract, your notes, a letter from the doctor. A hosted chatbot sends every word to someone else's server. LocalMind runs the model inside your browser tab instead. Models download once from Hugging Face; what you type, the files you add and the memory it keeps stay on your machine. Web search is the one exception, and it runs only when you turn it on, with your own search key.
In-tab models need WebGPU, so Safari does not work yet. Small models answer in seconds on a laptop. Ternary Bonsai 2 27B is a ~5.9 GB download and needs a GPU with the memory to hold it. For 7B–70B models at full speed, point LocalMind at your own Ollama, LM Studio or llama.cpp server; the browser then only streams the answer.
The sidebar holds Chat, Image, Voice, Models and Library; Compare, Batch, Diffuse, OCR, Vision, Clone and Folder sit under More. Press ⌘K (Ctrl+K on Windows and Linux) for a palette of every action, from switching models to opening a setting. Library searches the full text of every saved chat, with your on-device memory in the tab beside it. Settings → General → Appearance picks light, dark or your system's theme. On a phone the composer gets the full width, with attach and voice stacked beside a taller text box, and everything else moves into the menu.
Type in the picker to find a model; it groups them as on this device, partly downloaded, or to download. They range from LFM2.5 230M on hand-written WebGPU kernels (~1,060 tokens/s on an M4 Pro) to two 27B models, Ternary Bonsai 2 and Underdog Saluki (a 7.9 GB IQ2-mix GGUF tuned for tool calls), plus Chrome's built-in Gemini Nano with no download at all. Ternary Bonsai 2 also comes as 2B (430 MB) and 4B (950 MB) on the same engine, 24 of 24 on the tool test. Qwen3 4B adds FlashMap speculative decoding (same tokens; 2.1× on maths). Five experimental engines stream mixture-of-experts models larger than GPU memory (Qwen3.6 35B-A3B, OpenBMB's MiniCPM-V 4.7 35B-A3B, Gemma 4 26B-A4B, Liquid AI's LFM2.5 24B-A2B and Recursive's 26 GB coding model Flint 40B-A2.5B) from the browser's private storage; MiniCPM-V uses tools (11 of 11 on the test set) and reads images. Twelve engines in all serve 20 models and a memory writer. Their disk tier and engines are also a library, diskformer.js, with a demo at diskformer.naklitechie.com. Settings → Models → Load .gguf from disk… copies in a GGUF you already have instead of downloading it.
Every path is local. A model runs in the tab on WebGPU, or as a GGUF through llama.cpp compiled to WebAssembly (from a
URL or a .gguf file on your disk, on CPU when there is no GPU), or on your own Ollama, LM Studio or llama.cpp server.
Settings → Models adds any Hugging Face ONNX repo or GGUF URL to the picker.
Drop PDFs, Word files, notes or a whole folder into a chat and ask across them, in one language about documents in another. LocalMind remembers between sessions: Memory → Write memories from this chat has the loaded model save new facts about you and update the ones they change, with Mem0's prompts; a tech demo (off by default) gives the job to Tencent's Hy-Memory 30B-A3B instead. OCR turns photos and scanned PDFs into selectable text with GLM-OCR on your GPU. Image mode draws with a 4B diffusion model in the tab or on your own stable-diffusion.cpp server.
Voice mode is hold-to-talk: Moonshine transcribes, the model answers and Kokoro reads the reply aloud. Clone makes any text sound like a 5–10 second voice sample, with Chatterbox. Each model downloads once and runs on your device.
python3 -m http.server 8080 # serve your copy, then open http://localhost:8080
scripts/image-server.sh # a local stable-diffusion.cpp server for Image mode on 127.0.0.1:7860
node scripts/bench-engines.mjs # decode tok/s per engine: drives Chrome, same model and prompt, exact token counts
node scripts/test-inference-worker.mjs # UI and worker contracts (the full gate is below)
node scripts/roll-in.mjs # after editing a module in src/: copy every module into index.html
With Settings → JavaScript API on, window.localmind is an OpenAI-shaped client for the loaded model, and
window.localmind.commands lists and runs every ⌘K palette command (API.md).
for t in rollin download-stall endpoint engine-fetch inference-worker moe-expert-stream token-count render calculate page-proxy; do
node scripts/test-$t.mjs || { echo "FAILED: $t"; break; }
done
These ten suites need Node and nothing else: no install, no model download, no browser. They refuse a page that
loads any script file besides itself (every module in src/ is rolled into index.html), a sidebar or
palette command that maps to no real control, a model without its Settings entry, a load failure that shows no Retry,
a truncated model download that the cache would keep, a token estimate outside its bounds against each model's
own tokenizer, tool-call markup or unrendered math in a chat bubble, and a blocked web page sent to a proxy without your yes. Three more suites drive Chrome with WebGPU: scripts/test-qwen35-kernels.mjs checks the SSD engine's
WGSL kernels against llama.cpp's CPU ops, scripts/test-iq-kernels.mjs checks every llama.cpp block type Saluki uses
against gguf-py's dequantization on real weights, and scripts/test-ple-opfs.mjs checks Gemma 4 gives identical output
with its embedding table on disk. bench-engines.mjs --suite dflash checks DFlash 2 output is byte-identical to plain decoding.
MIT. Built on Transformers.js and the webml-community WebGPU kernels; full credits in ARCHITECTURE.md. Part of the NakliTechie series, built by Chirag Patnaik with Claude Code.
Features · Architecture · API · Roadmap · Guided tour