Skip to content
View ninepointlabs's full-sized avatar

Block or report ninepointlabs

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.

Content in all repositories owned by your account will be closed.
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
ninepointlabs/README.md
Nine Point Labs nine-point star

Nine Point Labs

I build small, useful things.

Typing intro


Website Email Nostr X


✦ Whoami

I'm Tim β€” combat veteran, semi-retired technologist, part-time at an MSP, full-time dad in Whitehouse, Texas. I practice Tae Kwon Do with my daughters and spend the leftover hours in the workshop.

I write some of the code and direct a small team of AI agents for the rest. My one real skill is seeing clearly what a tool should feel like and being stubborn until it does.

Why nine? In the BahΓ‘'Γ­ Faith, nine is the number of completeness and of unity β€” especially the unity of humanity. Hence the nine-pointed star, and hence the name.

Influences: Ted Lasso and Andy Grammer. Optimism can be practical, kindness can be strong, and you can have grit without cynicism.


✦ The Workshop

πŸ” Omostrich

Local Nostr key-custody daemon. Holds an encrypted nsec, signs over a Unix socket for first-party Omarchy plugins, and answers NIP-46 remote-signing requests over relays.
QML Β· Nostr Β· site

πŸ“Š omostrich-db

Headless Nostr read/analytics sibling. Local nostrdb cache of your own notes and engagement, with MCP tools for agents. Never touches the signing vault.
JavaScript Β· MCP Β· nostrdb

πŸ—„οΈ Persistwise

Makes your writing last. Polls your feeds and archives every new post to the Wayback Machine and IPFS, plus a local copy on disk. First commercial offering β€” source private.
Rails 8 Β· SQLite/WAL Β· Solid Queue

πŸ“¦ autonomix-cli

Installs and tracks apps straight from GitHub Releases β€” Obtainium for the command line. Successor to autonomix (⭐ 50).
Go Β· Linux


✦ Omarchy Desktop

Quickshell/QML plugins for Omarchy β€” Beautiful, Modern & Opinionated Linux. All shipped under the ninepointlabs.* namespace.

Plugin What it does ⭐
barkeep Tends your bar β€” arrange, pin, update and remove shell plugins from one overlay
omarchy-spotify Cover-art chip, now-playing panel, search, playlists, podcasts, headless player
omarchy-fastmail-calendar Native CalDAV calendar β€” Day/Week/Month/Year, day detail, add events
omarchy-fastmail Live unread mail from every folder, via fm-cli
omarchy-theme-rotate Randomize your theme on demand or auto-rotate on a schedule
omarchy-ring-cameras Ring cameras in the bar β€” live view, snapshots, history, motion alerts
omarchy-upcoming TVmaze watchlist and next-episode dates
omarchy-hermes-chat Fire a quick message at my local Hermes agent without opening the app
omarchy-hey-calendar The HEY-CLI-backed predecessor to the CalDAV one
πŸ•ΉοΈ …and the ones that exist purely for fun
Plugin What it does
omarchy-zorkmachy Zork I, II and III in the bar, saved after every move
omarchy-dopewars The classic dopewars β€” single player, saved between turns
omarchy-theme-us-army Olive drab, Army gold, wallpapers from authentic division insignia
omarchy-ted-lasso-theme Believe.
omarchy-nene-royal A theme that got out of hand

✦ Terminal Tools

CLI applications that live in the terminal where they belong.

Tool Lang What it does
fm-cli Go Minimalist TUI email client for Fastmail over JMAP
autonomix-cli Go Install & track apps from GitHub Releases
tfz Ruby RSS/Atom reader that renders the full article. Novel concept, I know.
rjrnl Ruby Human-friendly command-line journal
writeapp Rust Distraction-free writing, no window manager required
mb-cli Go A pretty CLI for posting to Micro.blog
sendit-cli Ruby Post to Micro.blog and X at once, because copy-paste is for chumps
rubdupe Ruby Duplicate-file finder, written the week I ran out of disk again

✦ Apps & Applets

Project Platform What it does
jrnl-droid Flutter Syncing-friendly Android client for jrnl.sh + Syncthing
Primal-Pal Flutter Greasing-the-groove fitness nagger β€” random exercise snacks all day
doh Rust COSMIC applet: post to X, Bluesky, Nostr and Mastodon at once πŸš€
cosmic-applet-keyguide Rust Searchable keyboard-shortcut cheatsheets for COSMIC
MB-Manager Flutter Micro.blog management from your pocket
trekkie Flutter πŸ–– All 800+ Star Trek episodes in chronological order. Archived, still correct.

✦ The Stack

Tech stack

Arch Hyprland Neovim Obsidian Railway SQLite

Daily drivers β€” Arch Linux under Omarchy (Hyprland) with COSMIC on the side, because vanilla GNOME is for people who don't like fun. Neovim or VS Code depending on whether I'm feeling terminal-purist that day. Rails 8 on SQLite + WAL with Solid Queue β€” no Redis, no Sidekiq, no regrets. Fastmail for mail and calendar, Obsidian for everything I think.


✦ The Agent Team

Nine Point Labs runs with a crew. They draft, triage and propose; I approve and publish.

graph TD
    T["πŸ‘€ Tim<br/><i>final approval on everything</i>"]
    H["βš™οΈ Hermes<br/><i>desktop host Β· cron schedules</i>"]
    T <--> H
    H --> TC["✍️ Trent Crimm<br/>marketing drafts<br/><b>never publishes</b>"]
    H --> HG["🎩 Higgins<br/>GitHub notification triage"]
    H --> KL["πŸ”§ Keeley<br/>systems + troubleshooting"]
    H --> CL["πŸ““ Claude<br/>Obsidian vault"]
    TC -.->|draft| T
    HG -.->|triage| T
    KL -.->|report| T
    CL -.->|notes| T

    classDef me fill:#0f6b6e,stroke:#23272b,stroke-width:2px,color:#faf6ef
    classDef bot fill:#dcecec,stroke:#0f6b6e,stroke-width:1.5px,color:#23272b
    class T,H me
    class TC,HG,KL,CL bot
Loading

Yes, they're named after Ted Lasso characters. No, I will not be taking questions.

Most of them reach my projects through MCP servers I wrote β€” ninepointlabs.com has one at /mcp so posts and projects can be managed remotely, and omostrich-db exposes Nostr analytics the same way. This website is a public example of human–AI collaboration, and I'm not shy about which parts the agents wrote.


✦ Currently

  • Finishing omarchy-fastmail-calendar β€” a native CalDAV calendar for the Omarchy bar that works with any CalDAV server, not just Fastmail.
  • Rebuilding ninepointlabs.com in Rails 8 β€” two blogs, a projects manager, and an MCP server at /mcp so my agents can post without me.
  • Teaching barkeep to manage every other plugin I keep writing, because the bar got crowded.
  • Whatever idea won't leave me alone this week. There's usually one.

✦ By the Numbers

profile-details
repos-per-language most-commit-language
Contribution streak

✦ Elsewhere

ninepointlabs.com β€” projects, blog and journal, all in one place Β· X Β· Nostr Β· hello@ninepointlabs.com


I build small, useful things. Sometimes other people find them useful too.

Linux user who will absolutely judge your OS choice, then offer to help you switch distros anyway.

Pinned Loading

  1. fm-cli fm-cli Public

    A minimalist terminal-based email client for Fastmail, built in Go with JMAP

    Go 7 1

  2. omostrich omostrich Public

    Local Nostr key custody daemon (product name Omostrich): holds an encrypted nsec, signs on request over a Unix socket for first-party Omarchy plugins, and answers NIP-46 remote-signing requests ove…

    QML

  3. omarchy-ted-lasso-theme omarchy-ted-lasso-theme Public

    Ted Lasso theme for Omarchy Linux (Hyprland)