heat-governor
Governs CPU clock speed, fan speed and active cores to keep machines thermally balanced without resets, and records each run so the next one is tuned better.
heat-governor is an AgentCulture mesh
agent. It is distributed as a Python package with an agent-first CLI and runs
on the mesh as the heat-governor resident.
Status
The repository currently contains the agent scaffold only. The thermal governing itself has not been implemented yet.
| Capability | Status |
|---|---|
| Agent-first CLI, mesh identity, skill kit, CI + PyPI publishing | Available |
| Reading temperatures, fan speed, clocks and online cores | Planned |
| Controlling CPU clock, fan speed and active cores | Planned |
| Control loop that keeps the machine balanced without resets | Planned |
| Per-run records, used to tune the next run | Planned |
Quickstart
uv sync
uv run pytest -n auto # run the test suite
uv run heat-governor whoami # identity from culture.yaml
uv run heat-governor learn # self-teaching prompt (add --json)
uv run teken cli doctor . --strict # the agent-first rubric gate CI runs
CLI
| Verb | What it does |
|---|---|
whoami |
Report this agent's nick, version, backend, and model from culture.yaml. |
learn |
Print a structured self-teaching prompt. |
explain <path> |
Markdown docs for any noun/verb path. |
overview |
Read-only descriptive snapshot of the agent. |
doctor |
Check the agent-identity invariants (prompt-file-present, backend-consistency). |
cli overview |
Describe the CLI surface itself. |
Every command supports --json. Results go to stdout and errors/diagnostics
to stderr, never mixed. Exit codes: 0 success, 1 user error, 2
environment error, 3+ reserved.
The CLI is cited from teken
(afi-cli), and the runtime package has no third-party dependencies.
Agent harnesses
Four harnesses can work in this repo. Each reads exactly one root prompt file,
and there is deliberately no AGENTS.md acting as a shared base:
| Harness | File(s) |
|---|---|
| Claude Code | CLAUDE.md (the fullest write-up; read it first) |
| Pi / associate | AGENTS.override.md + .pi/SYSTEM.md |
| colleague | AGENTS.colleague.md |
| Qwen Code | QWEN.md |
culture.yaml declares backend: claude, so CLAUDE.md is the mesh
resident's prompt. That declaration does not stop you running any of the four
harnesses interactively. See
docs/harness-selection.md and
docs/automation-contract.md.
scripts/harness-smoke.py checks that all four configs are correct.
The guildmaster skill kit is vendored under .claude/skills/, cited
verbatim. Its provenance is recorded in
docs/skill-sources.md.
Contributing
- Every PR bumps the version (
version-bumpskill). CI'sversion-checkjob blocks the merge otherwise. - CI runs pytest with coverage and SonarCloud, black, isort, flake8, bandit, markdownlint, the secret scan, the agent-first rubric gate, and the per-harness smoke check.
- A merge to
mainthat touchespyproject.tomlorheat_governor/publishes to PyPI via Trusted Publishing. Such PRs publish a dev build to TestPyPI.
The gate section
culture.yaml carries a top-level gate section that declares how to set up
and test this repo, so tooling such as a PR-fixer needs no per-repo knowledge:
gate:
setup:
- [uv, sync]
test:
- [uv, run, pytest, -n, auto]
setup and test are each a list of commands. Each command is an argv list
(never a shell string), run in order from the repo root. Culture's loader
ignores unknown top-level keys, so the section is safe alongside agents.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for heat-governor 0.10.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| heat_governor-0.10.1.tar.gz | 235.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| heat_governor-0.10.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 260.3 kB
Release files / heat_governor-0.10.1.tar.gz
| Download URL | heat_governor-0.10.1.tar.gz |
|---|---|
| Size | 235.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5698ccd157bbd0364d3742ccc00c9bb2064244b36877cb77e110027fe7686730
|
|
BLAKE2b-256 checksum How to use checksums |
541fd1fe8d66d437c2184d3eb7fc198f21706161bac46fd6f8492209d372ea39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / heat_governor-0.10.1-py3-none-any.whl
| Download URL | heat_governor-0.10.1-py3-none-any.whl |
|---|---|
| Size | 24.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e1d6fbd2c82ec69b13350a513b86b0ad4bcbb9c6b6cee391027867ed7dd7ebe
|
|
BLAKE2b-256 checksum How to use checksums |
19078fcbef190cd3968fce2cbb6f49eefbfad036f9ced378a2db2863d4594d13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for heat-governor 0.10.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.