Nutrilog
Write explicit nutrient data to Google Health.
nutrilog auth login
nutrilog log "Bean salad" --grams 350 --kcal 420 --protein 25 --fat 12 --carbs 48
nutrilog log --input meal.json
cat meal.json | nutrilog log --input -
nutrilog history
nutrilog history yesterday
nutrilog history 2026-08-17 2026-08-23
nutrilog history '2026-08-22T20:00:00+10:00' '2026-08-23T01:00:00+10:00'
nutrilog duplicate POINT_ID --protein 0
nutrilog delete POINT_ID
JSON input is a flat item carrying name, meal_type, optional time,
optional grams, and nutrient fields. Omit time to use the device's current
local time.
Every new entry needs kcal, protein, fat, and carbs; explicit zero is a
valid value. Use --nutrient NAME=GRAMS for another nutrient; names come from
mealtime-nutrients, the list the mealtime tools share, which holds exactly
one per nutrient. Dietary fibre is fiber, and carbohydrate has its own field,
so it is carbs and never carbohydrates. Explicit flags override the input.
Piped tool output keeps its {"ok":true,"data":...} envelope, and a field this
version has not heard of is dropped, so the other tools stay free to add one.
A bare JSON object is read as hand-written instead: an unrecognised key there
is an error, rather than a nutrient quietly left out of the entry.
grams is written to Google as a gram serving and survives reads. When
it is absent, the shared format treats the nutrients as a 100 g fallback.
duplicate always keeps the source and accepts the same overrides as log.
To correct an entry, duplicate it with the correction, inspect the result, then
delete the source explicitly. JSON overrides may use null to remove a value.
Output carries kcal, protein, fat and carbs always, plus only the
nutrients the entry states; an absent key and a null mean the same, while an
explicit zero survives. Missing legacy Google core macros render as zero in
Nutrilog output. Unstated nutrients are omitted from writes. --dry-run --json
shows the record without authenticating or writing.
nutrilog history reads today by default. Pass one date for that day or two
dates for an inclusive range; dates may be ISO dates, today, or yesterday.
Dates become UTC bounds using the device's local timezone. Offset-aware ISO
datetimes are exact bounds; the end datetime is exclusive. Entries are then
compared only in UTC. Core macro totals are always present. Every other
nutrient is totalled only when an entry states it, over the entries that state
it, so a total may cover part of the range.
OAuth tokens remain in ~/.config/nutrilog/tokens.json with mode 0600.
Release files for nutrilog 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nutrilog-0.5.0.tar.gz | 52.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nutrilog-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.5 kB
Release files / nutrilog-0.5.0.tar.gz
| Download URL | nutrilog-0.5.0.tar.gz |
|---|---|
| Size | 52.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4de0b128aee09a2bb9d6f68fb62b7606e00d4b0e720db9e30f946f68dd85e03e
|
|
BLAKE2b-256 checksum How to use checksums |
c9307d6f7cad234b1d91622858e08ed1c3a359eb19dcde7d5b65a66d55a4075b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / nutrilog-0.5.0-py3-none-any.whl
| Download URL | nutrilog-0.5.0-py3-none-any.whl |
|---|---|
| Size | 21.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9479619bc844b222ddf958e85b63239e377e671172a507f59a2fbf4e2385b3c9
|
|
BLAKE2b-256 checksum How to use checksums |
98d304356101d5e4dd1c74de08b94205489649863d7321f7561dd158d2f81fdf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency log