takopi-cron
cron command plugin for takopi. run a prompt on an interval and post results back into your chat.
This is intentionally simple:
- It runs in-process inside Takopi (so Takopi must be running).
- It does not survive restarts (you re-run
/cron startafter restart).
requirements
uv for installation (curl -LsSf https://astral.sh/uv/install.sh | sh)
python 3.14+ (uv python install 3.14)
takopi installed
install
recommended (installs the plugin into takopi's uv tool environment):
uv tool install -U takopi --with takopi-cron
if you installed takopi via pip (or you're running takopi from a project venv), install the plugin into the same environment:
pip install -U takopi-cron
enable it:
[plugins]
enabled = ["takopi-cron"]
usage
Start a job (runs once immediately, then repeats):
/cron start 6 Write a summary of today's PRs and what I should review next.
Stop the job for the current chat/thread:
/cron stop
Status:
/cron status
List all running cron jobs:
/cron list
Run once (no scheduling):
/cron run What changed since yesterday?
Seed presets (configured in takopi.toml):
/cron seed list
/cron seed start daily_summary
/cron start seed
Seed presets start in the chat/thread where you run the command. /cron start seed
starts every seed preset at once in that chat/thread.
If you start multiple seed jobs in one chat/thread, /cron stop stops all of them
for that chat/thread.
Tips:
- Put an engine directive at the start of the prompt, e.g.
/claude ... - Put a project directive at the start of the prompt, e.g.
/myproj ... - Put a branch directive at the start of the prompt, e.g.
@feat/foo ...
breaking changes
Breaking changes in 0.1.0:
plugins.cron.seed[].promptwas removedplugins.cron.seed[].prompt_fileis now requiredprompt_fileis resolved relative to the directory containingtakopi.toml/cron stopnow stops all cron jobs running in the current chat/thread, not just one/cron start seednow starts every configured seed preset in the current chat/thread
Migration example:
Before:
[[plugins.cron.seed]]
id = "daily_summary"
every_hours = 6
prompt = "/codex summarize what changed since the last cron tick"
After:
[[plugins.cron.seed]]
id = "daily_summary"
every_hours = 6
prompt_file = "cron-prompts/daily_summary.prompt.md"
config
In ~/.takopi/takopi.toml:
[plugins.cron]
# Optional: restrict who can control cron jobs
allowed_user_ids = [12345678]
# Optional: whether cron ticks should notify (default: true)
notify = true
# Optional: seed presets. prompts live in separate files so takopi.toml stays
# smaller, but the schedule metadata stays here.
[[plugins.cron.seed]]
id = "daily_summary"
every_hours = 6
prompt_file = "cron-prompts/daily_summary.prompt.md"
# notify = true # optional override
# enabled = false # optional
prompt_file is resolved relative to the directory containing takopi.toml, so
this layout works:
~/.takopi/
takopi.toml
cron-prompts/
daily_summary.prompt.md
~/.takopi/cron-prompts/daily_summary.prompt.md
/codex summarize what changed since the last cron tick
Metadata
Release files for takopi-cron 0.1.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 | |
|---|---|---|---|
| takopi_cron-0.1.0.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| takopi_cron-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.5 kB
Release files / takopi_cron-0.1.0.tar.gz
| Download URL | takopi_cron-0.1.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a80e41cce88b9e76de768ce51560e53ff7e499253777fb3eec2e92ca1317e09b
|
|
BLAKE2b-256 checksum How to use checksums |
f9f696a07b162600325f4cd770befdd734cbb126821a7c077cd59c57077c9aa8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 22, 2026.
Transparency logRelease files / takopi_cron-0.1.0-py3-none-any.whl
| Download URL | takopi_cron-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d21297028d9cbdd29b5455d0477e543119d46bce990893bc1fcdc9f75db2dc3
|
|
BLAKE2b-256 checksum How to use checksums |
0b892acbdb8e142bdccba99cad8ecca0b3acd66bca3fb18baddd5baf336b013c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 22, 2026.
Transparency log