I build open-source tools for coding agents, design automation, and the Elixir ecosystem.
I’m interested in the part of AI-assisted development that comes after generation: how an agent inspects what it changed, understands a running system, finds the cause of a failure, and verifies that the result is actually correct.
That has led me to work across design tools, code intelligence, runtimes, build systems, replay, and developer tooling. The projects below approach different parts of the same problem.
OpenPencil is an AI-native, open-source design editor and Figma alternative built with Skia and WebGL. The aim is to make design documents understandable and editable as structured data—not just pixels on a canvas—so both people and agents can inspect and modify them. Website
figma-use brings that workflow to Figma. It gives agents a CLI for structural queries, JSX rendering, diffs, linting, analysis, patch workflows, exports, and round-tripping. Show HN · npm
Under Elixir Vibe, I’m building Elixir-native tools that let coding agents work with the structure and runtime of a real codebase instead of treating source files as plain text.
- Vibe — an experimental BEAM-native coding agent runtime with a TUI, web UI, eval, memory, tools, and subagents.
- Reach — program-dependence graphs, call and data flow, effect analysis, and architecture checks for BEAM projects. Hex
- Exograph — structural Elixir code search built with ExAST, Reach, Ecto, and Postgres/ParadeDB. Hex
- ex_ast — AST-aware search, replacement, and structural diffs for Elixir. Hex
- ex_dna — AST-aware duplicate-code detection with extraction candidates. Hex
- ex_slop — Credo checks for recurring low-quality patterns in generated Elixir code. Hex
- program_facts — generated programs with known structural facts for testing static analyzers. Hex
Elixir Volt explores what Phoenix frontend development looks like when more of the toolchain runs inside the BEAM.
- Volt — a frontend build tool and dev server for Phoenix with HMR, Tailwind CSS, and support for JavaScript, TypeScript, Vue, Svelte, React, and Solid. Hex
- Astral — a Volt-powered static site generator for Elixir applications. Hex
- QuickBEAM — a JavaScript runtime for the BEAM with browser-like APIs backed by OTP. Hex · Show HN
- Phoenix Vapor — Vue templates compiled into native
%Phoenix.LiveView.Rendered{}structures. Hex - OXC and Vize — Elixir bindings for JavaScript and Vue toolchains.
- Oxide — Elixir bindings for the Tailwind CSS toolchain. Hex
Static code is only part of the picture. I also work on ways for agents and developers to inspect software while it is running:
- pi-elixir — BEAM runtime tools for the Pi coding agent, including eval, documentation lookup, process state, Ecto queries, logs, and supervisor trees.
- phoenix_replay — recording and replay for Phoenix LiveView sessions. Hex
- live_render — server-driven generative UI for Phoenix LiveView. Hex
- phoenix_streamdown — streaming Markdown for LiveView, designed for incremental LLM output. Hex
The larger thesis, architecture, roadmap, and open questions are documented in Building Blocks for the Future Web. It describes how these pieces might fit into a web stack where generated software can be inspected, replayed, traced, and checked.
- dot-pi — my extensions, skills, and working rules for Pi.
- sloplint — an AST-based, multilingual linter for low-quality generated-code patterns.
- agentfmt — token-efficient CLI formatting for tools consumed by language models.
My current work is mostly around agents and Elixir, but I’ve built open-source software across several ecosystems.
- phoenix_spec — OpenAPI 3.1 specifications generated from Phoenix JSON views and Ecto schemas. Hex
- json_spec — Elixir typespec syntax turned into JSON Schema at compile time. Hex
- phoenix_iconify and iconify — Iconify SVGs for Elixir, Phoenix, and LiveView. phoenix_iconify on Hex · iconify on Hex
- qqr — a pure-Elixir QR code encoder and decoder. Hex
- typespec_from_serializers — TypeSpec descriptions generated from JSON serializers. RubyGems
- arel_maniac — PostgreSQL features for ActiveRecord without raw SQL.
- Abiko Search — a search engine for Tor hidden services, built from scratch in Elixir. It included an Onion v3 implementation and a tor2web proxy. Product Hunt · Hacker News
- Natasha-Ex — Elixir ports of Russian NLP tools including Yargy, Slovnet, Morph RU, Razmetka, and Razdel.
- socks-nginx-module — SOCKS5 proxy support for nginx; referenced on the nginx wiki.
- lua-template — a minimal Lua templating engine adopted by Cloudflare Loom.
- Desktop-action support for Xfce’s core Garcon library — shipped with Xfce since version 0.6.0.
I’ve reported security issues through Google Bug Hunters, Bugcrowd, and the CodePen bug bounty program.






