1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// Copyright 2025 Lablup Inc. and Jeongkyu Shin
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//! Canonical commented example emitted by `all-smi config init`. The
//! contents mirror the schema documented in issue #192 — keep this
//! text in sync with the loader whenever a new key is added.
pub const EXAMPLE_TOML: &str = r##"# all-smi configuration file
#
# All fields are optional; omitted fields fall back to the built-in
# default. Precedence from highest to lowest:
#
# 1. Explicit CLI flag (e.g. --port 9091)
# 2. Environment variable (e.g. ALL_SMI_API_PORT=9091)
# 3. This config file
# 4. Compiled default
#
# Environment variables follow the pattern ALL_SMI_<SECTION>_<KEY>.
# Legacy aliases from earlier releases (ALL_SMI_ALERT_TEMP,
# ALL_SMI_ENERGY_PRICE, etc.) continue to work.
# Schema version understood by this build. Do not change unless a
# future release instructs you to.
schema_version = 1
[general]
# default_mode = "local" # "local" | "view" | "api"
# theme = "auto" # "auto" | "light" | "dark" | "high-contrast" | "mono"
# locale = "en"
[local]
# interval_secs = 2 # 0 = adaptive default
[view]
# hostfile = "~/.config/all-smi/hosts.csv"
# hosts = []
# interval_secs = 0 # 0 = adaptive based on host count
[api]
# port = 9090
# socket = false # bool or path (e.g. "/var/run/all-smi.sock")
# processes = false
# interval_secs = 3
[alerts]
# enabled = true
# temp_warn_c = 80
# temp_crit_c = 90
# util_idle_pct = 5
# util_idle_warn_mins = 15
# hysteresis_c = 2
# bell_on_critical = false
# webhook_url = "" # redacted in `config print` by default
[energy]
# price_per_kwh = 0.12
# currency = "USD"
# show_cost = true
# wal_path = "~/.cache/all-smi/energy-wal.bin" # default: platform cache dir / all-smi / energy-wal.bin
# gap_interpolate_seconds = 10
# wal_enabled = true
[display]
# color_scheme = "default" # "default" | "colorblind" | "mono"
# gauge_style = "blocks" # "blocks" | "braille"
# show_led_grid = true
[record]
# output_dir = "~/.cache/all-smi/records" # default: platform cache dir / all-smi / records
# compress = "zstd" # "zstd" | "gzip" | "none"
[snapshot]
# default_format = "json"
# default_pretty = true
"##;