Skip to main content

day-recap

Русский

tests coverage python 3.12+

Collects a day's work from local git repositories, Cursor transcripts, OpenCode sessions, and a Telegram allowlist. Only a confirmed block is appended to the Obsidian daily note.

The raw dump stays outside the vault. An empty day does not change the note.

## 🤖 Итоги дня

### Сделано
- **billing** — сузил окно повторной оплаты до одного счёта

### Решения и обоснования
Оставили повтор по idempotency-key. Повтор всей корзины отбросили: он списывал деньги второй раз.

Install and configure

uv tool install day-recap

Run day-recap init in your own terminal, not in the agent chat. It asks for the Telegram secrets, the notes directory, the template, one walk root, and the allowlist. Do not type api_id or api_hash into the chat. When ~/.config/day-recap/config.toml is missing, init copies the packaged example and writes your answers over it. An existing file is not replaced wholesale. init asks qr or code. qr prints a code to scan: Settings → Devices → Link desktop device. code waits for the login code in the Telegram service chat. --login qr or --login code skips the question. --relogin signs in again and does not rewrite the toml by itself. After login, init shows the same numbered table as day-recap chats and records the selected numbers. An empty allowlist is asked for immediately. A non-empty one changes only after you agree.

day-recap chats prints a table and ready [[telegram.chats]] blocks and does not change the config. Only allowlisted chats are read into the raw dump.

Section What it sets
[notes] Where to write the daily note.
[state] Where raw dumps are stored.
[git] Which directories to walk and whose commits to take.
[transcripts] Cursor JSONL roots and how messages are trimmed.
[opencode] OpenCode database and the same trim.
[telegram] Whether the source is on, and the allowlist.
[summary] Size threshold.

Keys and defaults ship in the package as app/config.example.toml.

  • The size threshold is 100000 bytes.
  • Raw dumps are kept for 14 days.
  • ~/.config/day-recap/.env is mode 600.

In the agent

day-recap install puts the skill at ~/.agents/skills/day-recap/SKILL.md. Running it again replaces that directory wholesale. day-recap uninstall removes only that copy. Run both in your own terminal, not in the agent chat.

/day-recap
/day-recap yesterday
/day-recap 2026-10-05

The date is today, yesterday, or YYYY-MM-DD. With no date, the window runs from local midnight to the moment you start.

The skill shows a draft and asks what you decided and what you rejected. The note changes only after a separate yes. An empty day does not change the note. With no Telegram session the other sources are still collected, and the block contains the line «Telegram недоступен, чаты не учтены».

Other commands

collect stores a raw dump. show prints the day status, or one source when you name it. The source is optional: git, transcripts, opencode, or telegram. Both take --date (today, yesterday, or YYYY-MM-DD) and --config PATH.

write reads the block from stdin. It needs --date YYYY-MM-DD and --body -, and takes --config PATH. Without --apply the note stays unchanged.

day-recap collect --date yesterday
day-recap show git --date 2026-10-05
day-recap write --date 2026-10-05 --body - --apply

Development

From a checkout of this repository:

uv tool install --editable .
just lint    # ruff
just fmt     # ruff format
just types   # mypy
just test    # pytest

Metadata

Release files for day-recap 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for day-recap 0.3.0
File Size Uploaded
day_recap-0.3.0.tar.gz 60.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for day-recap 0.3.0
File Interpreter ABI Platform
day_recap-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 133.5 kB

Release files / day_recap-0.3.0.tar.gz

Download URL day_recap-0.3.0.tar.gz
Size 60.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8fb842c7d7387531f83149710ad70fe7f6f6c64f4a5cfff2c9705992af3c1843
BLAKE2b-256 checksum
How to use checksums
4f41eacf3ef8041af07d9b54f492d36d1769b06d75b314ebe95254028d15794f
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 Oct 15, 2026.

Transparency log

Release files / day_recap-0.3.0-py3-none-any.whl

Download URL day_recap-0.3.0-py3-none-any.whl
Size 73.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e049d208d078d90327179b4896aa2fe568df5df8410157b896785da683870b4
BLAKE2b-256 checksum
How to use checksums
0a6f865ee10c5c37673e9aa32012e6c79301ceb57cf450d9cec0e1b53bdd77f4
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 Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page