--- title: Elffuss Code emoji: 🧑‍💻 colorFrom: purple colorTo: pink sdk: static app_file: index.html pinned: false license: apache-2.0 short_description: A VS Code-style IDE with a local AI agent, in-browser tags: - webgpu - transformers.js - local-llm - agent - code - gemma --- # 🧑‍💻 Elffuss Code — a VS Code-style IDE with an AI soul, 100% in your browser Open a local folder and a full web IDE unfolds around it — real Monaco (the VS Code editor), a file tree, tabs — with an AI agent that **reads, searches and edits your project for real**. The model runs on **your** GPU via WebGPU. Your code never leaves your machine. > ⚡ **Build the best thing you can with Elffuss — 15-minute challenge, open until Sun 9 Aug 2026.** > Open one of your own folders and let the agent fix a real bug or add a small feature in 15 > minutes, then post a screenshot of the diff (plus your prompt) as a reply on > [X](https://x.com/KikoCisneros/status/2085358719190130963) or a comment on > [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:7491125059768516608/). > **Every like counts, wherever you post it** — X, LinkedIn or the Community tab of this Space. > We tally them all on Sunday; the most-liked entry wins and gets featured in this Space and in the repo. > ⚠️ **Open it full-screen** ([direct link](https://kikocis-elffuss-code.static.hf.space)) — the > File System Access API (opening a local folder) is blocked inside the embedded iframe. ![demo](https://utopiaia.com/demos/elffuss/elffuss-code-demo.gif) In the demo a **small model running entirely in the browser** reads `calc.py`, finds a real bug and fixes it with a minimal edit — genuine tool-calling, not autocomplete. ## Why it's different - **Your code stays local.** The folder is opened via the File System Access API — no upload, no account. - **The model runs on your GPU** (WebGPU, Gemma-4 E4B via LiteRT-LM; ONNX/transformers.js + our healed LFM2.5-1.2B as fallback). - **Real tool-calling**: `code.tree`, `code.read`, `code.search`, `code.edit`, `code.write` — you watch every call. - **Real editor**: Monaco, file tree, tabs, `Ctrl+S`, and git branch/last commit parsed straight from `.git`. - **Zero install, zero build.** Vanilla ES modules. - **Your language**: the whole IDE follows your browser's language (English, Spanish and more). - External providers (OpenAI, Anthropic, Ollama) are **opt-in**; keys stay in your browser. - Optional local **bridge** for real `node` / `npm` / `python` execution — downloaded from the main site. ## How it's built Four write-ups on the full stack — model, runtime, agent harness, editor and filesystem access, all in one tab: **** ## Links - 🌐 Full app: - 💻 Source (Apache-2.0): - ✳️ Sibling project — Elffuss Claw (agentic OS): - 🧬 Shared core: ## Gestión de contexto — cómo se mide El empaquetador de contexto no se elige por intuición. Números medidos a **igual presupuesto de tokens**: **Sesiones reales de agente** (25 sesiones, 174 sondas, recuerdo de hechos, sin juez LLM): | | recuerdo | |---|---| | truncar por la cola | 7,0 % | | versión anterior | 15,1 % | | **esta** | **65,3 % ± 8,5** | **Memoria a largo plazo** (200 preguntas, F1 del propio repo del banco, modelo real respondiendo, ~8 % del contexto): | | F1 | |---|---| | **el contexto COMPLETO, sin comprimir** | **22,56** | | truncar por la cola | 6,62 | | heurísticas escritas a mano | 6,07 | | BM25 sin IDF | 20,34 | | BM25 | 23,59 | | embeddings | 23,95 | | **fusión por rangos (BM25 + embeddings)** | **28,09** | **Recuperar bien bate a tenerlo todo**: 28,09 frente a 22,56 usando el 8 % de los tokens. Lo irrelevante no es lastre neutro — distrae. Otras dos cosas que se miden y no se suponen: activar las heurísticas costaba **−3,02 F1**, y quitar la IDF cuesta **−3,25**. Lo semántico no sustituye al léxico, le cubre el punto ciego: sin solape de vocabulario entre pregunta y respuesta los embeddings ganan (24,28 vs 18,60), con solape gana BM25 (29,33 vs 23,58), y la fusión se queda con los dos. Referencias: BM25 (Robertson et al., TREC-3 1994) · IDF (Spärck Jones, 1972) · RRF (Cormack et al., SIGIR 2009) · MMR (Carbonell & Goldstein, SIGIR 1998) · sumideros de atención (Xiao et al., ICLR 2024) · tiempo de validez (Snodgrass & Ahn, SIGMOD 1985). La historia completa, con lo que salió mal: