{"id":13582144,"url":"https://github.com/dkorunic/iSMC","last_synced_at":"2025-04-06T13:32:56.213Z","repository":{"id":42015630,"uuid":"215882931","full_name":"dkorunic/iSMC","owner":"dkorunic","description":"Apple SMC CLI tool that can decode and display temperature, fans, battery, power, voltage and current information","archived":false,"fork":false,"pushed_at":"2024-08-18T09:07:37.000Z","size":452,"stargazers_count":112,"open_issues_count":0,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-09-13T09:52:29.157Z","etag":null,"topics":["apple","current","fan","hardware","macos","monitoring","power","smc","temperature","voltage"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/dkorunic.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":"2019-10-17T20:47:42.000Z","updated_at":"2024-08-29T08:03:44.000Z","dependencies_parsed_at":"2024-04-23T16:46:00.803Z","dependency_job_id":"bdb26db8-00b6-4cb2-a1f4-efb954ed359f","html_url":"https://github.com/dkorunic/iSMC","commit_stats":{"total_commits":42,"total_committers":6,"mean_commits":7.0,"dds":"0.16666666666666663","last_synced_commit":"6674640425a0a0047df418829d02d809563a7319"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2FiSMC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2FiSMC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2FiSMC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkorunic%2FiSMC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkorunic","download_url":"https://codeload.github.com/dkorunic/iSMC/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223253729,"owners_count":17114244,"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":["apple","current","fan","hardware","macos","monitoring","power","smc","temperature","voltage"],"created_at":"2024-08-01T15:02:27.292Z","updated_at":"2024-11-05T22:30:23.056Z","avatar_url":"https://github.com/dkorunic.png","language":"Go","readme":"# iSMC\n\n[![GitHub license](https://img.shields.io/github/license/dkorunic/iSMC.svg)](https://github.com/dkorunic/iSMC/blob/master/LICENSE)\n[![GitHub release](https://img.shields.io/github/release/dkorunic/iSMC.svg)](https://github.com/dkorunic/iSMC/releases/latest)\n[![Go Report Card](https://goreportcard.com/badge/github.com/dkorunic/iSMC)](https://goreportcard.com/report/github.com/dkorunic/iSMC)\n\n## About\n\n`iSMC` is an Apple System Management Controller (SMC) CLI tool that attempts to query SMC for a number of well known keys and determine their type and value, classifying them into temperature, power, current, voltage, fan and battery readouts. It will also attempt to give a human-readable description of each found SMC key.\n\nApart from regular support for regular (PPC and Intel hardware), it also supports M1 ARM-based SoC hardware which has temperature/voltage/current/power sensors connected to a HID sensor hub.\n\n![Demo](demo.gif)\n\n## Installation\n\nThere are two ways of installing `iSMC` (tool works only on macOS computers):\n\n### Manual\n\nDownload your preferred flavor from [the releases](https://github.com/dkorunic/iSMC/releases/latest) page and install manually.\n\n### Using go install\n\n```shell\nCGO_ENABLED=1 go install github.com/dkorunic/iSMC@latest\n```\n\n## Usage\n\nUsage:\n\n```shell\n$ iSMC help\nApple SMC CLI tool that can decode and display temperature, fans, battery, power, voltage and current\ninformation for various hardware in your Apple Mac hardware.\n\nUsage:\n  iSMC [flags]\n  iSMC [command]\n\nAvailable Commands:\n  batt        Display battery status\n  completion  Generate the autocompletion script for the specified shell\n  curr        Display current sensors\n  fans        Display fans status\n  help        Help about any command\n  power       Display power sensors\n  temp        Display temperature sensors\n  volt        Display voltage sensors\n\nFlags:\n  -h, --help             help for iSMC\n  -o, --output string    Output format (ascii, table, json) (default \"table\")\n\nUse \"iSMC [command] --help\" for more information about a command.\n```\n\nUsage of all commands is self explanatory and all commands have short and long aliases (bat vs. batt vs. battery, cur vs. curr vs. current etc.). There are no flags and/or switches.\n\n## Related work\n\nI have taken a look at many Apple SMC related projects and took inspiration from them:\n\n- **SMCKit** Apple SMC library \u0026 tool in Swift: [github.com/beltex/SMCKit](/github.com/beltex/SMCKit)\n- SMC API in pure C: [github.com/beltex/libsmc](https://github.com/beltex/libsmc)\n- **iStats** Ruby Gem for Mac stats: [github.com/Chris911/iStats](https://github.com/Chris911/iStats)\n- **smcFanControl** tool to control fans in Objective-C (this includes **smc-command** to query raw SMC keys): [github.com/hholtmann/smcFanControl](https://github.com/hholtmann/smcFanControl)\n- **FakeSMC** Hackintosh kext: [github.com/RehabMan/OS-X-FakeSMC-kozlek](https://github.com/RehabMan/OS-X-FakeSMC-kozlek)\n- **VirtualSMC** Hackintosh kext: [github.com/acidanthera/VirtualSMC](https://github.com/acidanthera/VirtualSMC)\n- **osx-cpu-temp** to display CPU temperature in pure C: [github.com/lavoiesl/osx-cpu-temp](https://github.com/lavoiesl/osx-cpu-temp)\n- Linux kernel **applesmc.c**: [github.com/torvalds/linux/blob/master/drivers/hwmon/applesmc.c](https://github.com/torvalds/linux/blob/master/drivers/hwmon/applesmc.c)\n- low-level Go bindings for devnull SMC tool: [github.com/panotza/gosmc](https://github.com/panotza/gosmc)\n- Koan-Sin Tan's M1 IOKit demo code: [https://github.com/freedomtan/sensors](https://github.com/freedomtan/sensors)\n- Koan-Sin Tan's M1 exploration slides: [https://www.slideshare.net/kstan2/exploring-your-apple-m1-devices-with-open-source-tools](https://www.slideshare.net/kstan2/exploring-your-apple-m1-devices-with-open-source-tools)\n- Serhiy Mytrovtsiy's MacOS **Stats** app: [https://github.com/exelban/stats](https://github.com/exelban/stats)\n\n## Todo\n\nPlanned features:\n\n- fetch and decode SMC key descriptions from SMC,\n- generate random SMC keys and fetch/decode if available/usable,\n- store those extra (random) SMC keys in permanent configuration file,\n- add support for missing types (si\\*, hex\\_, pwm, etc.),\n- various code cleanups (some parts are downright horrible).\n\n## Bugs, feature requests, etc.\n\nPlease open a PR or report an issue. Thanks!\n\n## Star history\n\n[![Star History Chart](https://api.star-history.com/svg?repos=dkorunic/iSMC\u0026type=Date)](https://star-history.com/#dkorunic/iSMC\u0026Date)","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkorunic%2FiSMC","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkorunic%2FiSMC","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkorunic%2FiSMC/lists"}