A collection of tools, plugins, and experiments I've built and maintain. Most are open source and actively developed.
Rust TUI Applications
Terminal user interfaces built with Ratatui. I prefer keyboard-driven, minimal interfaces for daily workflows.
shellcast
https://github.com/ducks/shellcast
A minimal TUI podcast player for the terminal. Subscribe to feeds, download episodes, and play audio without leaving the command line.
shelltrax
https://github.com/ducks/shelltrax
A cmus-inspired terminal music player written in Rust. Lightweight, keyboard-driven playback with playlist management.
claux
https://github.com/ducks/claux
Terminal-based AI coding assistant written in Rust. Streaming chat with tool execution, session persistence, compaction, sub-agents, and multi-provider support (Anthropic, OpenAI, Ollama).
discourse-tui
https://github.com/ducks/discourse-tui
Browse Discourse forums from the terminal. Navigate categories, read topics, and browse posts with vim-style keybindings.
vim-navigator-rs
https://github.com/ducks/vim-navigator-rs
Vim-style modal editing and navigation for Ratatui TUIs. Reusable component for building vim-like interfaces in terminal applications.
Neovim Plugins
Plugins for Neovim written in Lua. Focus on markdown workflows and presentation tools.
vimdeck.nvim
https://github.com/ducks/vimdeck.nvim
Modern Neovim presentation plugin for markdown files. ASCII art headers, clean rendering, Treesitter parsing.
mdpreview.nvim
https://github.com/ducks/mdpreview.nvim
Live markdown preview in Neovim split window. Treesitter parsing, synced scrolling, styled headers.
nvim-vandelay
https://github.com/ducks/nvim-vandelay
Import management for JavaScript and TypeScript. Automatically organize and insert import statements.
Development Tools
Command-line tools and libraries for developers. Automation, infrastructure, and API clients.
llm-mux
https://github.com/ducks/llm-mux
Multiplexer for LLMs. Route prompts to multiple backends, run them in parallel, and orchestrate multi-step workflows across Claude, Codex, Gemini, Ollama, and any OpenAI-compatible endpoint.
jobl
TOML-based resume format with strict validation. Human-readable, version-controllable, plain text resume data structure.
srg
Static Resume Generator. Converts JOBL files to HTML and PDF using headless Chrome. Includes customizable layout system with quoted string support.
date-ver
https://github.com/ducks/date-ver
Date-based versioning specification. Use YYYYMMDD, YYYYMM, or YYYY for releases where timing matters more than compatibility signals.
denver
https://github.com/ducks/denver
Discourse ENV managER. CLI tool for managing multiple isolated Discourse development environments. Create, switch between, and test different plugin combinations without breaking your main setup.
yaml-janitor
https://github.com/ducks/yaml-janitor
YAML linter that preserves comments using psych-pure. Detects issues and fixes formatting without destroying documentation.
discourse-api-rs
https://github.com/ducks/discourse-api-rs
Async Rust client for the Discourse forum API. Fetch topics, posts, categories, and more.
discourse-comments
https://github.com/ducks/discourse-comments
Drop-in embedded comment widget for static sites. Uses discourse-api-rs compiled to WASM, bundled as a single script tag with no iframe required.
node-postgres-exporter
https://github.com/ducks/node-postgres-exporter
A lightweight, configurable Prometheus exporter for PostgreSQL written in Node.js.
Self-Hosted Services
Services and infrastructure I run myself. Music tracking, analytics, and personal data ownership.
scrob
https://github.com/ducks/scrob
Self-hosted music scrobbling server with Rust and PostgreSQL. Track listening history, share public profiles, and own your music data without relying on Last.fm.
Web Applications
Browser-based tools and services. Mapping and route generation.
slumprutt
https://github.com/ducks/slumprutt
Generate random walking, cycling, or driving routes for your next adventure. Built with Svelte.
beanledger
Multi-tenant SaaS production planner for specialty coffee roasteries. Imports orders from ShipStation/TRADE/Square, calculates green coffee needs from roast loss and leftovers, and generates daily pick lists for the roasting floor.
isitreal.estate
Crowd-sourced reviews for real estate listings, tied to physical addresses instead of ephemeral listings. Waze, but for house hunting — see what people actually found when they visited.
Experiments
Older projects and experiments.
gitvote
https://github.com/ducks/gitvote
Git-based cryptographically verifiable voting system using signed commits, pull requests, and fully auditable blockchain-style block generation.
All repositories are available on GitHub.