crenshawdev

Rust tools for the Linux desktop, built in the open and distributed on my own terms. Weather apps and the crate under them, a power daemon with fan curves, and the planning system that keeps my AI-assisted work honest.

crenshawdev

Rust tools for the Linux desktop, built in the open and distributed on my own terms.

Everything on this shelf is something I wanted to exist. None of it was requested, none of it has a roadmap I owe anybody, and it ships when it works rather than when a date says it should. Two of them are built for COSMIC, the rest do not care what desktop you run.

The shelf

tempest. A weather applet for COSMIC. Current conditions, hourly and 7-day forecasts, severe-weather alerts, and air quality, with no account and no API key anywhere in the path. Self-distributed as a Flatpak.

atmos. The whole app instead of the applet, sitting on the same data core, with a native frontend per desktop rather than one toolkit pretending to be all of them. It reads the host theme and matches it on COSMIC and KDE Plasma. Pre-release beta, on my own Flatpak remote while it stabilizes, and there is a TESTER.md if you want to help break it.

weathervane. The crate both of those sit on. Weather, air quality, and alerts from public APIs, handed back as clean Rust types, no UI and no polling and no config storage, you call the async functions and you get data. Published on crates.io.

powercurve. A power-management daemon with fan curves built in, speaking power-profiles-daemon so the desktop tooling you already have keeps working instead of having to learn about me. On the AUR and packaged for Debian.

cadence. A planning and execution system for Claude Code, built on the assumption that the model will now and then hand back something that looks finished and is not. The roadmap, the plans, and the verification all live in files and in git rather than in a conversation, the subagents are disposable, and a check that could not run never gets to read as a check that passed. The git rails are a PreToolUse hook rather than a paragraph of instructions, because a model will talk itself around a paragraph.

hindsight. Local cross-session memory for Claude Code. It captures session transcripts before cleanup takes them and archives them verbatim on my own disk, so the thing I worked out three weeks ago is still findable today.

packages. The plumbing behind pkg.jcrenshaw.dev. It assembles one signed APT repo, one signed RPM repo, and one shared Flatpak remote out of each app's latest release, and the build gate installs from all three before any of it is allowed to publish.

Where this runs

This forge is mine, Forgejo on my own droplet with its own Actions runner, so when CI runs it runs on hardware I pay for rather than on a platform that could reprice it or retire it. There is a second Forgejo at the house for the git that never leaves the house. This one is the FOSS half, out where people can actually clone it. Some of the work gets pushed out to GitHub as well for people who would rather read it there, but this is where it lives.

Packages come from pkg.jcrenshaw.dev, signed, no middleman.

Bugs and questions go in the issue tracker on the repo. Everything else is at jcrenshaw.dev.

The signed APT, RPM, and Flatpak repos behind pkg.jcrenshaw.dev, assembled from each app's latest release and install-verified before publish.
Updated 2026-07-30 03:32:11 +00:00