Skip to content
/ iSMC Public
forked from dkorunic/iSMC

Apple SMC CLI tool that can decode and display temperature, fans, battery, power, voltage and current information

License

Notifications You must be signed in to change notification settings

roele/iSMC

This branch is 6 commits behind dkorunic/iSMC:master.

Folders and files

NameName
Last commit message
Last commit date
May 28, 2023
Aug 18, 2024
Aug 18, 2024
Jun 13, 2023
Apr 5, 2022
Apr 18, 2022
Feb 5, 2024
Feb 4, 2024
Jun 9, 2020
May 3, 2024
Feb 5, 2024
Apr 23, 2024
Aug 18, 2024
Aug 18, 2024
Apr 7, 2022

Repository files navigation

iSMC

GitHub license GitHub release Go Report Card

About

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.

Apart 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.

Demo

Installation

There are two ways of installing iSMC (tool works only on macOS computers):

Manual

Download your preferred flavor from the releases page and install manually.

Using go install

CGO_ENABLED=1 go install github.com/dkorunic/iSMC@latest

Usage

Usage:

$ iSMC help
Apple SMC CLI tool that can decode and display temperature, fans, battery, power, voltage and current
information for various hardware in your Apple Mac hardware.

Usage:
  iSMC [flags]
  iSMC [command]

Available Commands:
  batt        Display battery status
  completion  Generate the autocompletion script for the specified shell
  curr        Display current sensors
  fans        Display fans status
  help        Help about any command
  power       Display power sensors
  temp        Display temperature sensors
  volt        Display voltage sensors

Flags:
  -h, --help             help for iSMC
  -o, --output string    Output format (ascii, table, json) (default "table")

Use "iSMC [command] --help" for more information about a command.

Usage 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.

Related work

I have taken a look at many Apple SMC related projects and took inspiration from them:

Todo

Planned features:

  • fetch and decode SMC key descriptions from SMC,
  • generate random SMC keys and fetch/decode if available/usable,
  • store those extra (random) SMC keys in permanent configuration file,
  • add support for missing types (si*, hex_, pwm, etc.),
  • various code cleanups (some parts are downright horrible).

Bugs, feature requests, etc.

Please open a PR or report an issue. Thanks!

Star history

Star History Chart

About

Apple SMC CLI tool that can decode and display temperature, fans, battery, power, voltage and current information

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 97.3%
  • Shell 2.7%