{"id":15629703,"url":"https://github.com/anko/xkbcat","last_synced_at":"2025-10-26T04:03:55.528Z","repository":{"id":19211091,"uuid":"22444938","full_name":"anko/xkbcat","owner":"anko","description":"simple sudoless X11 keylogger","archived":false,"fork":false,"pushed_at":"2023-06-12T12:21:46.000Z","size":67,"stargazers_count":117,"open_issues_count":6,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-14T22:37:52.872Z","etag":null,"topics":["keylogger","x11"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anko.png","metadata":{"files":{"readme":"readme.markdown","changelog":"history.markdown","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-07-30T21:12:53.000Z","updated_at":"2025-03-11T23:37:26.000Z","dependencies_parsed_at":"2024-10-23T01:03:39.047Z","dependency_job_id":null,"html_url":"https://github.com/anko/xkbcat","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/anko/xkbcat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Fxkbcat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Fxkbcat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Fxkbcat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Fxkbcat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anko","download_url":"https://codeload.github.com/anko/xkbcat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Fxkbcat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278366608,"owners_count":25975091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["keylogger","x11"],"created_at":"2024-10-03T10:28:13.350Z","updated_at":"2025-10-04T19:41:02.497Z","avatar_url":"https://github.com/anko.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xkbcat [![](https://img.shields.io/github/actions/workflow/status/anko/xkbcat/ci.yml?branch=master\u0026style=flat-square)](https://github.com/anko/xkbcat/actions) ![](https://img.shields.io/github/languages/code-size/anko/xkbcat?style=flat-square)\n\nSimple X11 keylogger.\n\n - Simple output format:  One line on `stdout` per key event.\n - Simple to audit:  One short file of modern C.\n - Simple to run:  Does not need `sudo`.\n\n## Examples\n\n### Keypresses only\n\nGiven no options, `xkbcat` prints only keypresses, one per line. Here's the\noutput when I type \"Hi\":\n\n    Shift_L\n    h\n    i\n\n### Keypresses and key-ups\n\nWith key-ups enabled (`xkbcat -up`), the format changes to show them:\n\n    +Shift_L\n    +h\n    -h\n    -Shift_L\n    +i\n    -i\n\nLines starting `+` are key-downs; `-` are key-ups.\n\n## Compilation\n\nJust `make`.\n\nDon't have `X11/extensions/XInput2.h`?  Install your distro's `libxi-devel`\npackage.\n\n## Usage\n\nOptions you can pass (all optional):\n\n - `-display \u003cdisplay\u003e`: set target X display (default `:0`)\n - `-up`: also prepend key-ups (default: don't)\n - `-help`: print usage hints and exit\n\nThen just use your computer as usual.  Interrupt signal (`C-c`) to quit.\n\n## Related programs\n\n### Other keyloggers\n\n - If you need to log keys across a whole Linux system (also in the\n   framebuffer—not just in X11), try [keysniffer][1].  It works via a kernel\n   module, and needs `sudo`.\n - If you want to see what characters the user actually typed (with modifier\n   keys, backspace, etc resolved into text), [`xspy`][2] or [`logkeys`][3]\n   might be better for you.\n\n### Programs that work well together with `xkbcat`\n\n - If you want to add timestamps to each line for logging purposes, I recommend\n   piping to the [moreutils package][4]'s `ts`.  [These answers][5] feature\n   various other tools good for the purpose.\n - If you only want to see key names when you press keys in the same terminal\n   where `xkbcat` is running, you can temporarily disable terminal echo with\n   `stty -echo \u0026\u0026 xkbcat`.  (`stty` is in coreutils.)\n\n### Programs for logging other X11 events\n\n - [xinput][6] invoked as `xinput --test-xi2 --root` logs everything\n   input-related; even mouse movements and clicks, and touchpad stuff.  Its\n   output is very comprehensive, but harder to parse.\n\n - If you need to log X11 events more generally, various protocol monitoring\n   programs are listed in the [X11 debugging guide][7].\n\n## Versioning\n\nThe git-tagged version numbers follow [semver][8].\n\nError outputs (on stderr) are intended to be read by people.  Changes to their\nwording are not considered breaking changes.  Don't parse them\nprogrammatically.\n\n## License\n\n[ISC][9].\n\n\n[1]: https://github.com/jarun/keysniffer\n[2]: http://www.freshports.org/security/xspy/\n[3]: http://code.google.com/p/logkeys/\n[4]: http://joeyh.name/code/moreutils/\n[5]: http://stackoverflow.com/questions/21564/is-there-a-unix-utility-to-prepend-timestamps-to-lines-of-text\n[6]: https://www.x.org/archive/current/doc/man/man1/xinput.1.xhtml\n[7]: https://www.x.org/wiki/guide/debugging/\n[8]: http://semver.org/\n[9]: http://opensource.org/licenses/ISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanko%2Fxkbcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanko%2Fxkbcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanko%2Fxkbcat/lists"}