vercel-labs/agent-desktopPublic

Agent Desktop gives any agent reliable computer use on the desktop. Built with Rust, it sees any app's real UI structure through OS accessibility trees and operates it — refs stay stable and actions stay safe to retry, instead of guessing from pixels.

Stars
8.2K
Forks
579
Watchers
16
Open issues
45
Open PRs
68
Contributors
~9
Commits
317
Branches
180

RustApache-2.0Created Feb 19, 2026Last push todayLatest release v1.0.2

Quick answers

What is agent-desktop?
Agent Desktop gives any agent reliable computer use on the desktop. Built with Rust, it sees any app's real UI structure through OS accessibility trees and operates it — refs stay stable and actions stay safe to retry, instead of guessing from pixels.
How popular is agent-desktop on GitHub?
vercel-labs/agent-desktop has 8,202 stars and 579 forks on GitHub.
What license does agent-desktop use?
vercel-labs/agent-desktop is released under the Apache-2.0 license.

Star history

since Nov 2, 2026

Star history is still being collected for this repository.

Contribution activity

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

Signals and awards

derived from tracked data
  • Actively maintained

    Pushed within 48 hours

  • Well documented

    High community health score

  • Permissive license

    Apache-2.0

README

main branch

agent-desktop

Computer use for AI agents: read and operate desktop apps through the OS accessibility tree.

Vercel Labs Product npm version: agent-desktop License: Apache-2.0 npm downloads per month: agent-desktop

A CLI and C library for macOS, Windows and Linux. A snapshot returns JSON with a ref for every element an agent can act on. The agent acts on a ref and snapshots again to check, with no pixel matching; the loop stays in your agent.

On macOS, CLI calls reuse a private command host for each snapshot namespace and binary build. It retains native accessibility objects so a removed row cannot silently resolve to a surviving row with the same identifier. The host exits after 15 idle minutes. TMPDIR must be owned by the current user with mode 0700; the standard macOS per-user temporary directory satisfies this requirement. Headless calls still prohibit foreground activation and synthesized input.

Snapshots, clipboard reads, screenshots, command output and debug artifacts can contain private desktop content. Keep them out of public logs and uploads. The optional JEV helper sends screen descriptions to a configured model provider; it is separate from the native CLI. See privacy and data handling.

Installation

Install on macOS, Windows or Linux with npm:

npm install -g agent-desktop
agent-desktop version

Bun, Yarn and pnpm can install the same package. It includes native binaries and platform helpers for x64 and ARM64. For direct execution without a JavaScript launcher, download the matching native archive from GitHub Releases and keep its helper beside the executable.

Official Homebrew and Scoop packages are being submitted; they are not yet available in the default catalogs. The repository no longer maintains a custom Homebrew tap or Scoop bucket.

  • macOS needs Accessibility permission: agent-desktop permissions --guide.
  • Windows needs no grant for apps at your terminal's integrity level.
  • Linux needs the user's graphical session with at-spi2-core.

See installation and permissions for package-manager behavior, release archives, and building from source.

Quick start

Observe, act on a ref, observe again. Any app name from agent-desktop list-apps works; Finder is the macOS example. Each command prints one JSON envelope; a trimmed snapshot follows the commands.

agent-desktop snapshot --app Finder -i      # interactive elements, each with a ref
agent-desktop click @s8f3k2p9:e8            # act on a ref from that snapshot
agent-desktop snapshot --app Finder -i      # observe again to verify
{
  "version": "2.5",
  "ok": true,
  "command": "snapshot",
  "data": {
    "app": "Finder",
    "window": { "id": "w-204749", "title": "Downloads" },
    "snapshot_id": "s8f3k2p9",
    "ref_count": 59,
    "complete": true,
    "tree": {
      "role": "window",
      "name": "Downloads",
      "children": [
        { "role": "treeitem", "name": "Documents", "ref_id": "@s8f3k2p9:e8", "available_actions": ["Click"] }
      ]
    }
  }
}
  • Refs belong to their snapshot. A bare @e8 is rejected with INVALID_ARGS. When the UI changes, an action returns STALE_REF or AMBIGUOUS_TARGET: take a new snapshot and use its refs.
  • Several windows give AMBIGUOUS_TARGET; snapshot lists the candidate window ids in error.details. Pass one with --window-id.
  • Dense apps: map first with snapshot --skeleton --app Slack -i --compact, then drill into one region with snapshot --root @s8f3k2p9:e3 -i --compact.
  • Headless by default. Ref actions go through the accessibility API without moving the pointer or taking focus. The global --headed flag allows physical input.
  • PowerShell. Quote every ref ('@s8f3k2p9:e8'), because a bare @token is the splatting operator.

For AI agents

The binary carries its own docs, matched to its version:

agent-desktop skills get desktop      # the loop, refs, verification and retry rules
agent-desktop skills get platform     # what differs on the OS you run on
agent-desktop <command> --help        # flags for one command

Install the skill into an agent harness from skills.sh:

npx skills add https://github.com/vercel-labs/agent-desktop --skill agent-desktop

Or add this to your AGENTS.md:

Use `agent-desktop` to see and operate desktop apps. Before the first use, run
`agent-desktop skills get desktop` and `agent-desktop skills get platform`, and follow them.

Every command prints one envelope with ok and either data or error. An error carries a code, a disposition and usually a suggestion; retry only when error.disposition.retry is safe. The contract, error codes and exit codes are in docs/json-output.md.

Commands

It ships 60 command names, 56 operational commands. The other four (key-down, key-up, mouse-down, mouse-up) refuse to run until a daemon can release a held key or button.

Group Commands
Observe snapshot, find, get, is, screenshot, list-surfaces
Act on a ref click, double-click, triple-click, right-click, type, set-value, clear, focus, select, toggle, check, uncheck, expand, collapse, scroll, scroll-to
Keyboard and mouse press, hover, drag, mouse-move, mouse-click, mouse-wheel, key-down, key-up, mouse-down, mouse-up
Apps and windows launch, close-app, list-apps, list-windows, list-displays, focus-window, resize-window, move-window, minimize, maximize, restore, open-system-surface
Notifications list-notifications, dismiss-notification, dismiss-all-notifications, notification-action
Clipboard clipboard-get, clipboard-set, clipboard-clear
Wait wait
Sessions session, trace, cursor-overlay
System status, permissions, version, batch, skills

Platform support

macOS Windows Linux
Accessibility tree Yes Yes Yes (AT-SPI)
Click / type / keyboard Yes Yes AT-SPI; X11 / GNOME keys
Mouse input Yes Yes X11, --headed
Screenshot Yes Yes X11 windows; Wayland portal
Clipboard Yes Yes Yes; Wayland needs wl-clipboard
App & window management Yes Yes Launch/list; X11 window control
Notifications Yes Yes GNOME Shell
Shell surfaces (open-system-surface) Planned Yes GNOME tray, Action Center

The Windows surface and launch notes and the Linux X11 and Wayland notes are in docs/install.md.

agent-desktop skills get platform prints the full capability table for the OS you run on.

Language bindings

Each release also ships libagent_desktop_ffi for macOS, Linux and Windows, so a program can call the tool in process instead of starting the CLI for each command. agent-desktop skills get ffi covers the entry points, memory ownership and threading rules.

import ctypes
lib = ctypes.CDLL("./lib/libagent_desktop_ffi.dylib")
lib.ad_adapter_create.restype = ctypes.c_void_p
lib.ad_adapter_destroy.argtypes = [ctypes.c_void_p]
assert lib.ad_init(6) == 0  # AD_RESULT_OK when the header's AD_ABI_VERSION_MAJOR matches the library
adapter = lib.ad_adapter_create()
lib.ad_adapter_destroy(adapter)

Development

Each platform adapter builds only on its own OS, so scope cargo to the host's packages. On macOS:

HOST_PKGS=(-p agent-desktop-core -p agent-desktop-macos -p agent-desktop -p agent-desktop-ffi)
cargo test "${HOST_PKGS[@]}"
cargo clippy "${HOST_PKGS[@]}" --all-targets -- -D warnings

On Windows, replace agent-desktop-macos in that list with agent-desktop-windows; on Linux, with agent-desktop-linux. CONTRIBUTING.md lists every gate. Build from source: docs/install.md.

Documentation

I want to... Read
Fix an install problem, grant permissions, verify a download or build from source docs/install.md
Parse the JSON envelope, error codes and exit codes docs/json-output.md
Drive the tool as an AI agent agent-desktop skills get desktop (skills/agent-desktop/)
Learn what differs on one OS macOS, Windows, Linux
Call the C library skills/agent-desktop-ffi/
Look up the vocabulary: refs, snapshots, sessions CONCEPTS.md
Contribute and pass the gates CONTRIBUTING.md
Read the engineering rules AGENTS.md
Learn from past bugs and lessons docs/solutions/
Find answers to common questions docs/faq.md
Report a vulnerability SECURITY.md
Get help SUPPORT.md

License

Apache-2.0

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

47 total
  1. v1.0.2v1.0.2Oct 30, 20266.4K downloads

    ## What's Changed * docs: make AGENTS.md the single agent instructions file and correct stale docs by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/329 * feat: tell npm users when the node launcher slows each call by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/328 * fix: make the permission guide offer the launching app, see each grant, and leave no stale host by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/330 * chore: remove the personal funding link, badges and name references before the org transfer by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/332 * docs(readme): add Labs badges and plain title header by @Railly in https://github.com/vercel-labs/agent-desktop/pull/334 * chore: point repository links at vercel-labs/agent-desktop after the org transfer by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/333 * feat: add the docs site served at agent-browser.dev/desktop by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/335 * docs: add the technical-writer skill for docs and other prose by @lahfir in https://github.com/vercel-labs/agent-desktop/pull/336 * docs: add the diagram component and

  2. v1.0.1v1.0.1Oct 28, 2026119 downloads

    ## What's Changed * fix: drop the version line from the skills by @lahfir in https://github.com/lahfir/agent-desktop/pull/324 * fix: publish releases automatically and retire the custom package catalogs by @lahfir in https://github.com/lahfir/agent-desktop/pull/320 * test: remove flaky and slow live tests from CI by @lahfir in https://github.com/lahfir/agent-desktop/pull/325 * test: serialize every windows capture test on the single-flight slot by @lahfir in https://github.com/lahfir/agent-desktop/pull/327 * chore: prepare version 1.0.1 by @lahfir in https://github.com/lahfir/agent-desktop/pull/326 **Full Changelog**: https://github.com/lahfir/agent-desktop/compare/v1.0.0...v1.0.1

  3. v1.0.0v1.0.0Oct 28, 202632 downloads

    ## What's Changed * ci: scope release panic probe trust to its checkout by @lahfir in https://github.com/lahfir/agent-desktop/pull/316 * fix: install the verified 0.11.1 Homebrew release by @lahfir in https://github.com/lahfir/agent-desktop/pull/317 * fix: simplify native installs and generate release package metadata by @lahfir in https://github.com/lahfir/agent-desktop/pull/318 * chore: prepare version 1.0.0 by @lahfir in https://github.com/lahfir/agent-desktop/pull/322 **Full Changelog**: https://github.com/lahfir/agent-desktop/compare/v0.11.1...v1.0.0

  4. v0.11.1v0.11.1Oct 25, 2026338 downloads

    ## What's Changed * fix: complete secure three-platform release installation by @lahfir in https://github.com/lahfir/agent-desktop/pull/315 **Full Changelog**: https://github.com/lahfir/agent-desktop/compare/v0.11.0...v0.11.1

  5. v0.10.1v0.10.1Oct 18, 20261.2K downloads

    ## [0.10.1](https://github.com/lahfir/agent-desktop/compare/v0.10.0...v0.10.1) (2026-10-18) ### Bug Fixes * **windows:** let launch take a bare name without .exe ([#276](https://github.com/lahfir/agent-desktop/issues/276)) ([483427e](https://github.com/lahfir/agent-desktop/commit/483427eb84821a9d0ebc79eb56dd689c04cb15be))

Code frequency

additions and deletions
+297.7K-297.7KWeek of 2026-02-15: +24,394 linesWeek of 2026-02-15: -8,624 linesWeek of 2026-02-22: +10,020 linesWeek of 2026-02-22: -8,399 linesWeek of 2026-03-01: +401 linesWeek of 2026-03-01: -26 linesWeek of 2026-03-08: +0 linesWeek of 2026-03-08: -0 linesWeek of 2026-03-15: +0 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +0 linesWeek of 2026-03-22: -0 linesWeek of 2026-03-29: +0 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +0 linesWeek of 2026-04-05: -0 linesWeek of 2026-04-12: +11,902 linesWeek of 2026-04-12: -724 linesWeek of 2026-04-19: +1,424 linesWeek of 2026-04-19: -1,358 linesWeek of 2026-04-26: +5 linesWeek of 2026-04-26: -0 linesWeek of 2026-05-03: +496 linesWeek of 2026-05-03: -119 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +15,368 linesWeek of 2026-05-17: -6,930 linesWeek of 2026-05-24: +1,955 linesWeek of 2026-05-24: -1,924 linesWeek of 2026-05-31: +1,747 linesWeek of 2026-05-31: -819 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +17,951 linesWeek of 2026-06-14: -5,442 linesWeek of 2026-06-21: +7,139 linesWeek of 2026-06-21: -1,423 linesWeek of 2026-06-28: +12,526 linesWeek of 2026-06-28: -1,382 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +88,167 linesWeek of 2026-07-19: -24,862 linesWeek of 2026-07-26: +18,238 linesWeek of 2026-07-26: -78 linesWeek of 2026-08-02: +20 linesWeek of 2026-08-02: -9 linesWeek of 2026-08-09: +3,849 linesWeek of 2026-08-09: -642 linesWeek of 2026-08-16: +4,689 linesWeek of 2026-08-16: -399 linesWeek of 2026-08-23: +2,080 linesWeek of 2026-08-23: -589 linesWeek of 2026-08-30: +932 linesWeek of 2026-08-30: -102 linesWeek of 2026-09-06: +11,297 linesWeek of 2026-09-06: -4,314 linesWeek of 2026-09-13: +3,304 linesWeek of 2026-09-13: -329 linesWeek of 2026-09-20: +9,418 linesWeek of 2026-09-20: -617 linesWeek of 2026-09-27: +1,575 linesWeek of 2026-09-27: -405 linesWeek of 2026-10-04: +2,068 linesWeek of 2026-10-04: -121 linesWeek of 2026-10-11: +0 linesWeek of 2026-10-11: -0 linesWeek of 2026-10-18: +219,914 linesWeek of 2026-10-18: -8,193 linesWeek of 2026-10-25: +297,735 linesWeek of 2026-10-25: -162,838 linesWeek of 2026-11-01: +0 linesWeek of 2026-11-01: -0 linesFeb 15, 2026Nov 1, 2026
+768.6K lines added, -240.7K removed over the last year.

Commits per week

last 52 weeks
450Week of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 29 commitsWeek of 2026-02-22: 42 commitsWeek of 2026-03-01: 9 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 8 commitsWeek of 2026-04-19: 3 commitsWeek of 2026-04-26: 2 commitsWeek of 2026-05-03: 2 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 12 commitsWeek of 2026-05-24: 5 commitsWeek of 2026-05-31: 7 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 9 commitsWeek of 2026-06-21: 9 commitsWeek of 2026-06-28: 10 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 5 commitsWeek of 2026-07-26: 2 commitsWeek of 2026-08-02: 1 commitsWeek of 2026-08-09: 6 commitsWeek of 2026-08-16: 5 commitsWeek of 2026-08-23: 2 commitsWeek of 2026-08-30: 18 commitsWeek of 2026-09-06: 26 commitsWeek of 2026-09-13: 2 commitsWeek of 2026-09-20: 5 commitsWeek of 2026-09-27: 2 commitsWeek of 2026-10-04: 1 commitsWeek of 2026-10-11: 0 commitsWeek of 2026-10-18: 14 commitsWeek of 2026-10-25: 45 commitsWeek of 2026-11-01: 0 commitsNov 9, 2025Nov 1, 2026
281 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 7 commitsSun 2:00 — 5 commitsSun 3:00 — 0 commitsSun 4:00 — 2 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 1 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 2 commitsSun 13:00 — 1 commitsSun 14:00 — 0 commitsSun 15:00 — 0 commitsSun 16:00 — 1 commitsSun 17:00 — 0 commitsSun 18:00 — 6 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 1 commitsSun 22:00 — 1 commitsSun 23:00 — 1 commitsMon 0:00 — 5 commitsMon 1:00 — 8 commitsMon 2:00 — 2 commitsMon 3:00 — 2 commitsMon 4:00 — 3 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 2 commitsMon 8:00 — 1 commitsMon 9:00 — 2 commitsMon 10:00 — 1 commitsMon 11:00 — 2 commitsMon 12:00 — 5 commitsMon 13:00 — 0 commitsMon 14:00 — 0 commitsMon 15:00 — 0 commitsMon 16:00 — 1 commitsMon 17:00 — 0 commitsMon 18:00 — 0 commitsMon 19:00 — 1 commitsMon 20:00 — 0 commitsMon 21:00 — 2 commitsMon 22:00 — 0 commitsMon 23:00 — 0 commitsTue 0:00 — 1 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 3 commitsTue 6:00 — 6 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 3 commitsTue 10:00 — 0 commitsTue 11:00 — 1 commitsTue 12:00 — 2 commitsTue 13:00 — 1 commitsTue 14:00 — 0 commitsTue 15:00 — 0 commitsTue 16:00 — 1 commitsTue 17:00 — 0 commitsTue 18:00 — 10 commitsTue 19:00 — 3 commitsTue 20:00 — 2 commitsTue 21:00 — 3 commitsTue 22:00 — 0 commitsTue 23:00 — 0 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 2 commitsWed 14:00 — 1 commitsWed 15:00 — 4 commitsWed 16:00 — 0 commitsWed 17:00 — 3 commitsWed 18:00 — 2 commitsWed 19:00 — 1 commitsWed 20:00 — 1 commitsWed 21:00 — 1 commitsWed 22:00 — 2 commitsWed 23:00 — 0 commitsThu 0:00 — 1 commitsThu 1:00 — 5 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 1 commitsThu 9:00 — 0 commitsThu 10:00 — 3 commitsThu 11:00 — 5 commitsThu 12:00 — 2 commitsThu 13:00 — 0 commitsThu 14:00 — 0 commitsThu 15:00 — 5 commitsThu 16:00 — 4 commitsThu 17:00 — 2 commitsThu 18:00 — 11 commitsThu 19:00 — 4 commitsThu 20:00 — 5 commitsThu 21:00 — 2 commitsThu 22:00 — 3 commitsThu 23:00 — 1 commitsFri 0:00 — 0 commitsFri 1:00 — 1 commitsFri 2:00 — 5 commitsFri 3:00 — 1 commitsFri 4:00 — 2 commitsFri 5:00 — 1 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 5 commitsFri 11:00 — 7 commitsFri 12:00 — 1 commitsFri 13:00 — 0 commitsFri 14:00 — 3 commitsFri 15:00 — 0 commitsFri 16:00 — 4 commitsFri 17:00 — 1 commitsFri 18:00 — 2 commitsFri 19:00 — 2 commitsFri 20:00 — 4 commitsFri 21:00 — 7 commitsFri 22:00 — 3 commitsFri 23:00 — 6 commitsSat 0:00 — 4 commitsSat 1:00 — 1 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 2 commitsSat 7:00 — 0 commitsSat 8:00 — 9 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 2 commitsSat 13:00 — 3 commitsSat 14:00 — 3 commitsSat 15:00 — 6 commitsSat 16:00 — 1 commitsSat 17:00 — 10 commitsSat 18:00 — 3 commitsSat 19:00 — 1 commitsSat 20:00 — 3 commitsSat 21:00 — 1 commitsSat 22:00 — 1 commitsSat 23:00 — 3 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Nov 2, 2026daily#1+2,243
  • morluto/rea

    Reverse engineer anything with agents, from app behavior down to native binaries.

    421.2K stars · TypeScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    295.2K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    259.7K stars · Python

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    209.4K stars · TypeScript

  • yt-dlp/yt-dlp

    A feature-rich command-line audio/video downloader

    204.7K stars · Python

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    197.9K stars · TypeScript