About
Lucas Espindola is a principal engineer doing applied AI research: he trains small, specialised models that run on-device and outperform general frontier models on narrow AI security problems, and builds the platforms AI agents run on. He has 10+ years of experience in distributed systems, cloud-native platforms and decentralized storage (IPFS).
Focus: AI agent security · Small-model fine-tuning and evaluation · Private, on-device inference · Platforms for AI agents · Decentralized content routing (IPFS).
Scout
Side project
Describe a task and find model candidates on Hugging Face. Scout searches live repository records, reads model cards, and compares task fit, language metadata, licenses, estimated weight memory and available inference providers. Recommendations link to their evidence, with setup snippets and shareable searches.
Scout
Doorman
Open source
A local app and CLI that watches what AI coding agents read and run, flags prompt injections and leaked secrets, and holds risky steps for an engineer's approval. It runs entirely on the user's machine and is open source (Apache-2.0). Lucas built its on-device model, Llama-Doorman-22M, and the research pipeline behind it.
Doorman on GitHub · Model on Hugging Face
Human-ish
Side project
A browser lab for comparing two open AI-text detectors: TMR RoBERTa and ModernBERT trained on RAID and MAGE. It runs models locally, maps scores passage by passage, exposes model disagreement and limitations, and presents every result as a screening signal rather than proof of authorship.
Human-ish · TMR RoBERTa · ModernBERT RAID + MAGE
Neuron Dissector
Side project
A browser lab for looking inside a language model: it runs a small story-writing model (TinyStories), or any GPT-Neo or GPT-2 model a visitor picks from Hugging Face, on a forward pass written in JavaScript with a WebAssembly SIMD kernel for its matrix multiplies, shows every MLP neuron and attention head firing token by token, and lets visitors cut, boost, invert or clamp them and compare the edited model's story with the original's. It's on this site's desktop (Dissector, or `app dissect` in its terminal).
Neuron Dissector · How it works · TinyStories models
Prism
Side project
A browser lab for the features inside a language model: a TopK sparse autoencoder splits TinyStories' residual stream into thousands of features, either a ready-made atlas or one a visitor trains on their own device for any layer. Visitors browse the features as a map, see the text that fires each one and the words it pushes the model toward, and clamp a feature on or cut it out while the model writes, next to the untouched original. It runs on Neuron Dissector's forward pass. It's on this site's desktop (Prism, or `app prism` in its terminal).
Prism · TinyStories models
Autopsy
Side project
A browser lab for why a RAG system answered what it did: it follows every passage of a document set (the site's notes, or a visitor's own files, which never leave the page) through chunking, BM25 keyword search, embedding search, their hybrid, a cross-encoder reranker, the context window and the answer, on one chart. Answers come from Workers AI, which sees only the question and the passages that reached the context, or from a small model in the browser; citations, numbers no passage contains and weakly supported sentences are flagged. Visitors poison a passage (a swapped number, a planted instruction, a keyword decoy) and see whether retrieval or the model passes it on. It's on this site's desktop (Autopsy, or `app autopsy` in its terminal).
Autopsy
Intern
Side project
An AI that uses this site's desktop in plain sight: given a task, it searches notes and profile files, opens apps, clicks, picks options, types and reads, one step at a time, with a visible cursor and a persistent pause/resume control. Each step, the page sends a text snapshot of the desktop's controls to Llama 3.3 70B on Workers AI, which picks one action as schema-checked JSON; the page runs it on its own controls, blocks sending messages and leaving the site, and asks the visitor before any download. Every step is logged with what the model said it saw and what happened, unsupported numbers are flagged, and bundled tasks check their expected result. It's on this site's desktop (Intern, or `app intern` in its terminal).
Intern
llms.ink
Side project
An llms.txt generator for any link: it turns a website, docs section, article, GitHub repo or PDF into an llms.txt index and an llms-full.txt with the content. A model groups the links into sections and writes the descriptions, but refers to links only by number, so it can't add a URL that wasn't on the page.
llms.ink
gimmeclip
Side project
A video downloader for any link: paste a YouTube, Instagram, X, TikTok or Bluesky link and get the video as MP4 (up to 1080p) or MP3, save it, or send the file itself to WhatsApp from a phone's share sheet; or put gimmeclip.com/ in front of any video link. Downloads run in Cloudflare Containers with yt-dlp and ffmpeg. It's on this site's desktop too (gimmeclip, in Tools).
gimmeclip.com
peptidemeta
Side project
An evidence-graded peptide reference library and wiki: 60+ peptides and blends tiered S–D by the strength of published evidence, with FDA and anti-doping (WADA) status and citations checked against PubMed.
peptidemeta.com