I built `local-llm` because I wanted Pi to feel local, usable, and not annoyingly fragile. More specifically, I wanted a coding-agent setup that could run against a local `llama.cpp` server on my 3090, come up inside a Nix shell, reuse one shared model server across terminals, and still keep the nicer Pi ergonomics I actually wanted: wrappers, model config, wiki support, context-mode, subagents, and a few task-specific local helpers. That sounds tidy when I say it like that now. It was not tidy while I was putting it together. The repo is small, but the job it is doing is pretty specific: take a general agent stack and turn it into a repeatable local workstation setup with predictable runtime behavior.
I built Obsidian Remotion because I wanted a Markdown note to behave like a Remotion sketchbook. The practical goal was pretty simple: write prose, drop in `ts` or `tsx` blocks, and get live, type-checked Remotion previews in a side pane without cramming React and Remotion into the plugin bundle itself. That separation ended up being the whole project. I wanted the plugin to stay relatively small and handle editor integration, diagnostics, preview lifecycle, and UI. I wanted the vault to own `node_modules`, so the actual React and Remotion runtime stayed under the user's control. In practice that felt much less cursed than trying to smuggle a whole frontend runtime into an Obsidian plugin and then hoping version skew would somehow be fine.
I started this repo because I wanted a place to publish projects, then kept rebuilding it until it could actually support the kind of technical writing and project history I wanted to put on it.