Numan Hayder

I build agent skills, developer tools and Linux desktop software. Most of it starts as a tool I needed myself.

Right now I'm shipping Modu on Discord, Slack and WhatsApp. The latest release is Copycat v0.1.0, out 12 October 2026.

Work

Copycat

Lets a coding agent rebuild a UI it can see, then diff the result against the original.

Reference: a pricing page with Starter, Team and Firm plans.
First rebuild: the heading is smaller, the Starter card has less top padding and the Firm plan is missing Audit trail.
  1. 1structureMissing list item "Audit trail"
  2. 2typographyHeading "Pricing" is 28px, reference is 32px
  3. 3spacingCard padding-top is 16px, reference is 24px
A fictional pricing page from Copycat's test fixtures. The first pass is recreated from the logged differences.

An open-source agent skill and browser toolkit. Point it at a live page, a local build or a screenshot. Playwright measures the reference: tokens, layout, responsive states and what each control really does. The agent rebuilds it in your stack, then a pixel and structural diff lists what still differs, most important first.

Node.js, Playwright and pixelmatch. Runs in Claude Code, Codex, Cursor and Antigravity. MIT licensed.

$ copycat compare --reference … --local …
desktop: 3.72% pixels differ, 44/45 elements matched
  1. [structure] Missing listitem "Audit trail"
  [typography] heading "Pricing": 32px → 28px
  [spacing] section: paddingTop 24px → 16px
$ # fix, run again
iteration 2 · desktop: 0.00% pixels differ
How it works
  1. Plan. Pick one scope: a component, page, flow, full site, screenshot, tokens, an audit or a compare.
  2. Inspect. Open the reference in real Chromium at each viewport and record screenshots, DOM, computed styles and breakpoints.
  3. Probe. Click menus, tabs and dialogs safely and record what actually changes.
  4. Build. The agent rebuilds the scope in your stack, with working controls.
  5. Compare. Run a pixel and structural diff with unstable pixels masked, and rank the fixes.
  6. Report. Only measured facts. Mocks and guesses are labelled as such.

Modu

One AI operator for Discord servers, Slack workspaces and WhatsApp numbers.

How a request goes: plan, risk, your approval, then the change. An illustration of the flow, not a screenshot.

You ask for a change in plain language. Modu plans it, shows the risk of each step, waits for your OK, applies it and keeps an undo. I build it at UBITS Technologies.

Next.js, TypeScript, Postgres and LLM agents. Live on Discord, Slack and WhatsApp.

Discord

  • Channels, roles and permissions from chat
  • Automod, anti-raid, tickets and leveling
  • Daily backups and weekly health reports

Slack

  • Help desk with response targets
  • /modu incident opens a channel, pages on-call, drafts the post-mortem
  • Async standups, polls and automations

WhatsApp

  • Shop assistant that quotes your real prices
  • Bookings, reminders and payment links
  • Shared team inbox and voice-note transcripts

Lost Island for Sway

A pure-black dynamic island for the Sway desktop.

Opening the island, pausing playback and closing it again. Recorded on my desktop, 11 October 2026.

My Linux build of Marco Zorn's Lost Island. The idle pill shows the Arch mark and the clock. Opened, it holds a player tinted by the album art, round switches for Wi-Fi, Bluetooth and audio, a focus timer, screen recording, and launchers for Claude Code, Codex and Cursor Agent. Media keys drive any MPRIS player.

Python, GTK4 and gtk4-layer-shell on Wayland. MIT licensed.

Based on Lost Island v1.7.2 (opens in a new tab) by Marco Zorn, MIT. The original attribution is kept.

Controls and requirements
Switches
Wi-Fi, Bluetooth, sound and mic. Blue means on; right-click opens the settings.
Tools
Focus mode, screen and area shots, color picker, recording and AirPlay.
Clipboard
The last 25 copies, kept in memory only and never written to disk.
Power
Lock, log out, sleep, restart and shut down. The risky ones need a second click.
Pill
Scroll for volume, middle-click to play or pause, swipe to change the face.
Requires
Sway on Wayland, Python 3.11+, GTK4 with libadwaita, gtk4-layer-shell, wf-recorder, hyprpicker and UxPlay for AirPlay.
The collapsed pill: the Arch mark and the clock.
Idle
The expanded card in pure black: a player showing Yaseen by Mishary Alafasi, two rows of round controls with sound and mic on in blue, a volume bar, launchers for Claude, Codex and Cursor, and a 25-minute focus timer.
Open, playing

More projects

  • nummodeReads a long prompt, picks the agent skills it needs, then runs and checks the work.Agent skill

    A routing layer for agent harnesses. Version 2 ships route.py: it detects the mission in a brief, ranks every installed skill and locks one to seven of them. Then it executes and verifies with real commands, without asking which skills to use.

    Python and shell. Works in Claude Code, Cursor, Codex and Antigravity.

    Stages
    Intake, mission, route, invoke, execute, verify.
    Scoring
    A skill gains points when its description overlaps the prompt, when the mission's playbook lists it and when the stack matches. Weak or duplicate matches lose points. Skills scoring 3 or more are kept.
    nummode · build · skills: writing-plans, frontend-design,
            verification-before-completion
  • QuranFlowQur'an recitation in the background while you code.CLI

    A small Linux CLI that streams a chosen Surah and reciter through mpv. It works the same from a terminal, Claude Code, Cursor or Codex, and an agent call costs one command and one line of output.

    Python 3.11+ and mpv on Linux. 114 Surahs. No telemetry.

    $ play-quran al-kahf --reciter dosari
    $ play-quran pause
    
    # from an agent, one line back:
    playing · 036 Yaseen · Mishary Alafasi · vol 65
    A 30-second teaser. Sound design only, no recitation.
  • AI UsageShows Cursor, Claude and Codex usage limits, read from files already on disk.Desktop widget

    A GNOME Shell extension and a native Windows widget. It reuses the credentials each CLI already stored, so there is no separate sign-in.

    JavaScript for GNOME Shell 46–50, C++ and Win32 for Windows. MIT licensed.

    Reads
    ~/.config/cursor/auth.json, ~/.claude/.credentials.json and ~/.codex/auth.json.
    Warnings
    The ring turns amber past 75% of a limit and red past 90%.
    Tokens
    Expired Claude tokens are renewed with the saved refresh token and written back, so the CLI stays signed in.
  • PxForgeTurns a codebase into one Markdown file an LLM can read.Terminal app

    Walks a project, analyzes every file with an LLM and writes one document: summary, directory tree, per-file notes and a system prompt tailored to that code. Paste it once into Claude, ChatGPT, Gemini or Cursor.

    Python with a Textual interface. Linux, macOS and Windows. MIT licensed.

    Providers
    OpenAI, Anthropic, Groq, OpenRouter and local Ollama models.
    Large files
    Chunked, analyzed in parts, then merged into one summary.
    PxForge settings screen in the terminal: provider set to Anthropic, a model picker, Fast or High Quality mode, and the preferred AI for viewing output.
    The settings screen.
  • AyahPathQur'anic verses for the situation you are in.Web app

    Built for the Quran Hackathon. Pick a situation such as stress, anger or patience and read related verses with translation, tafsir, recitation audio and connected hadith. Journaling and prayer tracking stay on the device.

    Python, Flask, SQLite and plain JavaScript. Works offline as a PWA.

    Translations
    Urdu, English, French, Indonesian, Bengali, Turkish and Hindi.
    Accessibility
    Modes for protanopia, deuteranopia and tritanopia, high contrast and adjustable text size.
    AyahPath home screen showing the ayah for today, Al-Anfal 8:2, in Arabic with an English translation, a streak counter and a list of life situations.
    Home, with the ayah for today.

Smaller repositories

Every public repository (opens in a new tab)

Ship log

Only things that shipped, newest first.

October 2026

  1. Copycat v0.1.0: open source

    • One skill for Claude Code, Codex, Cursor and Antigravity
    • Inspect, probe states, rebuild, then pixel + structural diff
    • 77 tests, 22 of them in a real browser
  2. nummode v2.0.0: the router

    • route.py detects the mission and ranks every installed skill
    • Slot tables per mission in the playbooks

    QuranFlow for Claude Code

    • One-call --brief mode: one command, one output line
    • 30-second teaser

    Lost Island redesign

    • Pure black card, round switch grid, art-tinted player
    • Clipboard history, color picker, power menu
    • New screenshots and an 11-second demo

    Modu: help desk, incidents, bookings

    • Slack: response targets and /modu incident
    • WhatsApp: bookings, payment links, shared inbox
  3. Automations on Slack and WhatsApp

    • When-this-then-that rules on messages, joins and reactions
    • Member suggestions with voting
  4. Modu for Slack and WhatsApp go live

    • slack.ubits.tech and whatsapp.ubits.tech
    • Same assistant and approvals as Discord

About

I'm Numan, byte4day on GitHub. I work across developer tooling, applied AI, full-stack web apps, Linux desktop systems, automation and security.

Most of what is on this page started as a tool I needed myself, then got cleaned up and published. Modu is the exception: I build it at UBITS Technologies, and its source is private.

What I reach for

  • TypeScript and Next.js for products and consoles, in Modu and this site.
  • Python for CLIs, desktop apps and tooling, in nummode, QuranFlow, PxForge, Lost Island and AyahPath.
  • JavaScript for browser tooling, GNOME Shell and bots, in Copycat, AI Usage and NezoPer.
  • C++ and Win32 for a native Windows widget, in AI Usage.
  • GTK4, Textual and Tkinter for desktop and terminal interfaces, in Lost Island, PxForge and WhiteBoard.
  • Postgres and SQLite for product data, in Modu and AyahPath.