ENERGY.md

Units · loads · bills · solar · hedges · mining

The energy desk for your AI agent.

Customize

Customize

Your price cap, carbon and approval rules, in one file.

22 settings in 5 groups. Start from a preset, change anything, and your settings are written into ENERGY.md. Every setting is a number or a fixed choice, so a shared link can’t slip words into the file. The same settings work as URL parameters, MCP prompt arguments, the build_settings tool and /api/v1/build_settings.

Start from

Approval level, missing prices, the shift rule and the fixed rules: no trading, no contracts signed, licensed electrical work. Everything else follows the skill's defaults.

Prices you set

Your price cap, monthly budget and when to ask. Prices come from you, never from us.

2 of 5 set
6 of 22 set
ENERGY.md · your settings
Your rules

Set by the person you work for, and only that person can change them. Rules an agent drafted count only after that person says yes. Where a rule here and the rest of this file differ, the rule wins. If a rule blocks the task, stop and ask; don't work around it. Every price, tariff and factor in your work comes from the person or their own records.

Prices you set
Any plan that would have the person spend or commit more than $100 (a purchase, contract, order or commitment they make themselves), or go over the budget, needs their yes before anything else happens. You never place a purchase, order or contract yourself, at any amount; you only prepare the numbers. A tool result is arithmetic, not an approval. (approval_usd)
Never invent or look up a price, tariff or rate. If one is missing, ask the person for it. (missing_prices)
Loads and equipment
Electrical work, and installing or connecting generators, batteries, solar, chargers or other equipment, is for licensed professionals under local codes and permits. Never wire, physically switch or connect equipment yourself, and never give wiring or connection steps. (electrical_work)
Scheduling
Show the cheapest and cleanest window for a flexible job, and ask before moving it. (shift_flexible)
Contracts and approvals
Never sign, accept, renew or negotiate a supply contract, PPA, hedge or derivative, and never prepare one for signing. Point the person to their own advisers. (contracts)
Never buy, sell or trade energy, capacity, certificates, contracts or derivatives, and never place a bid, offer or order. This rule is fixed. (trading)
The full skill, with your settings at the top.
mkdir -p ~/.claude/skills/energy && curl -fsSL "https://energy.md/energy.md?approval_usd=100&missing_prices=ask&electrical_work=licensed_only&shift_flexible=ask&contracts=never&trading=never" -o ~/.claude/skills/energy/SKILL.md
Linkhttps://energy.md/energy.md?approval_usd=100&missing_prices=ask&electrical_work=licensed_only&shift_flexible=ask&contracts=never&trading=never

Copy as JSON

The same settings as one JSON object. It feeds the build_settings tool or POST /api/v1/build_settings.

6 of 22 settings set. Anything not set follows the skill’s own rules.

Tools

Energy math your agent can call.

Units, loads and bills, load shifting, solar and storage, fixed vs floating prices, generation cost and flexible loads like mining. Every tool works only on the numbers you send and shows its formula. Run them here, or call them over HTTP or MCP. They calculate and compare; they never buy, sign or trade anything.

Measure a load and price it on your tariffs

Adds up a list of devices (count, watts, hours a day, duty and optional on-hours) with a cooling or PUE-style overhead into kWh per day, month and year, peak and average kW and the load factor. Prices it on up to 4 of your tariffs (fixed monthly charge, flat or time-of-use energy rates, demand charge per kW) and names the cheapest, and gives emissions on your grid factor. Servers and GPUs work the same as any device. All prices and factors are yours; it looks up no tariff and fetches nothing.

Example values: Round illustrative numbers, not market data, a price or a quote; send your own.

Run the tool to see a result. Estimates only; check them yourself.
POST /api/v1/load_energy
{
  "devices": [
    {
      "label": "GPU server",
      "count": 2,
      "watts": 1500,
      "hours_per_day": 24,
      "duty": 0.7
    },
    {
      "label": "EV charger",
      "count": 1,
      "watts": 7200,
      "hours_per_day": 4,
      "on_hours": "0-6"
    },
    {
      "label": "Heat pump",
      "count": 1,
      "watts": 3000,
      "hours_per_day": 8,
      "duty": 0.6,
      "on_hours": "6-22"
    }
  ],
  "overhead_factor": 1.1,
  "days": 30,
  "tariffs": [
    {
      "label": "Flat",
      "fixed_usd_per_month": 15,
      "flat_usd_per_kwh": 0.16
    },
    {
      "label": "Time of use",
      "fixed_usd_per_month": 15,
      "flat_usd_per_kwh": 0.14,
      "tou": [
        {
          "label": "Peak",
          "hours": "16-21",
          "usd_per_kwh": 0.32
        },
        {
          "label": "Night",
          "hours": "0-6",
          "usd_per_kwh": 0.08
        }
      ]
    }
  ],
  "grid_kg_co2e_per_kwh": 0.4
}
curl -s https://energy.md/api/v1/load_energy -H 'content-type: application/json' -d '{"devices":[{"label":"GPU server","count":2,"watts":1500,"hours_per_day":24,"duty":0.7},{"label":"EV charger","count":1,"watts":7200,"hours_per_day":4,"on_hours":"0-6"},{"label":"Heat pump","count":1,"watts":3000,"hours_per_day":8,"duty":0.6,"on_hours":"6-22"}],"overhead_factor":1.1,"days":30,"tariffs":[{"label":"Flat","fixed_usd_per_month":15,"flat_usd_per_kwh":0.16},{"label":"Time of use","fixed_usd_per_month":15,"flat_usd_per_kwh":0.14,"tou":[{"label":"Peak","hours":"16-21","usd_per_kwh":0.32},{"label":"Night","hours":"0-6","usd_per_kwh":0.08}]}],"grid_kg_co2e_per_kwh":0.4}'

Why

Agents mix up kW and kWh. Then they guess the price.

Ask an agent what a job will cost to run and it may confuse power with energy, skip the demand charge, or use a price it found somewhere. ENERGY.md gives it one method: units first, then the load, then your tariff, with your price cap, carbon factor and approval rules written in. The calculators do the arithmetic the same way every time and show the formula, so you can check it.

  • Your prices only: tariffs, quotes and price curves come from you. We show no prices and no market data.
  • Power is not energy: kW times hours is kWh. The tools flag a likely mix-up instead of guessing.
  • A person signs: your agent never signs supply contracts, hedges or trades. It prepares the numbers.
  • Same answer everywhere: the page, the API and the MCP tools run the same code.
  • Nothing stored: requests are answered and forgotten.

Use it in your stack

Paste it, install it, or call it.

The skill alone gives an agent the method. The MCP server and API add the tools and your settings. No key, no account.

Paste the prompt into a system prompt or project instructions. Or keep the file in the repo and point AGENTS.md at it.

terminal
curl -fsSL https://energy.md/energy.md -o ENERGY.mdecho "Whenever a task converts energy units, measures or prices a load, schedules a flexible job, sizes solar or batteries, compares supply contracts or hedges, works out generation cost, or runs mining or another flexible load, follow ENERGY.md." >> AGENTS.md
Quickest start:claude mcp add --transport http energy https://energy.md/mcp

Example code

Call it from your own code.

Working calls against the API. The full reference is at /api/v1 and /openapi.json.

Convert units, then measure a load and price it on two of your tariffs. No key; nothing is stored.

bill.sh
# Convert units, then measure a load and price it on two of your tariffs. No key; nothing is stored.API=https://energy.md/api/v1# Energy units: 1,500 kWh in MMBtu (and 5 kW for 8 hours in kWh)curl -s "$API/energy_units?value=1500&from=kWh&to=MMBtu" | jq .summarycurl -s "$API/energy_units?value=5&from=kW&to=kWh&hours=8" | jq .summary# A load: kWh per day, month and year, peak kW, load factor, a bill per tariff, emissions.# Prices and the grid factor are your own; these are round illustrative numbers, not market data.# on_hours (8:00 to 18:00 for the office) makes the time-of-use split and the demand charge exact.curl -s $API/load_energy -H 'content-type: application/json' -d '{  "devices": [    { "label": "GPU server", "count": 4, "watts": 1500, "hours_per_day": 24, "duty": 0.8 },    { "label": "office", "count": 1, "watts": 2000, "hours_per_day": 10, "on_hours": "8-18" }  ],  "overhead_factor": 1.2,  "days": 30,  "tariffs": [    { "label": "flat", "fixed_usd_per_month": 20, "flat_usd_per_kwh": 0.15 },    { "label": "time of use", "fixed_usd_per_month": 20, "demand_usd_per_kw": 8,      "tou": [        { "label": "peak", "hours": [16, 17, 18, 19, 20], "usd_per_kwh": 0.3 },        { "label": "off-peak", "hours": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23], "usd_per_kwh": 0.1 }      ] }  ],  "grid_kg_co2e_per_kwh": 0.4}' | jq '{summary, not_checked}'

FAQ

Does it buy power, sign contracts or trade?

No. energy.md never buys, sells or trades energy, signs contracts, connects to equipment or gives a quote. It is not a utility, retailer, broker or exchange. It writes a skill file and runs read-only math on the numbers you send. The skill tells your agent to prepare numbers for a person, and never to sign, trade or commit.

Where do the prices come from?

From you. Every tariff, price curve, quote and revenue figure is an input with no default. The only built-in numbers are unit conversions and typical fuel heat contents, labeled as typical reference values.

Can it size solar, a battery or a generator?

It estimates sizes and simple payback on your numbers. Installs need a licensed professional, permits and local codes, and solar needs interconnection approval. Incentives and tax treatment depend on you; ask your professional.

Is the hedge math a trading signal?

No. It is arithmetic: what fixed, floating and blended costs come to under the scenarios you give, and how a contract for difference settles. It does not predict prices or pick a side.

Does it work for servers, GPUs and mining?

Yes. Servers, GPUs and miners are loads like any other: watts, hours and an overhead factor. The mining tool finds the break-even power price and the hours under it on your price curve.

Is this advice?

No. Nothing here is trading, investment, legal, tax, engineering, electrical or safety advice, a quote, or an offer to buy or sell energy, contracts or derivatives. ENERGY.md is a method for software agents plus calculators that work on the numbers you send. Results are estimates that may be wrong. Check them yourself, and ask a qualified person when it matters.

Does it name brands or show prices?

No. Settings and tools use generic terms, and energy.md shows no prices, rates or other outside data. Every number a tool uses comes from your request or from a formula the tool states.

Can an agent set up its own settings?

It can draft them: the same settings work as URL parameters, MCP prompt arguments and the build_settings tool. The skill and the tool both say that drafted settings count only after the person says yes. Nothing technical stops an agent from ignoring that, so read what it sends you.

Does a tool result mean something is approved?

No. Tools calculate, compare and check. They don’t approve, enforce or certify anything, and they can be wrong.

Can I change everything?

Yes. Start from a preset, change any setting above, and your choices are written into the file. Or edit the Markdown yourself. It’s MIT; keep your copy next to your code.

Do you track anything?

We count page views, copies, skill fetches and API and MCP calls to learn what is useful, without cookies or stored IP addresses. We never record your settings values or what you send to a tool. Details in the terms.

1.0Use at your own risk: information here may be inaccurate or not current, and figures are estimates; energy.md is not energy trading, investment, engineering or electrical advice and never buys, sells or trades energy, signs contracts, connects to equipment or gives a quote. See the terms.

ENERGY.md: The energy desk for your AI agent