{"id":21701555,"url":"https://github.com/srwi/via-cli","last_synced_at":"2025-05-12T23:09:30.461Z","repository":{"id":263282831,"uuid":"867324932","full_name":"srwi/via-cli","owner":"srwi","description":"A command-line interface for the VIA api for QMK-based keyboards","archived":false,"fork":false,"pushed_at":"2025-03-22T21:20:32.000Z","size":33,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T23:09:23.826Z","etag":null,"topics":["keyboard-firmware","qmk","rust","via"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srwi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-10-03T21:07:18.000Z","updated_at":"2025-05-06T18:41:12.000Z","dependencies_parsed_at":"2024-11-17T15:25:34.918Z","dependency_job_id":"74245285-ac3b-4448-974d-913f31483254","html_url":"https://github.com/srwi/via-cli","commit_stats":null,"previous_names":["srwi/via-cli"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srwi%2Fvia-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srwi%2Fvia-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srwi%2Fvia-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srwi%2Fvia-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srwi","download_url":"https://codeload.github.com/srwi/via-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253837407,"owners_count":21971983,"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","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":["keyboard-firmware","qmk","rust","via"],"created_at":"2024-11-25T20:24:15.719Z","updated_at":"2025-05-12T23:09:30.416Z","avatar_url":"https://github.com/srwi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# via-cli\n\nA command-line interface (CLI) for the [VIA API](https://github.com/srwi/qmk-via-api), designed for use with keyboards running the [QMK](https://github.com/qmk/qmk_firmware) (Quantum Mechanical Keyboard) firmware.\n\n## Usage\n\n\u003e [!NOTE]\n\u003e To run `via-cli` on Linux, you need to have `libudev` installed.\n\nKeycodes are displayed in decimal format by default. They can be provided in either decimal or hexadecimal format (prefixed with `0x`).\n\n```\nUsage: via-cli [OPTIONS] --vid \u003cVID\u003e --pid \u003cPID\u003e \u003cCOMMAND\u003e\n\nCommands:\n  send-raw-data                Send raw byte data (up to 32 bytes)\n  receive-raw-data             Receive raw byte data (32 bytes)\n  get-protocol-version         Get the protocol version\n  get-layer-count              Get the layer count\n  get-key                      Get a key from a specific layer, row, and column\n  set-key                      Set a key at a specific layer, row, and column\n  read-raw-matrix              Read the raw matrix for a specific layer\n  write-raw-matrix             Write the raw matrix\n  get-keyboard-value           Get a keyboard value\n  set-keyboard-value           Set a keyboard value\n  get-encoder-value            Get an encoder value\n  set-encoder-value            Set an encoder value\n  get-custom-menu-value        Get a custom menu value\n  set-custom-menu-value        Set a custom menu value\n  save-custom-menu             Save custom menu values for a specific channel\n  get-backlight-brightness     Get the backlight brightness\n  set-backlight-brightness     Set the backlight brightness\n  get-backlight-effect         Get the backlight effect\n  set-backlight-effect         Set the backlight effect\n  get-rgblight-brightness      Get the RGB light brightness\n  set-rgblight-brightness      Set the RGB light brightness\n  get-rgblight-effect          Get the RGB light effect\n  set-rgblight-effect          Set the RGB light effect\n  get-rgblight-effect-speed    Get the RGB light effect speed\n  set-rgblight-effect-speed    Set the RGB light effect speed\n  get-rgblight-color           Get the RGB light color\n  set-rgblight-color           Set the RGB light color\n  get-rgb-matrix-brightness    Get the RGB matrix brightness\n  set-rgb-matrix-brightness    Set the RGB matrix brightness\n  get-rgb-matrix-effect        Get the RGB matrix effect\n  set-rgb-matrix-effect        Set the RGB matrix effect\n  get-rgb-matrix-effect-speed  Get the RGB matrix effect speed\n  set-rgb-matrix-effect-speed  Set the RGB matrix effect speed\n  get-rgb-matrix-color         Get the RGB matrix color\n  set-rgb-matrix-color         Set the RGB matrix color\n  get-led-matrix-brightness    Get the LED matrix brightness\n  set-led-matrix-brightness    Set the LED matrix brightness\n  get-led-matrix-effect        Get the LED matrix effect\n  set-led-matrix-effect        Set the LED matrix effect\n  get-led-matrix-effect-speed  Get the LED matrix effect speed\n  set-led-matrix-effect-speed  Set the LED matrix effect speed\n  save-lighting                Save lighting configuration\n  reset-eeprom                 Reset EEPROM\n  jump-to-bootloader           Jump to bootloader\n  get-macro-count              Get the macro count\n  get-macro-bytes              Get the macro bytes\n  set-macro-bytes              Set the macro bytes\n  reset-macros                 Reset macros\n  help                         Print this message or the help of the given subcommand(s)\n\nOptions:\n      --vid \u003cVID\u003e                Vendor ID\n      --pid \u003cPID\u003e                Product ID\n      --usage-page \u003cUSAGE_PAGE\u003e  Usage page [default: 65376]\n  -h, --help                     Print help\n  -V, --version                  Print version\n```\n\n## Examples\n\nGet decimal keycode of row 2 and column 7 on layer 0:\n\n```console\n$ via-cli get-key -h\nGet a key from a specific layer, row, and column\n\nUsage: via-cli --vid \u003cVID\u003e --pid \u003cPID\u003e get-key \u003cLAYER\u003e \u003cROW\u003e \u003cCOLUMN\u003e\n\n$ via-cli --vid 0x594D --pid 0x604D get-key 0 2 7\n13\n```\n\nWrite keymap for a keyboard with 4 rows and 12 columns:\n\n```console\n$ via-cli write-raw-matrix -h\nWrite the raw matrix\n\nUsage: via-cli --vid \u003cVID\u003e --pid \u003cPID\u003e write-raw-matrix \u003cROWS\u003e \u003cCOLS\u003e [KEYMAP]...\n\n$ via-cli --vid 0x594D --pid 0x604D write-raw-matrix 4 12 41,30,31,...,231,228,0\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrwi%2Fvia-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrwi%2Fvia-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrwi%2Fvia-cli/lists"}