neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
LocalMind 하나의 브라우저 탭에서 7개의 LLM 엔진 사용
Seven LLM engines in one browser tab: hand-written WebGPU kernels about 4x faster than ONNX, a 27B with DFlash 2 speculative decoding, plus image, voice and OCR. No server, no data leaves your device.
개발 도구HTML · JavaScriptGitHub @NakliTechie온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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