Skip to main content

Cron command plugin for Takopi.

Project description

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 start after 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[].prompt was removed
  • plugins.cron.seed[].prompt_file is now required
  • prompt_file is resolved relative to the directory containing takopi.toml
  • /cron stop now stops all cron jobs running in the current chat/thread, not just one
  • /cron start seed now 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

takopi_cron-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

takopi_cron-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file takopi_cron-0.1.0.tar.gz.

File metadata

  • Download URL: takopi_cron-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for takopi_cron-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a80e41cce88b9e76de768ce51560e53ff7e499253777fb3eec2e92ca1317e09b
MD5 22cba02e0298c870283edeb83258f21e
BLAKE2b-256 f9f696a07b162600325f4cd770befdd734cbb126821a7c077cd59c57077c9aa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for takopi_cron-0.1.0.tar.gz:

Publisher: workflow.yml on richardliang/takopi-cron

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file takopi_cron-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: takopi_cron-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for takopi_cron-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d21297028d9cbdd29b5455d0477e543119d46bce990893bc1fcdc9f75db2dc3
MD5 b599e65182f27e9ce96471b99c0f471d
BLAKE2b-256 0b892acbdb8e142bdccba99cad8ecca0b3acd66bca3fb18baddd5baf336b013c

See more details on using hashes here.

Provenance

The following attestation bundles were made for takopi_cron-0.1.0-py3-none-any.whl:

Publisher: workflow.yml on richardliang/takopi-cron

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page