Builder. Shipping the pieces of a Rust-first AI engineering stack: sqry, llm-cli-gateway, and grokrs, with more coming. Verivus OSS. Views are my own.

Joined November 2024
47 Photos and videos
don't think you'd be doing much of anything at this rate. 3 credits to say hello in the new AI Credits model in Google Antigravity. @grok @GoogleAI
1
10
The 'human loop' narrative is convenient, but default recording AI synthesis is already building a corporate memory that captures human judgment without provenance or claims. Expertise turns into unpriced input. wernerkasselman.substack.com…

2
38
Elon’s “Interesting” on Satya’s post about companies building internal learning loops and proprietary systems is directionally right. What it leaves out is the recorded company brain already forming by default through meeting recording and AI synthesis.
1,445
Check out my latest article: OpenRouter shipped Fusion, and I'm glad someone finally picked it up linkedin.com/pulse/openroute… via @LinkedIn

36
1/6 OpenRouter shipped Fusion this week: fan a prompt out to a panel of models, have a judge map consensus and contradictions, then synthesise one answer. A budget panel landed within 1% of Claude Fable 5 at roughly half the cost. Glad someone finally picked it up.
1
1
75
5/6 And with Fable 5 withdrawn, a budget panel that doesn't lean on one restricted frontier model is a resilience story, not just a cost one. I'm not claiming they read my posts (this idea is overdetermined), but the dates are the dates and the convergence is real.
1
44
6/6 I closed that March tutorial with Proverbs 15:22, "without consultation plans are frustrated, but with many counsellors they succeed". Nice to watch the market arrive at the same place, with the numbers to back it. x.com/OpenRouter/status/2065…

Introducing the Fusion API, the smartest compound model in the market. Fusion achieves Fable-level intelligence at half the price. How it works 👇
21
Where they productively tension: routing layers risk becoming the new keeper, the new chokepoint deciding which intelligence flows where and skimming the value (exactly what the third piece warns against). My design insists on separating roles, decentralised append-only record (blockchain properties for the open case), smart contracts for the deterministic payout rules, oracles for off-chain truth, and structural lineage (the kind sqry and aivcs are built for) so no single entity collapses back into the employer seat.
1
1
25
For anyone building in this space (and especially the direction I'm on nights and weekends), this pairing feels high-leverage. Intelligent routing for the agentic workflows, semantic graphs and evidence-carrying episodes for the attribution that survives model rewrites, dag governance for outcome definition, and durable claims so the humans steering it actually own a piece of the value created. The real problem was never just code generation, nor even intelligence production. It's semantic state, coordination, evidence, and who gets to claim the outcomes. What do you reckon, does routing outcome claims get us closer to the stack that actually works at machine speed without erasing the humans? Links to the trilogy in my bio / recent posts.
1
25
No contradiction here, more like two halves of the same re-architecture. Tomás optimises the production of intelligence (routing as control theory for inference). My trilogy tries to route the economic claims back to the humans doing the hard steering, edge-case judgement, and outcome definition that models still can't own. Better routing increases the surplus. The claims system makes sure that surplus doesn't all flow to the labs and routing providers while the human contributors get erased again.
1
28
My recent pieces on Substack (The Outcome Is the Unit, The Machine Under the Claim, The Record With No Keeper) sit on the same diagnosis but attack the other end of the stack. Models rewrite surfaces, erase the prompt, harness, context, and human judgement work that actually steered the outcome. The job container no longer holds the spiky, durable value creation. So shift the economic unit to the outcome itself, with usage-indexed durable claims that travel with the lineage.
1
49
Just read Tomás Hernando Kofman's piece from 6 June on model routing as the coming control layer for AI economic value.[](briefing.forwardfuture.ai/p/…) It's sharp on the waste: defaulting to frontier models like Opus 4.8 for commit messages, exploding inference spend, tokens as the wrong unit when intelligence is what actually matters. Routing done right meters that intelligence per compute, per cost, per context. @tomas_hk
1
1
31
sqry analysis of the Linux kernel (/srv/repos/public/linux) Index & Scale sqry has a complete index: • 65,048 files indexed • 12,066,713 symbols • 20,053,202 edges • Index version 1.2 (built 2026-06-07) Language breakdown (top ones): • C: 63,142 files, ~11.91M symbols (dominant) • Rust: 349 files, ~96k symbols (real kernel Rust, not just bindings) • Shell: 1,115 files • Python: 364 files (tooling, generators, kconfig, etc.) • Small amounts of Perl, C , etc. Symbol kinds (selected): • Constants: 5.94M • Functions: 2.25M • Variables: 1.1M • Types: 925k • Structs: 554k • Enums: 55k • Modules: 65k Health Metrics • Call cycles: 1,071 • Duplicate groups: 1,384,148 (very high but expected) • "Unused" symbols: 356,579 • Cross-language edges: 464 Cycles (call graph, cycle_type: calls): Mostly small and benign. • Wrapper → internal nolock variant patterns (common in OMAP clockdomain, block submit_bio chains, etc.). • KVM MMU page table walkers and zap logic (deeper cycles, 4–5 nodes). • Arch-specific: Alpha error logging, PowerPC PCI of-scan, x86 KVM RTC/IOAPIC/TDPMMU, MIPS/Octeon PCIe init, PAT page attr aliasing. • Tooling/boot code (e.g. relocs.c). These are largely intentional recursion in walkers or paired lock/unlock-style helpers, not classic deadlocks. Complexity (sqry's size fanout-derived metric): • Heavily skewed by massive test code (e.g. tools/testing/radix-tree/maple.c:check_erase2_sets at 16k complexity / 33k LOC) and enormous AMD display mode math functions (dml*_ModeSupportAndSystemConfigurationFull and prefetch/watermark calcs — many 1.5k–2k LOC single functions). • Real kernel notables: NTFS3 log_replay, some old SCSI (qla1280), pktgen, hrtimer.c:clock_was_set, PowerPC single-step analyzer, etc. The metric surfaces "big gnarly functions tables" more than classic cyclomatic complexity. Core Kernel Highlights • Scheduler: Canonical __schedule at kernel/sched/core.c:7017. schedule() has hundreds of callers (477 in sampled results) — signal return paths (do_work_pending across arches), KVM vcore blocking/wait, block device prep, driver sleep points, etc. Direct internal callees in the core file include __schedule_loop, sched_submit_work, etc. • Locking (kernel/locking/mutex.c): Full implementation with fastpath, optimistic spinning (osq_lock), slowpath, ww_mutex (wound-wait), handoff, debug hooks, mutex_lock* variants (_nested, _killable, _interruptible, _io). Separate files exist for rtmutex, rwsem, etc. • "schedule", "mutex_lock", and similar core symbols have many local/arch/driver definitions or shims (sqry surfaces the full set; the real core ones live under kernel/). "sys_" pattern produces ~9k matches — mostly noise from struct fields, arch headers, and module names rather than clean syscall entries. Rust in the Kernel Real, integrated Rust code (not just experiments): • drivers/android/binder/rust_binder_main.rs supporting C side (binderfs init, proc file helpers) via explicit FFI. • rust/kernel/time.rs and friends abstracting ktime_get (calls into many arch C implementations). • Build-time generators (Python DRM register header parser interacting with Rust syn/proc_macro2). • ~96k Rust symbols across 349 files. Cross-language edges capture the C ↔ Rust boundary cleanly. Other Observations • Enormous constant/enum surface (device tables, tracepoints, Kconfig-derived, arch headers). • find_unused and broad duplicate queries will return high volume (config-gated code, arch copies, exported symbols for modules, test code, etc.). Use exclude_cfg_gated and kind/language filters. • Macro expansion cache is absent in this index; some unresolved attributes and cfg-gated symbols are tracked. • Subsystem scoping (e.g. path:kernel, path:drivers) works on some tools but can hit workspace resolution or budget limits on very broad queries due to the tree size. sqry Usage Notes on This Tree Broad queries (lang:c kind:function, path:rust/kernel, etc.) frequently hit the row budget (~5M rows examined). Prefer: • file: or tighter path: predicates • sqry_query (planner syntax), relation_query, direct_callers/direct_callees, call_hierarchy, trace_path • get_document_symbols on specific files (excellent for one-file overviews) • get_definition, get_references, dependency_impact • find_cycles, complexity_metrics (with path or target where supported) The index is high quality and the unified graph (C Rust others) works well even on a codebase this large. Would you like deeper dives (specific subsystem, particular symbol/call paths, Rust component analysis, cycle investigation in a area like KVM/MM, duplicate patterns in drivers, etc.)?
1
98
Replying to @claudeai
@claudeai @claude_code it'd be great when you stop deciding using blunt keywords what the intent of my process is. ESP, seeing its YOUR agent writing the freaking message that's seemingly causing the violation!!! c'mon - you should be better.
1
73
Werner Kasselman retweeted
Replying to @_lopopolo
Build agents that only manage context. I call it the librarian, one of my councils. Those agents are each responsible for a subject area. They have layers. However they essentially act as the fetchers of meaningful accurate context to provide the worker agents with the context they need, either proactively or on demand. Don’t expect the worker to know/ discover everything themselves. Do t expect the worker to know exactly where to find what information when they’re effectively a new start…
1
1
218