{"id":16123548,"url":"https://github.com/jlchntoz/hardware2vrcosc","last_synced_at":"2026-05-20T14:36:24.481Z","repository":{"id":187921748,"uuid":"677674483","full_name":"JLChnToZ/Hardware2VRCOSC","owner":"JLChnToZ","description":"Quick an dirty helper application for sending hardware real-time information (load, temperature, memory usage etc) to VRChat via OSC. Using OpenHardwareMonitor and OscCore.","archived":false,"fork":false,"pushed_at":"2023-11-26T10:03:34.000Z","size":51,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T12:16:10.389Z","etag":null,"topics":["csharp","vrchat","vrchat-avatars","vrchat-osc","vrchat-tool"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JLChnToZ.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":"2023-08-12T08:53:48.000Z","updated_at":"2024-07-08T05:25:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"999c3900-f705-4f55-86ea-8f6f61bb402f","html_url":"https://github.com/JLChnToZ/Hardware2VRCOSC","commit_stats":null,"previous_names":["jlchntoz/hardware2vrcosc"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/JLChnToZ/Hardware2VRCOSC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JLChnToZ%2FHardware2VRCOSC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JLChnToZ%2FHardware2VRCOSC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JLChnToZ%2FHardware2VRCOSC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JLChnToZ%2FHardware2VRCOSC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JLChnToZ","download_url":"https://codeload.github.com/JLChnToZ/Hardware2VRCOSC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JLChnToZ%2FHardware2VRCOSC/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264585371,"owners_count":23632647,"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":["csharp","vrchat","vrchat-avatars","vrchat-osc","vrchat-tool"],"created_at":"2024-10-09T21:17:10.480Z","updated_at":"2026-05-20T14:36:24.475Z","avatar_url":"https://github.com/JLChnToZ.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hardware to VRChat OSC Reporter\n\nThis is a simple tool that could constantly sends hardware status of your computer rig to VRChat via OSC channels, so that you can synchronize these status to your own avatars. It is powered by [Libre Hardware Monitor](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor) (A fork of Open Hardware Monitor). It supports every hardware what Libre Hardware Monitor supports, including loads, temperatures of CPU, GPU, RAM, fan, water cooling, etc. Additionally, it can be also configurated to send datetime information, useful for gadget like watches.\n\nTo use it, just double-click the exe-file, and it will appears as a console window. If there's no config file, it will generate one for you. Here are the available options in the config file:\n- `ipAddress`: The IP address of your VRChat client, if it is the same machine, leave it `127.0.0.1`\n- `port`: The OSC listening port of your VRChat client, default is `9000`, no need to change it unless you changed that for your client.\n- `updateInterval`: The interval between updates in milliseconds, default is `1000`\n- `addresses:`: You can mix and match all hardware channels with math expressions like this:\n  ```yaml\n    /avatar/parameters/something_fancy: '(intelcpu.0.load.1 + intelcpu.0.load.2) / 2'\n  ```\n  Above will send cpu #1 and #2 average load to `something_fancy` avatar parameter.  \n  It also supports following math functions (case insensitive):  \n    - `abs`\n    - `sqrt`\n    - `cbrt`\n    - `pow`\n    - `lerp`\n    - `remap`\n    - `saturate`\n    - `sign`\n    - `round`\n    - `floor`\n    - `ceil`\n    - `trunc`\n    - `sin`\n    - `cos`\n    - `tan`\n    - `asin`\n    - `acos`\n    - `atan`\n    - `sinh`\n    - `cosh`\n    - `tanh`\n    - `asinh`\n    - `acosh`\n    - `atanh`\n    - `log`\n    - `exp`\n    - `log10`\n    - `log2`\n    - `random`\n    - `isnan`\n    - `switch`\n  And these variables (case insensitive):\n    - `LocalTime.Year`\n    - `LocalTime.Month`\n    - `LocalTime.Day`\n    - `LocalTime.DayOfWeek`\n    - `LocalTime.TimeOfDay`\n    - `LocalTime.Timestamp`\n    - `UtcTime.Year`\n    - `UtcTime.Month`\n    - `UtcTime.Day`\n    - `UtcTime.DayOfWeek`\n    - `UtcTime.TimeOfDay`\n    - `UtcTime.Timestamp`\n\nAs an another example, here is how you can make it send [VRCWatch](https://github.com/mezum/vrcwatch)-Compatible OSC messages:\n```yaml\nskipAdminCheck: true\nipAddress: 127.0.0.1\nport: 9000\nupdateInterval: 500\naddresses:\n  /avatar/parameters/DateTimeYear: LocalTime.Year\n  /avatar/parameters/DateTimeMonth: LocalTime.Month\n  /avatar/parameters/DateTimeDay: LocalTime.Day\n  /avatar/parameters/DateTimeHour: floor(LocalTime.TimeOfDay * 24)\n  /avatar/parameters/DateTimeMinute: floor(LocalTime.TimeOfDay * 1440 % 60)\n  /avatar/parameters/DateTimeSecond: floor(LocalTime.TimeOfDay * 86400 % 60)\n  /avatar/parameters/DateTimeHourF: floor(LocalTime.TimeOfDay * 24) / 24\n  /avatar/parameters/DateTimeMinuteF: floor(LocalTime.TimeOfDay * 1440 % 60) / 60\n  /avatar/parameters/DateTimeSecondF: floor(LocalTime.TimeOfDay * 86400 % 60) / 60\n  /avatar/parameters/DateTimeDayTime: LocalTime.TimeOfDay\n  /avatar/parameters/DateTimeHourFA: LocalTime.TimeOfDay\n  /avatar/parameters/DateTimeMinuteFA: LocalTime.TimeOfDay * 1440 % 60 / 60\n  /avatar/parameters/DateTimeSecondFA: LocalTime.TimeOfDay * 86400 % 60 / 60\n```\n\n## License\n\n[MIT](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlchntoz%2Fhardware2vrcosc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlchntoz%2Fhardware2vrcosc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlchntoz%2Fhardware2vrcosc/lists"}