niri-wm/niriPublic

A scrollable-tiling Wayland compositor.

AI summary: A Wayland compositor that arranges windows in an infinite, scrollable horizontal strip.

Stars
26.7K
+55 today
Forks
1K
Watchers
77
Open issues
223
Open PRs
239
Contributors
~202
Commits
2.8K
Branches
16

RustGPL-3.0Created Aug 10, 2023Last push 4d agoLatest release v26.04+184 stars this week+255 this month

Star history

since Feb 8, 2026
010K20KFeb 2026Apr 2026Jun 2026Aug 2026
26.7K stars as of Aug 7, 2026, tracked back to Feb 8, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 3 commits2025-08-04: 3 commits2025-08-05: 1 commit2025-08-06: 0 commits2025-08-07: 2 commits2025-08-08: 0 commits2025-08-09: 1 commit2025-08-10: 0 commits2025-08-11: 3 commits2025-08-12: 9 commits2025-08-13: 3 commits2025-08-14: 3 commits2025-08-15: 2 commits2025-08-16: 2 commits2025-08-17: 10 commits2025-08-18: 9 commits2025-08-19: 6 commits2025-08-20: 3 commits2025-08-21: 5 commits2025-08-22: 6 commits2025-08-23: 1 commit2025-08-24: 2 commits2025-08-25: 2 commits2025-08-26: 6 commits2025-08-27: 37 commits2025-08-28: 1 commit2025-08-29: 2 commits2025-08-30: 1 commit2025-08-31: 1 commit2025-09-01: 1 commit2025-09-02: 10 commits2025-09-03: 4 commits2025-09-04: 4 commits2025-09-05: 1 commit2025-09-06: 3 commits2025-09-07: 2 commits2025-09-08: 1 commit2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 2 commits2025-09-13: 0 commits2025-09-14: 1 commit2025-09-15: 0 commits2025-09-16: 6 commits2025-09-17: 1 commit2025-09-18: 4 commits2025-09-19: 1 commit2025-09-20: 9 commits2025-09-21: 3 commits2025-09-22: 1 commit2025-09-23: 1 commit2025-09-24: 1 commit2025-09-25: 7 commits2025-09-26: 7 commits2025-09-27: 2 commits2025-09-28: 2 commits2025-09-29: 0 commits2025-09-30: 10 commits2025-10-01: 2 commits2025-10-02: 2 commits2025-10-03: 0 commits2025-10-04: 4 commits2025-10-05: 5 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 1 commit2025-10-13: 2 commits2025-10-14: 1 commit2025-10-15: 7 commits2025-10-16: 1 commit2025-10-17: 2 commits2025-10-18: 3 commits2025-10-19: 4 commits2025-10-20: 1 commit2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 1 commit2025-10-25: 1 commit2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 7 commits2025-10-30: 2 commits2025-10-31: 3 commits2025-11-01: 1 commit2025-11-02: 0 commits2025-11-03: 1 commit2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 1 commit2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 2 commits2025-11-11: 3 commits2025-11-12: 0 commits2025-11-13: 1 commit2025-11-14: 2 commits2025-11-15: 1 commit2025-11-16: 5 commits2025-11-17: 5 commits2025-11-18: 5 commits2025-11-19: 5 commits2025-11-20: 7 commits2025-11-21: 4 commits2025-11-22: 7 commits2025-11-23: 2 commits2025-11-24: 6 commits2025-11-25: 2 commits2025-11-26: 1 commit2025-11-27: 1 commit2025-11-28: 1 commit2025-11-29: 3 commits2025-11-30: 1 commit2025-12-01: 0 commits2025-12-02: 1 commit2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 2 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 1 commit2025-12-09: 1 commit2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 1 commit2025-12-13: 4 commits2025-12-14: 1 commit2025-12-15: 0 commits2025-12-16: 1 commit2025-12-17: 0 commits2025-12-18: 7 commits2025-12-19: 0 commits2025-12-20: 8 commits2025-12-21: 1 commit2025-12-22: 2 commits2025-12-23: 4 commits2025-12-24: 0 commits2025-12-25: 8 commits2025-12-26: 2 commits2025-12-27: 0 commits2025-12-28: 2 commits2025-12-29: 1 commit2025-12-30: 0 commits2025-12-31: 1 commit2026-01-01: 1 commit2026-01-02: 0 commits2026-01-03: 1 commit2026-01-04: 5 commits2026-01-05: 2 commits2026-01-06: 1 commit2026-01-07: 4 commits2026-01-08: 2 commits2026-01-09: 3 commits2026-01-10: 3 commits2026-01-11: 3 commits2026-01-12: 10 commits2026-01-13: 3 commits2026-01-14: 3 commits2026-01-15: 3 commits2026-01-16: 0 commits2026-01-17: 3 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 1 commit2026-01-21: 0 commits2026-01-22: 2 commits2026-01-23: 1 commit2026-01-24: 0 commits2026-01-25: 3 commits2026-01-26: 1 commit2026-01-27: 3 commits2026-01-28: 2 commits2026-01-29: 0 commits2026-01-30: 1 commit2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 2 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 3 commits2026-02-06: 3 commits2026-02-07: 1 commit2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 4 commits2026-02-11: 1 commit2026-02-12: 0 commits2026-02-13: 2 commits2026-02-14: 0 commits2026-02-15: 1 commit2026-02-16: 0 commits2026-02-17: 1 commit2026-02-18: 2 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 1 commit2026-02-22: 0 commits2026-02-23: 1 commit2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 1 commit2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 7 commits2026-03-08: 0 commits2026-03-09: 2 commits2026-03-10: 2 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 5 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 1 commit2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 1 commit2026-04-06: 0 commits2026-04-07: 1 commit2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 3 commits2026-04-13: 0 commits2026-04-14: 6 commits2026-04-15: 2 commits2026-04-16: 10 commits2026-04-17: 1 commit2026-04-18: 4 commits2026-04-19: 10 commits2026-04-20: 2 commits2026-04-21: 4 commits2026-04-22: 3 commits2026-04-23: 0 commits2026-04-24: 3 commits2026-04-25: 9 commits2026-04-26: 3 commits2026-04-27: 4 commits2026-04-28: 0 commits2026-04-29: 1 commit2026-04-30: 3 commits2026-05-01: 0 commits2026-05-02: 5 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 1 commit2026-05-06: 0 commits2026-05-07: 1 commit2026-05-08: 1 commit2026-05-09: 0 commits2026-05-10: 1 commit2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 1 commit2026-05-16: 1 commit2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 1 commit2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 1 commit2026-05-29: 2 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 1 commit2026-06-05: 2 commits2026-06-06: 0 commits2026-06-07: 1 commit2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 1 commit2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 1 commit2026-06-16: 1 commit2026-06-17: 2 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 1 commit2026-07-06: 0 commits2026-07-07: 1 commit2026-07-08: 1 commit2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 1 commit2026-07-18: 0 commits2026-07-19: 3 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
574 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    26,698 stars

  • Very active

    574 commits in 52 weeks

  • Community-driven

    ~202 contributors

What niri does

Niri rethinks traditional tiling window management by introducing a scrollable, infinite horizontal strip model. Instead of constantly shrinking existing windows to accommodate new ones, Niri places new windows to the right, allowing users to smoothly scroll horizontally across their workspace. It strictly isolates these strips per monitor, preventing awkward window overflows across physical screen boundaries. The system uses dynamic vertical workspaces, ensuring there is always a clean workspace available below the active one.

Linux power users, developers, and desktop customization enthusiasts seeking a novel, highly organized Wayland window management experience.

  • Scrollable layout: Arranges windows side-by-side on an infinitely wide, horizontally scrolling plane.
  • Non-destructive tiling: Opening new applications never forces existing windows to resize or compromise their layout.
  • Monitor isolation: Maintains strictly independent window strips and workspaces for each physical monitor.
  • Dynamic vertical workspaces: Automatically manages vertical workspaces, always providing an empty tier when needed.
  • Wayland native: Built from the ground up as a modern Wayland compositor using the Rust-based Smithay library.

Where teams use it

Ultra-wide Monitor Utilization

Taking full advantage of ultra-wide displays by scrolling smoothly through multiple full-width applications.

Focused Development

Keeping reference material, an editor, and a terminal at optimal widths without them squeezing together on a single screen.

Presentation Environments

Smoothly panning between different application states during technical demonstrations without switching rigid virtual desktops.

Multi-monitor Workflows

Managing distinct, independent tasks on separate monitors without windows accidentally crossing over.

README

main branch

niri

A scrollable-tiling Wayland compositor.

Matrix GitHub License GitHub Release

Getting Started | Configuration | Setup Showcase

niri with a few windows open

About

Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize.

Every monitor has its own separate window strip. Windows can never "overflow" onto an adjacent monitor.

Workspaces are dynamic and arranged vertically. Every monitor has an independent set of workspaces, and there's always one empty workspace present all the way down.

The workspace arrangement is preserved across disconnecting and connecting monitors where it makes sense. When a monitor disconnects, its workspaces will move to another monitor, but upon reconnection they will move back to the original monitor.

Features

Video Demo

demo.mp4

Also check out these videos that showcase a lot of the niri functionality:

Status

Niri is stable for day-to-day use and does most things expected of a Wayland compositor. Many people are daily-driving niri, and are happy to help in our Matrix channel.

Give it a try! Follow the instructions on the Getting Started page. Grab a desktop shell like DankMaterialShell or Noctalia (or build a more traditional setup): niri by itself is not a complete desktop environment. Also check out awesome-niri, a list of niri-related links and projects.

Here are some points you may have questions about:

  • Multi-monitor: yes, a core part of the design from the very start. Mixed DPI works.
  • Fractional scaling: yes, plus all niri UI stays pixel-perfect.
  • NVIDIA: seems to work fine.
  • Floating windows: yes, starting from niri 25.01.
  • Input devices: niri supports tablets, touchpads, and touchscreens. You can map the tablet to a specific monitor, or use OpenTabletDriver. We have touchpad gestures, but no touchscreen gestures yet.
  • Wlr protocols: yes, we have most of the important ones like layer-shell, gamma-control, screencopy. You can check on wayland.app at the bottom of each protocol's page.
  • Performance: while I run niri on beefy machines, I try to stay conscious of performance. I've seen someone use it fine on an Eee PC 900 from 2008, of all things.
  • Xwayland: integrated via xwayland-satellite starting from niri 25.08.

Media

niri: Making a Wayland compositor in Rust · December 2024

My talk from the 2024 Moscow RustCon about niri, and how I do randomized property testing and profiling, and measure input latency. The talk is in Russian, but I prepared full English subtitles that you can find in YouTube's subtitle language selector.

An interview with Ivan, the developer behind Niri · June 2025

An interview by a German tech podcast Das Triumvirat (in English). We talk about niri development and history, and my experience building and maintaining niri.

A tour of the niri scrolling-tiling Wayland compositor · July 2025

An LWN article with a nice overview and introduction to niri.

Contributing

If you'd like to help with niri, there are plenty of both coding- and non-coding-related ways to do so. See CONTRIBUTING.md for an overview.

Inspiration

Niri is heavily inspired by PaperWM which implements scrollable tiling on top of GNOME Shell.

One of the reasons that prompted me to try writing my own compositor is being able to properly separate the monitors. Being a GNOME Shell extension, PaperWM has to work against Shell's global window coordinate space to prevent windows from overflowing.

Tile Scrollably Elsewhere

Here are some other projects which implement a similar workflow:

Contact

Our main communication channel is a Matrix chat, feel free to join and ask a question: https://matrix.to/#/#niri:matrix.org

We also have a community Discord server: https://discord.gg/vT8Sfjy7sx

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 1.9K

Releases and announcements

23 total
  1. v26.04v26.04Apr 25, 20263.9K downloads

    Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. As you may have noticed, niri now lives in a [GitHub org](https://github.com/niri-wm) rather than my (@YaLTeR) personal account. The primary reason was the ability to give out issue triage permissions: I'd like to give a **massive thanks** to @Sempyos for triaging *all* of our issues and pull requests, answering many, many questions, and helping people diagnose their problems with niri. We've also moved a few niri-adjacent projects to the GitHub org, like the [awesome-niri](https://github.com/niri-wm/awesome-niri) list of related projects maintained by @Vortriz and a new [artwork](https://github.com/niri-wm/artwork) repo by @bluelinden and @HumpityDumpityDumber—two of the creators of our project logo. In the artwork repo, you can find a badge and several [wallpapers](https://github.com/niri-wm/artwork/tree/main/wallpapers), including two stunning 3D works created by @Duncan-Rose in Blender: | pool | cut | | --- | --- | | ![](https://github.com/niri-wm/artwork/blob/main/wallpapers/Niri%20p

  2. v25.11v25.11Nov 29, 20254K downloads

    Two weeks ago, Cloudflare had a major outage that took down a good half of the internet. Their [postmortem](https://blog.cloudflare.com/18-november-2025-outage/) included a snippet of Rust code with an `unwrap()`, causing much internet discourse. Now it is my turn to release Rust software with a healthy dose of `unwrap()`s, `assert!`s, and checked arithmetic enabled in release builds. Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. Here are the improvements from the last release. > [!NOTE] > Packagers: niri now supports libdisplay-info 0.3. Most niri packages updated this dependency back in September using a patch—this patch is no longer necessary. ## Alt-Tab After multiple major iterations and a lot of work by @rustn00b, we have an Alt-Tab recent windows switcher! https://github.com/user-attachments/assets/4996d0be-638f-403b-b111-89a343d50c00 It's got live window previews, window titles that fade if they're too long, and supports [windows blocked out from screencasts](https://yalter.github.io/niri/Screencasting.html#block-out-

  3. v25.08v25.08Aug 30, 20252.1K downloads

    Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. A month ago, on July 31st, we hit 10,000 stars on GitHub! Thanks everyone for your support. 😄 Also, on August 10, niri turned two years old since the [initial commit](https://github.com/YaLTeR/niri/commit/ad3c3f8cefd38d2bf26b466d8e34eccde3bca443). With introductions out of the way, here are the improvements from the last release. > [!NOTE] > Packagers: > > - Niri still requires libdisplay-info 0.2 (not 0.3). When libdisplay-info-rs [updates its requirement](https://github.com/Smithay/libdisplay-info-rs/issues/15), you will likely be able to bump it in niri with no other changes. > - Some tests now require surfaceless EGL to be available at test time. If this is problematic, you can ignore them with `cargo test -- --skip=::egl`. > - The wiki contents have moved from `wiki/` to `docs/wiki/`. > - We have a new [Integrating niri](https://yalter.github.io/niri/Integrating-niri.html) wiki page with information on integrating niri into distributions, which you may find helpful. ## A logo

  4. v25.05.1v25.05.1May 25, 20251.4K downloads

    This is a hotfix release for [niri v25.05](https://github.com/YaLTeR/niri/releases/tag/v25.05). * Fixed handling of layer surfaces unmapped through a null buffer commit: they will now receive an initial configure as necessary (thanks @alex-huff). This makes the [kitty quick access terminal](https://sw.kovidgoyal.net/kitty/kittens/quick-access-terminal/) work. * Fixed unmapped layer surfaces preventing popups from appearing (thanks @alex-huff). * Fixed brief hover events when the cursor is [hidden](https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#hide-when-typing) (thanks @Duncaen). Also fixed brief cursor hovers when a hidden cursor warps (i.e. with `warp-mouse-to-focus` or with `focus-monitor-right` etc.). * Renamed `un/set/toggle-urgent` to `un/set/toggle-window-urgent`, their intended name. This was my oversight. This change is not config-breaking because these actions aren't bindable, but it does mean you need to change the name when calling `niri msg action`. I went ahead with this break because I don't believe these actions are used anywhere yet (and others confirmed that). * Fixed screen not always redrawing on `niri msg set-window-urgent` and other ur

  5. v25.05v25.05May 17, 2025231 downloads

    Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. Here are the improvements from the last release. > [!NOTE] > Packagers: the niri default config now spawns [waybar](https://github.com/Alexays/Waybar) at startup so as not to start with a blank desktop. Please consider adding Waybar as a recommended dependency (or changing it to some other bar). ## The Overview The big new thing in niri v25.05 is the Overview. It zooms out your workspaces and windows to let you see what's going on at a glance, navigate, and drag windows around, all without having to touch the keyboard. https://github.com/user-attachments/assets/379a5d1f-acdb-4c11-b36c-e85fd91f0995 You can open it with the `toggle-overview` bind, via the new top-left hot corner, or using a touchpad four-finger swipe. While in the overview, all keyboard shortcuts keep working, while pointing devices get easier: - Mouse: left click and drag windows to move them, right click and drag to scroll workspaces left/right, scroll to switch workspaces (no holding Mod required). - Touchpad: t

Code frequency

additions and deletions
+10.2K-10.2KWeek of 2025-08-03: +922 linesWeek of 2025-08-03: -546 linesWeek of 2025-08-10: +2,040 linesWeek of 2025-08-10: -423 linesWeek of 2025-08-17: +10,200 linesWeek of 2025-08-17: -7,502 linesWeek of 2025-08-24: +5,774 linesWeek of 2025-08-24: -5,039 linesWeek of 2025-08-31: +7,487 linesWeek of 2025-08-31: -988 linesWeek of 2025-09-07: +31 linesWeek of 2025-09-07: -31 linesWeek of 2025-09-14: +2,059 linesWeek of 2025-09-14: -1,073 linesWeek of 2025-09-21: +3,780 linesWeek of 2025-09-21: -3,196 linesWeek of 2025-09-28: +1,533 linesWeek of 2025-09-28: -543 linesWeek of 2025-10-05: +77 linesWeek of 2025-10-05: -42 linesWeek of 2025-10-12: +435 linesWeek of 2025-10-12: -46 linesWeek of 2025-10-19: +312 linesWeek of 2025-10-19: -69 linesWeek of 2025-10-26: +4,944 linesWeek of 2025-10-26: -481 linesWeek of 2025-11-02: +14 linesWeek of 2025-11-02: -14 linesWeek of 2025-11-09: +64 linesWeek of 2025-11-09: -47 linesWeek of 2025-11-16: +1,178 linesWeek of 2025-11-16: -272 linesWeek of 2025-11-23: +296 linesWeek of 2025-11-23: -245 linesWeek of 2025-11-30: +31 linesWeek of 2025-11-30: -1 linesWeek of 2025-12-07: +33 linesWeek of 2025-12-07: -7 linesWeek of 2025-12-14: +904 linesWeek of 2025-12-14: -1,099 linesWeek of 2025-12-21: +869 linesWeek of 2025-12-21: -860 linesWeek of 2025-12-28: +379 linesWeek of 2025-12-28: -67 linesWeek of 2026-01-04: +1,926 linesWeek of 2026-01-04: -1,314 linesWeek of 2026-01-11: +3,758 linesWeek of 2026-01-11: -2,816 linesWeek of 2026-01-18: +31 linesWeek of 2026-01-18: -11 linesWeek of 2026-01-25: +364 linesWeek of 2026-01-25: -378 linesWeek of 2026-02-01: +316 linesWeek of 2026-02-01: -158 linesWeek of 2026-02-08: +123 linesWeek of 2026-02-08: -101 linesWeek of 2026-02-15: +135 linesWeek of 2026-02-15: -17 linesWeek of 2026-02-22: +5 linesWeek of 2026-02-22: -1 linesWeek of 2026-03-01: +712 linesWeek of 2026-03-01: -537 linesWeek of 2026-03-08: +791 linesWeek of 2026-03-08: -208 linesWeek of 2026-03-15: +0 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +7 linesWeek of 2026-03-22: -0 linesWeek of 2026-03-29: +0 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +16 linesWeek of 2026-04-05: -14 linesWeek of 2026-04-12: +3,942 linesWeek of 2026-04-12: -653 linesWeek of 2026-04-19: +381 linesWeek of 2026-04-19: -155 linesWeek of 2026-04-26: +401 linesWeek of 2026-04-26: -239 linesWeek of 2026-05-03: +3 linesWeek of 2026-05-03: -3 linesWeek of 2026-05-10: +4 linesWeek of 2026-05-10: -6 linesWeek of 2026-05-17: +1 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +12 linesWeek of 2026-05-24: -30 linesWeek of 2026-05-31: +79 linesWeek of 2026-05-31: -2 linesWeek of 2026-06-07: +6 linesWeek of 2026-06-07: -4 linesWeek of 2026-06-14: +59 linesWeek of 2026-06-14: -98 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +24 linesWeek of 2026-07-05: -41 linesWeek of 2026-07-12: +294 linesWeek of 2026-07-12: -36 linesWeek of 2026-07-19: +26 linesWeek of 2026-07-19: -14 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesAug 3, 2025Jul 26, 2026
+56.8K lines added, -29.4K removed over the last year.

Commits per week

last 52 weeks
510Week of 2025-08-03: 10 commitsWeek of 2025-08-10: 22 commitsWeek of 2025-08-17: 40 commitsWeek of 2025-08-24: 51 commitsWeek of 2025-08-31: 24 commitsWeek of 2025-09-07: 5 commitsWeek of 2025-09-14: 22 commitsWeek of 2025-09-21: 22 commitsWeek of 2025-09-28: 20 commitsWeek of 2025-10-05: 5 commitsWeek of 2025-10-12: 17 commitsWeek of 2025-10-19: 7 commitsWeek of 2025-10-26: 13 commitsWeek of 2025-11-02: 2 commitsWeek of 2025-11-09: 9 commitsWeek of 2025-11-16: 38 commitsWeek of 2025-11-23: 16 commitsWeek of 2025-11-30: 4 commitsWeek of 2025-12-07: 7 commitsWeek of 2025-12-14: 17 commitsWeek of 2025-12-21: 17 commitsWeek of 2025-12-28: 6 commitsWeek of 2026-01-04: 20 commitsWeek of 2026-01-11: 25 commitsWeek of 2026-01-18: 4 commitsWeek of 2026-01-25: 10 commitsWeek of 2026-02-01: 9 commitsWeek of 2026-02-08: 7 commitsWeek of 2026-02-15: 5 commitsWeek of 2026-02-22: 2 commitsWeek of 2026-03-01: 7 commitsWeek of 2026-03-08: 9 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 1 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 2 commitsWeek of 2026-04-12: 26 commitsWeek of 2026-04-19: 31 commitsWeek of 2026-04-26: 16 commitsWeek of 2026-05-03: 3 commitsWeek of 2026-05-10: 3 commitsWeek of 2026-05-17: 1 commitsWeek of 2026-05-24: 3 commitsWeek of 2026-05-31: 3 commitsWeek of 2026-06-07: 2 commitsWeek of 2026-06-14: 4 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 3 commitsWeek of 2026-07-12: 1 commitsWeek of 2026-07-19: 3 commitsWeek of 2026-07-26: 0 commitsAug 3, 2025Jul 26, 2026
574 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 4 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 1 commitsSun 5:00 — 0 commitsSun 6:00 — 2 commitsSun 7:00 — 14 commitsSun 8:00 — 31 commitsSun 9:00 — 62 commitsSun 10:00 — 42 commitsSun 11:00 — 37 commitsSun 12:00 — 22 commitsSun 13:00 — 16 commitsSun 14:00 — 15 commitsSun 15:00 — 12 commitsSun 16:00 — 14 commitsSun 17:00 — 20 commitsSun 18:00 — 12 commitsSun 19:00 — 13 commitsSun 20:00 — 18 commitsSun 21:00 — 8 commitsSun 22:00 — 22 commitsSun 23:00 — 8 commitsMon 0:00 — 2 commitsMon 1:00 — 2 commitsMon 2:00 — 0 commitsMon 3:00 — 1 commitsMon 4:00 — 1 commitsMon 5:00 — 1 commitsMon 6:00 — 3 commitsMon 7:00 — 24 commitsMon 8:00 — 37 commitsMon 9:00 — 46 commitsMon 10:00 — 29 commitsMon 11:00 — 7 commitsMon 12:00 — 12 commitsMon 13:00 — 19 commitsMon 14:00 — 28 commitsMon 15:00 — 24 commitsMon 16:00 — 12 commitsMon 17:00 — 21 commitsMon 18:00 — 24 commitsMon 19:00 — 22 commitsMon 20:00 — 24 commitsMon 21:00 — 21 commitsMon 22:00 — 11 commitsMon 23:00 — 5 commitsTue 0:00 — 0 commitsTue 1:00 — 3 commitsTue 2:00 — 1 commitsTue 3:00 — 1 commitsTue 4:00 — 1 commitsTue 5:00 — 3 commitsTue 6:00 — 2 commitsTue 7:00 — 18 commitsTue 8:00 — 53 commitsTue 9:00 — 46 commitsTue 10:00 — 43 commitsTue 11:00 — 17 commitsTue 12:00 — 23 commitsTue 13:00 — 34 commitsTue 14:00 — 15 commitsTue 15:00 — 18 commitsTue 16:00 — 12 commitsTue 17:00 — 35 commitsTue 18:00 — 21 commitsTue 19:00 — 25 commitsTue 20:00 — 22 commitsTue 21:00 — 27 commitsTue 22:00 — 22 commitsTue 23:00 — 9 commitsWed 0:00 — 3 commitsWed 1:00 — 5 commitsWed 2:00 — 2 commitsWed 3:00 — 2 commitsWed 4:00 — 0 commitsWed 5:00 — 1 commitsWed 6:00 — 0 commitsWed 7:00 — 14 commitsWed 8:00 — 36 commitsWed 9:00 — 45 commitsWed 10:00 — 34 commitsWed 11:00 — 31 commitsWed 12:00 — 12 commitsWed 13:00 — 20 commitsWed 14:00 — 43 commitsWed 15:00 — 8 commitsWed 16:00 — 14 commitsWed 17:00 — 24 commitsWed 18:00 — 10 commitsWed 19:00 — 13 commitsWed 20:00 — 20 commitsWed 21:00 — 23 commitsWed 22:00 — 14 commitsWed 23:00 — 4 commitsThu 0:00 — 6 commitsThu 1:00 — 2 commitsThu 2:00 — 1 commitsThu 3:00 — 3 commitsThu 4:00 — 1 commitsThu 5:00 — 1 commitsThu 6:00 — 0 commitsThu 7:00 — 5 commitsThu 8:00 — 52 commitsThu 9:00 — 45 commitsThu 10:00 — 35 commitsThu 11:00 — 42 commitsThu 12:00 — 11 commitsThu 13:00 — 18 commitsThu 14:00 — 29 commitsThu 15:00 — 10 commitsThu 16:00 — 16 commitsThu 17:00 — 18 commitsThu 18:00 — 22 commitsThu 19:00 — 13 commitsThu 20:00 — 20 commitsThu 21:00 — 16 commitsThu 22:00 — 9 commitsThu 23:00 — 6 commitsFri 0:00 — 1 commitsFri 1:00 — 0 commitsFri 2:00 — 1 commitsFri 3:00 — 0 commitsFri 4:00 — 2 commitsFri 5:00 — 0 commitsFri 6:00 — 4 commitsFri 7:00 — 17 commitsFri 8:00 — 49 commitsFri 9:00 — 54 commitsFri 10:00 — 31 commitsFri 11:00 — 27 commitsFri 12:00 — 24 commitsFri 13:00 — 13 commitsFri 14:00 — 14 commitsFri 15:00 — 43 commitsFri 16:00 — 27 commitsFri 17:00 — 28 commitsFri 18:00 — 11 commitsFri 19:00 — 9 commitsFri 20:00 — 16 commitsFri 21:00 — 15 commitsFri 22:00 — 13 commitsFri 23:00 — 8 commitsSat 0:00 — 1 commitsSat 1:00 — 3 commitsSat 2:00 — 1 commitsSat 3:00 — 2 commitsSat 4:00 — 1 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 12 commitsSat 8:00 — 35 commitsSat 9:00 — 88 commitsSat 10:00 — 64 commitsSat 11:00 — 45 commitsSat 12:00 — 29 commitsSat 13:00 — 23 commitsSat 14:00 — 28 commitsSat 15:00 — 18 commitsSat 16:00 — 10 commitsSat 17:00 — 15 commitsSat 18:00 — 15 commitsSat 19:00 — 13 commitsSat 20:00 — 22 commitsSat 21:00 — 6 commitsSat 22:00 — 10 commitsSat 23:00 — 8 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    125.4K stars · Rust

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.2K stars · Rust

  • openai/codex

    Lightweight coding agent that runs in your terminal

    104.6K stars · Rust