Skip to content
View dannote's full-sized avatar

Organizations

@open-pencil @elixir-volt

Block or report dannote

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dannote/README.md

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.

What I’m building now

Design tools for agents

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

Code intelligence for Elixir

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

Frontend tooling inside the BEAM

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

Making running systems observable

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.

Tools I use in my own agent workflow

  • 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.

Other open-source work

My current work is mostly around agents and Elixir, but I’ve built open-source software across several ecosystems.

Phoenix and Elixir libraries

Ruby

Search and Russian NLP

  • 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.

Systems and infrastructure

Security research

I’ve reported security issues through Google Bug Hunters, Bugcrowd, and the CodePen bug bounty program.

Pinned Loading

  1. socks-nginx-module socks-nginx-module Public

    An nginx_http_proxy_module fork with SOCKS5 support

    C 209 75

  2. abiko-search/tor2web abiko-search/tor2web Public

    An HTTP proxy that enables access to Tor Onion Services

    HTML 18 12

  3. abiko-search/tongue abiko-search/tongue Public

    Elixir port of Nakatani Shuyo's natural language detector

    Elixir 27 4

  4. abiko-search/laughter abiko-search/laughter Public

    A streaming HTML parser for Elixir built on top of the CloudFlare's LOL HTML

    Elixir 5

  5. lua-template lua-template Public

    The simplest Lua template engine

    Lua 66 12

  6. natasha-ex/yargy natasha-ex/yargy Public

    Earley parser with grammar DSL for Russian NLP — Elixir port of https://github.com/natasha/yargy

    Elixir 1