Skip to content
View renerocksai's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Organizations

@nim-artificial-intelligence @zigzap @nvim-telekasten

Block or report renerocksai

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
renerocksai/README.md
Rene Schallner: software engineer turned AI researcher and engineer. I build the tools I use every day.

renerocks.ai @renerocksai on X Rene Schallner on LinkedIn Sponsor renerocksai

Most of my projects start with a question: can I do this without that? I build the thing, use it for real, and write down the verdict. The good ones grow up and get a successor. So my repos aren't a list. They're a family tree:

A metro map of my projects. Notes line: sublime_zk, sublimeless_zk, telekasten.nvim, omajop, omajot. Web line: zap, bounded/http, baz, which serves the omajot hub. Slides line: Bûllets, slides, rayslides; bullets-server's multiplayer grew into rayslides' phone remote. No-cloud line: dockercr leads to omajot.

omajot is where the lines meet: notes from the green line, a hub served by baz from the orange one, and the no-cloud rule from the blue one.

🖥️ Omarchy

The Omarchy wordmark above an Omarchy bar holding my five plugins: omagma, omajot, omajop, omapress and neomarchy.

Omarchy is my desktop. When I miss something in the bar, I write a plugin for it. There are five so far.

omagma's terminal calendar: one week combining calendars from three Google accounts, with meetings and Meet links omagma: Gmail and Google Calendar in the terminal. Threads, Vim keys and Markdown compose; one week across three accounts; meetings with Google Meet links, guests from Contacts, and a reminder that joins in the right Chrome profile. Plus a read-only bar dropdown and an agent CLI. Website The omajot main window on Omarchy omajot: my own notes app, synced by my own hub. A dropdown and a main window in the bar, full keyboard control, and the same notes in the terminal and on my phone.
The omajop panel: folders and tags, notes, and the rendered note omajop: a Joplin notes browser. Folders and tags, the note list and the rendered note, one click away. omajot's predecessor. When you're ready to move, omajot imports Joplin in one command. The omapress panel listing the latest Omarchy news omapress: Omarchy news in the bar. The newspaper turns red when there are unread posts, and a keyboard-driven panel reads them without a browser. Works offline.
The neomarchy panel with favorite neowake sessions and a player neomarchy: search, favorite and play neowake sessions from the bar. Playback runs through mpv with MPRIS, so the media keys just work. Install
Four of them are one command each:
u=https://github.com/renerocksai
for p in omajot omajop \
         omapress neomarchy; do
  omarchy plugin add $u/$p --enable
done
omagma ships as a verified release bundle: give your coding agent its website and let it walk you through the Google setup. omajot also needs its hub: see Get started.

🧪 Case studies

The question, the trade, the verdict.

omagma: Gmail and Calendar without a 2 GB browser tab?

One Gmail tab was using roughly 2 GB of RAM on my desktop. So omagma brings Gmail and Google Calendar into the terminal instead, for up to three accounts kept apart. The TUI does the whole job: threads, search, Vim keys, labels, attachments, invitations, and Markdown compose with a cancellable send countdown. Calendar shows all three accounts in one week, creates and reschedules meetings with Google Meet links and guests picked from Contacts, and reminds me ten minutes before a meeting, with Join opening in that account's Chrome profile. A read-only dropdown in the Omarchy bar shows new mail at a glance, and a JSONL agent CLI lets agents work mail and calendar with only the per-account grants I approve. All of it is Zig: a static musl binary on Linux, and the same TUI controller even runs in the browser as WebAssembly.

Trade: always-open Gmail and Calendar tabs, for a terminal, a bar and an agent interface that each get exactly the permissions I grant them.
Verdict: ✅ Mail and calendar in the terminal, and the bar holds three accounts in about 31 MB, against one 2 GB tab.

omajot: synced notes with no cloud at all?

Apple-Notes-like markdown notes in the Omarchy bar, in the terminal, and on my iPhone. No Dropbox: a small Zig hub syncs every device over Tailscale. The hub runs on my always-on M3 Max, the same box my coding agents already live on. Hub-and-spoke is a pattern I trust, so notes got the same treatment. A CRDT written in Zig merges concurrent edits, and the same Zig core runs natively on the desktop and as core.wasm in the phone's web app. The hub is a baz app.

Trade: Dropbox's zero-setup sync, for notes that never leave my own machines, work offline, never conflict, and that agents can script.
Verdict: ✅ Daily driver. My notes live there now.

dockercr: a container registry with nothing but SSH?

omajot's older sibling in spirit. ghcr.io has download limits. A self-hosted registry wants TLS, a CA and access tokens. dockercr skips all of it: the registry only listens on loopback, and SSH port forwarding does the authentication and the encryption. No Docker Hub, no certificates.

Verdict: ✅ Push to production like a boss.

bounded/http + baz: fast, and never past its limits?

Zap (★ 3.4k) made Zig backends blazingly fast on top of facil.io, a C library. bounded/http replaces that foundation with pure Zig on io_uring, kqueue and IOCP, inspired by TigerStyle: connections, buffers, queues and workers are reserved up front. When capacity runs out, it pushes back instead of growing. On Linux it needs no libc, so a server can be one static binary. Baz (Bounded Async Zap) puts Zap's typed endpoints on top, with streaming, SSE, Mustache templates and cookies.

Verdict: ✅ Good enough to trust with my notes: it runs the omajot hub.

rrisc: can I build the CPU I drew in the nineties?

In the early nineties I designed a small Radical RISC CPU on paper. At Christmas 2020 I finally built it: VHDL, simulated with ghdl and gtkwave from vim and tmux, with its own assembler, running on a Xilinx Spartan-7 FPGA board. The whole story is written up, from microcode sketches to the first executed instruction.

Verdict: ✅ Nearly thirty years late, and it runs.

rayslides: can slides stay plain text and still not suck?

My third answer to the same question. Bûllets (2020) turned the Godot game engine into a slide show: interactive animations, a game in your deck, and a multiplayer mode through bullets-server. slides (2021, my first Zig project) went small: one executable, Dear ImGui and OpenGL, a markdown-ish text format, at 10 000 FPS. rayslides, built on raylib, keeps the readable source and adds a visual Studio that stays in sync with it, reveals, transitions and morph animations, and an embedded Neovim. Bûllets' multiplayer grew up, too: it's now a phone remote with speaker notes, plus Crowdplay audience polls.

Verdict: ✅ Nobody has noticed I'm not using PowerPoint.

tigerfans: can a database built for money sell conference tickets?

A ticket booking system on TigerBeetle. Tickets and goodies are accounts and transfers. A checkout places a time-limited hold, a pending transfer, and the payment webhook either finalizes or voids it. It uses FastAPI, Redis and PostgreSQL, has load tests, and I wrote an auto-batcher for the async TigerBeetle client along the way. Try it live.

Verdict: ✅ If you can reserve it or run out of it, TigerBeetle can count it.

📦 More experiments
Project What it is
gpt4all.zig A Zig build of a terminal chat client for a local LLM
rj2obs Roam Research JSON to Obsidian markdown, keeping block references
real-prog-qwerty A real programmer's QWERTY keyboard layout
zigllmwiki An agent-first knowledge base for Zig 0.16 systems programming
work-graph GitHub-backed orientation and checkpoints for coding agents
aercbook An address book for the aerc mail client, in Zig
0xeefe Easy encryption for everyone
pdfshrink Makes scanned PDFs much smaller, with readable text

⚡ zig ⚡  ·  Vienna  ·  renerocks.ai

Pinned Loading

  1. technologylab-ai/baz technologylab-ai/baz Public

    Baz — Bounded Async Zap. A modern Zig 0.16.0 web framework on bounded/http.

    Python 41 2

  2. technologylab-ai/bounded-http technologylab-ai/bounded-http Public

    bounded/http — for servers that stay within their bounds. Fast by design. Explicit about limits. A Zig HTTP/1.1 framework.

    Zig 12 1

  3. technologylab-ai/rayslides technologylab-ai/rayslides Public

    renerocksai/slides translated to raylib

    Zig 9

  4. tigerfans tigerfans Public

    TigerBeetle Ticket Booking Example

    HTML 66 4

  5. nvim-telekasten/telekasten.nvim nvim-telekasten/telekasten.nvim Public

    A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal, based on telescope.nvim

    Lua 1.7k 102

  6. omajop omajop Public

    A Joplin notes browser for the Omarchy shell bar

    JavaScript 2 2