# Labs — Mustafa Saraç

> Agentic workflows, developer tools and AI experiments. Best work first, then smaller entries, then tools shipped by the agent MORTY.

Web: https://mustafasarac.com/labs/ · Reviewed 2026-10-07. Every entry passes the gate in scripts/labs-gate.js (own repo, README, licence, status matches CI, links answer 200, no hype words).

## Featured

### CITADEL

- Status: Case study, featured
- Kind: Live agent map · TypeScript, three.js, Bun, Python
- Year: 2026
- Closed source (case study)
- Demo: https://mustafasarac.com/labs/citadel/demo/
- Engine: pdoom-video (MIT): https://github.com/mexicat/pdoom-video
- Engine adaptation: evangelion (MIT): https://github.com/bizarro/evangelion

A live map of the AI coding agents on one Mac: when an agent stops to ask a question or for permission, its unit turns red, an alarm line runs to you and a counter shows how long it has waited. The demo plays a made-up world in your browser, with three agents, one permission request and your approval, and no real sessions, agenda or mail.

Note: Status: prototype, closed source. The rendering engine is Giacomo Magnanini's pdoom-video (MIT), via Luis Bizarro's evangelion adaptation (MIT); CITADEL adds the map, the live data path and the alarms.

- 237 commits, 29 Sep to 4 Oct 2026
- 835 tests in 74 test files (TypeScript and Python), all passing on 6 Oct 2026
- 52 lines changed in the reused engine; the world, probe, collector and alarms are new
- The demo and the video run on made-up data only; the demo build has no link to the collector

### Silent-Ear

- Status: Prototype, v1.3.0, featured
- Kind: Industrial edge service · Rust
- Year: 2025
- Licence: MIT
- Demo: https://silent-ear.neurabytelabs.com/
- Repository: https://github.com/neurabytelabs/silent-ear
- 3D test cell: https://silent-ear.neurabytelabs.com/cell/
- Run card (#215811): https://proof.neurabytelabs.com/r/215811/
- Source: https://github.com/neurabytelabs/silent-ear

A Rust service that turns bearing vibration into one RMS value per window and flags a reading above a fixed mean + kσ reference, without an ML framework. The live demo is a bearing lab in the browser: hear a simulated bearing wear out, give it a race or ball defect, and follow the samples through the housing resonance and the envelope spectrum to the same rule. The service publishes over REST, WebSocket, MQTT and Prometheus.

Note: Built from Proof of Invention prompt #215811 with a coding agent; I designed the prompt machine and verified the result. For demonstration and education; not certified for safety-critical use. The demo is a simulation, not sensor data.

- 42 tests (cargo test)
- Mean + 3σ anomaly rule, no ML framework
- Docker images for AMD64 and ARM64

### Glyphbooth

- Status: Released, v0.1.0, featured
- Kind: WebGL2 app · browser + desktop
- Year: 2026
- Licence: MIT
- Demo: https://glyphbooth.mustafasarac.com/
- Repository: https://github.com/mrsarac/glyphbooth
- Source: https://github.com/mrsarac/glyphbooth
- Downloads: https://github.com/mrsarac/glyphbooth/releases/latest

Turns a camera, a screen, a video or a song into live ASCII, dither, halftone, braille or pixel art. Runs in the browser, with desktop builds for macOS, Windows and Linux.

Note: Built in one night by one person directing five AI coding agents, with a review step and CI.

- 5 render modes

### Proof of Invention

- Status: Prototype, featured
- Kind: Web page · single HTML file
- Year: 2026
- Licence: MIT
- Demo: https://proof.neurabytelabs.com/
- Repository: https://github.com/neurabytelabs/proof-of-invention
- First run (#124809): https://proof.neurabytelabs.com/r/124809/
- Run #215811: https://proof.neurabytelabs.com/r/215811/
- Source: https://github.com/neurabytelabs/proof-of-invention

A prompt machine with no language model inside. It turns a number into a build dare for a frontier model, and keeps an honest wall of the runs.

Note: Every sentence traces back to a gene and an atlas entry, and the same number always gives the same prompt. The wall holds two cards: the machine's own build and #215811, the Silent-Ear bearing lab.

- 214,704 prompts in the frozen version 1
- 49 domains, 8 genes, 3 courage levels
- Self-test over every number runs in CI
- No backend, no API key, no model at run time

### Radio from Samples

- Status: Released, featured
- Kind: Software AM/FM radio · one HTML page
- Year: 2026
- Licence: MIT
- Demo: https://radio.mustafasarac.com/
- Repository: https://github.com/neurabytelabs/radio
- Explainer film: https://radio.mustafasarac.com/numbers/
- Source: https://github.com/neurabytelabs/radio
- Prompt #124809: https://proof.neurabytelabs.com/r/124809/

An AM/FM radio that runs in the browser: four transmitters, a road between two towers, and a receiver that demodulates every sound from 192,000 samples per second. Step through five receiver stages from crystal set to FM limiter, drive between the stations, and zoom from the block diagram down to single filter taps.

Note: Built from Proof of Invention prompt #124809 with a coding agent; I designed the prompt machine and verified the result.

- 192,000 samples per second
- Five receiver stages, crystal set to FM limiter
- No audio files: every sound is synthesized and demodulated in code

### PHENOMENA

- Status: Alpha, featured
- Kind: Interactive web instrument · TypeScript
- Year: 2026
- Licence: MIT
- Demo: https://phenomena.mustafasarac.com/
- Repository: https://github.com/neurabytelabs/phenomena
- Source: https://github.com/neurabytelabs/phenomena

A browser instrument with four bounded physics and biology scenes (PELAGIC, STRATA, ORBIT, CHORUS) drawn on one Canvas 2D surface. Pointer and touch input perturb each scene, and the system settles when released.

Note: Release 1 only. Static site with no backend, accounts or analytics.

- Four scenes on one canvas
- Unit tests and a build check run in CI
- No backend, no analytics, no accounts

### Prompt Atlas

- Status: Released, featured
- Kind: Learning cards · English + Turkish
- Year: 2026
- Licence: CC-BY-4.0
- Demo: https://mustafasarac.com/prompt-atlas/
- Repository: https://github.com/mrsarac/prompt-atlas
- Türkçe: https://mustafasarac.com/prompt-atlasi/
- Source: https://github.com/mrsarac/prompt-atlas

A set of 81 prompting and learning cards with 243 worked scenarios. The examples are teaching material, not benchmark results.

- 81 cards
- 243 scenarios

### RUNE

- Status: Prototype, featured
- Kind: Prompt framework + A/B harness
- Year: 2026
- Licence: MIT
- Repository: https://github.com/neurabytelabs/rune
- Source: https://github.com/neurabytelabs/rune
- Pilot results: https://github.com/neurabytelabs/rune/blob/main/docs/BENCHMARKS.md
- Hermes Agent skill: https://github.com/neurabytelabs/rune-skill

Restructures a prompt into 8 layers and ships a blind A/B harness that compares it with the raw prompt. In my own pilot (50 pairs, 2 Gemini models) the amplified prompts were preferred in 19.6% of decided pairs, so they lost.

Note: I published the negative result and removed the earlier "~45% improvement" claim from the README and docs.

- 50 prompt pairs
- Preferred in 9 of 46 decided pairs
- Negative result

### Agentic Loop Atlas

- Status: Alpha, featured
- Kind: Registry · AI coding agents
- Year: 2026
- Licence: MIT
- Repository: https://github.com/mrsarac/awesome-agentic-loops
- Source: https://github.com/mrsarac/awesome-agentic-loops

A registry of reusable operating loops for AI coding agents such as Claude Code, Codex, Cursor and Hermes. Each loop names its trigger, its proof and its stopping condition, and CI validates every entry against a schema.

- 11 loops
- 6 GitHub stars

### agent-authority-sim

- Status: Prototype, featured
- Kind: Research simulator · Python
- Year: 2026
- Licence: MIT
- Repository: https://github.com/mrsarac/agent-authority-sim
- Source: https://github.com/mrsarac/agent-authority-sim

A deterministic, model-free simulator of a finite authority model for AI agents: agents get narrow, scoped authority and return evidence, and a separate trusted layer decides what becomes canonical state.

Note: A simulator proof, not a production agent runtime. The full property proof is not established yet, and the README lists what is still missing.

- 207 tests pass in CI
- Eight strict contract kinds, one JSON Schema
- No model, network or subprocess in the simulator

### Hermes Guide

- Status: Released, featured
- Kind: Visual guide · English + Turkish
- Year: 2026
- Licence: CC-BY-4.0
- Demo: https://hermes-guide.neurabytelabs.com/en/
- Repository: https://github.com/neurabytelabs/hermes-guide
- Türkçe oku: https://hermes-guide.neurabytelabs.com/tr/
- Source: https://github.com/neurabytelabs/hermes-guide

A static guide to operating Hermes Agent from the terminal: setup, memory and skills, the messaging gateway and scheduled jobs. Commands were checked against Hermes Agent v0.21.5. Unofficial; not affiliated with Nous Research.

- Text CC BY 4.0, code MIT

### cactus-rs

- Status: Alpha, v0.2.0, featured
- Kind: Rust library · on-device AI
- Year: 2025
- Licence: MIT
- Repository: https://github.com/mrsarac/cactus-rs
- Source: https://github.com/mrsarac/cactus-rs

Unofficial Rust bindings for the Cactus on-device inference engine: chat, streaming, embeddings and speech-to-text. Distributed from GitHub, not crates.io.

Note: Listed in the upstream README in December 2025 (see contributions below); upstream has since shipped its own Rust bindings.

- 11 GitHub stars

### RustBridge

- Status: Prototype, v0.2.0, featured
- Kind: Gateway service · Rust
- Year: 2025
- Licence: MIT
- Repository: https://github.com/neurabytelabs/rustbridge
- Source: https://github.com/neurabytelabs/rustbridge

A gateway written in Rust that reads Modbus TCP and RTU devices and publishes the values over a REST API, WebSocket, MQTT and Prometheus metrics.

Note: Not tested against real PLCs or serial hardware; throughput not measured. There is no live demo. MQTT TLS is not implemented.

- 63 tests
- CI runs tests, clippy, rustfmt and cargo audit

### Glossa

- Status: Alpha, v0.1, featured
- Kind: Command-line tool · Python
- Year: 2026
- Licence: MIT
- Repository: https://github.com/neurabytelabs/glossa
- Source: https://github.com/neurabytelabs/glossa

Answers questions about your own documents with citations back to the source, using NotebookLM through the unofficial notebooklm-py library. It needs a logged-in Google account.

- Installs from GitHub

### Switch Brief

- Status: Case study, featured
- Kind: Affiliate research site · Live
- Year: 2026
- Closed source (case study)
- Demo: https://www.switchbrief.com/en-us
- First article: 75% vs TKL: https://www.switchbrief.com/en-us/blog/75-percent-vs-tkl-keyboards

A mechanical keyboard comparison and buying-guide site that earns Amazon affiliate commission. I run the product catalog, write the articles and keep an evidence ledger for every claim; the storefront runs on a managed platform (UseBravery).

Note: Repository is private. The product is keyboard research, not AI work.

- Live since July 2026; 69 public products (read-back 22–23 Sep 2026)
- First buying guide published 28 Sep 2026
- $1.73 commission from one order, 23 Aug–21 Sep 2026, per the Amazon Associates report recorded in the project log; payout not verified

## More from the lab

### cc-aqt-master

- Status: Prototype
- Kind: Command-line tool · TypeScript
- Year: 2026
- Licence: MIT
- Repository: https://github.com/mrsarac/cc-aqt-master
- Source: https://github.com/mrsarac/cc-aqt-master

A command-line tool that reads the local Claude Code session logs and shows token use and estimated cost per session.

Note: Last verified 2026-10-06 against Claude Code 2.1.291. Not actively maintained; the cost figure is a rough estimate.

- Build and 158 tests pass in CI
- Reads only local files, no network calls

### OMNI-FLUX

- Status: Prototype
- Kind: Web app · WebGL2 · TypeScript
- Year: 2026
- Licence: MIT
- Demo: https://neurabytelabs.github.io/omni-flux/
- Repository: https://github.com/neurabytelabs/omni-flux
- Source: https://github.com/neurabytelabs/omni-flux

A browser visualizer that draws fractal patterns with WebGL2 fragment shaders and feeds each frame back into the next.

Note: First version generated in Google AI Studio from one structured prompt, then fixed in follow-up sessions. No tests; frame rate not measured.

- 11 presets, 9 sliders
- Optional microphone input, PNG screenshot and WebM recording

### One night, five agents: shipping Glyphbooth

- Status: post, 2026-10-06
- Kind: Post · English + Turkish
- Year: 2026
- Read in English: https://mustafasarac.com/posts/one-night-five-agents-shipping-glyphbooth/
- Türkçe oku: https://mustafasarac.com/posts/bir-gece-bes-ajan-glyphbooth/

The build story of Glyphbooth: the plan, the rule that made subagents write the code, and what screenshots, tests, review and CI caught.

- 12 commits during the night
- 154 unit tests

### usb-c-sanity

- Status: Prototype, v0.1.2
- Kind: Command-line tool · macOS
- Year: 2026
- Licence: MIT
- Repository: https://github.com/mrsarac/usb-c-sanity
- Source: https://github.com/mrsarac/usb-c-sanity

A read-only macOS script that reports the USB-C speed and power signals macOS has negotiated for the current cable, port and device. It does not certify or benchmark cables.

- No sudo, no network calls

### Lithosphere

- Status: Prototype
- Kind: Web app · WebGPU · TypeScript
- Year: 2025
- Licence: MIT
- Demo: https://lithosphere.mustafasarac.com/
- Repository: https://github.com/neurabytelabs/lithosphere
- Source: https://github.com/neurabytelabs/lithosphere

A browser app that renders a glowing orb with Three.js and WebGPU shaders, with a panel to change the shader parameters live.

Note: Needs a browser with WebGPU. No tests; the type check reports 6 errors, and CI runs only the build.

- 10 built-in presets
- Optional Gemini suggestions use your own API key, stored in your browser

## Built by MORTY

MORTY is an agent I designed and run. It looks for small, recurring macOS and developer annoyances, writes a tool with a coding agent, tests it in CI and publishes a release. These are ten of its public repositories on GitHub.

Small, mostly read-only developer tools shipped by an agent loop. MIT licence, green CI and a tagged release each; no adoption claims.

- diskblame v0.1.1 (https://github.com/00xmorty/diskblame): Explains what is probably inside macOS “System Data” disk usage.
- guipath-doctor v0.1.0 (https://github.com/00xmorty/guipath-doctor): Shows why a command works in Terminal but not from a Mac app, by comparing the two PATHs.
- cltcheck v0.1.0 (https://github.com/00xmorty/cltcheck): Explains “invalid active developer path” and missing xcrun: CLT, DEVELOPER_DIR, clang and SDK checks.
- brewsunset v0.1.0 (https://github.com/00xmorty/brewsunset): Lists installed Homebrew packages that are deprecated or disabled, with dates and replacements.
- branchradar v0.2.0 (https://github.com/00xmorty/branchradar): Sorts local Git branches by age, with merge status and ahead/behind counts.
- whyawake v0.1.1 (https://github.com/00xmorty/whyawake): Turns pmset sleep assertions and wake logs into a short report of what keeps a Mac awake.
- eject-doctor v0.1.1 (https://github.com/00xmorty/eject-doctor): Explains why an external disk refuses to eject.
- micwho v0.2.0 (https://github.com/00xmorty/micwho): Shows which processes CoreAudio currently sees using the microphone.
- time-machine-watchdog v0.3.1 (https://github.com/00xmorty/time-machine-watchdog): Checks that Time Machine has a destination and that the latest backup is fresh.
- continuity-doctor v0.1.1 (https://github.com/00xmorty/continuity-doctor): Collects evidence when two Macs stop seeing each other for Universal Control or AirPlay.

## Open-source contributions

- dmtrKovalenko/fframes#150 (merged 2026-09-28): Update the README for 1.0 and agent workflows https://github.com/dmtrKovalenko/fframes/pull/150
- glitch-rabin/swarma#1 (merged 2026-03-24): Fix the MCP stdio transport: prevent stdout corruption and a pipe crash https://github.com/glitch-rabin/swarma/pull/1
- cactus-compute/cactus#270 (merged 2025-12-29): Add the Rust SDK (cactus-rs) to the community bindings list https://github.com/cactus-compute/cactus/pull/270
