I spent 18 years in intelligence — the last stretch overseeing global operations and managing very large risks. Toward the end, I taught myself to code when I couldn't get good data any other way. And I didn't stop.
Now I'm the solo founder of Knitli, where I make developer tools that help people and AI agents actually understand codebases.
CodeWeaver — An open-source MCP server for semantic code search. Hybrid dense/sparse retrieval, tree-sitter parsing across 170+ languages, support for 20+ embedding providers. It's the core of what Knitli does.
Thread — Codebase intelligence, built in Rust. Designed to make sense of the context files, docs, and scattered knowledge that accumulate in real projects.
PlainLicense — Plain-language rewrites of open-source licenses. Because legal text shouldn't require a law degree to understand.
Recoco - A pure rust fork of the popular CocoIndex python ETL library. Recoco is fast and lean, and I try to keep feature parity with upstream. Forked and maintained as a foundation for Thread.
I also maintain a handful of smaller tools: submod, exportify, lateimport.
Python, Rust, TypeScript, and enough Bash to justify the username (I prefer zsh, but zshandbone didn't quite have the same ring to it).
Plain language is a design choice, not a dumbing down. I spent a career watching important information get buried under jargon, classification markings, and institutional habit — sometimes with real consequences. That stuck with me.
I think docs are infrastructure. I think UX applies to AI agents, not just people — they experience information differently, and almost nobody is designing for that yet. I'm trying to. I haven't built everything I see in my head, but I'm getting closer.
Open an issue, start a discussion, or email me at adam@knit.li. I like honest feedback and I don't bite.