Pre-release
This release is a pre-release and may not be stable for production use.
elizaOS Todo Plugin - Python
Python implementation of the elizaOS Todo Plugin for task management.
Installation
pip install elizaos-plugin-todo
Quick Start
import asyncio
from uuid import uuid4
from elizaos_plugin_todo import (
TodoClient,
TodoConfig,
TaskType,
Priority,
)
async def main():
config = TodoConfig.from_env()
async with TodoClient(config) as client:
# Create a new todo
todo = await client.create_todo(
name="Finish report",
task_type=TaskType.ONE_OFF,
priority=Priority.HIGH,
agent_id=uuid4(),
world_id=uuid4(),
room_id=uuid4(),
entity_id=uuid4(),
)
print(f"Created: {todo.name}")
# Complete the todo
completed = await client.complete_todo(todo.id)
print(f"Completed: {completed.is_completed}")
asyncio.run(main())
Features
- Task Types: Daily recurring, one-off, and aspirational tasks
- Priority Levels: Critical (1), High (2), Medium (3), Low (4)
- Due Dates: Track deadlines for one-off tasks
- Tags: Organize tasks with custom tags
- Reminders: Automatic reminder notifications
- Caching: High-performance in-memory caching
Configuration
Environment variables:
| Variable | Default | Description |
|---|---|---|
DATABASE_URL |
- | Database connection string |
TODO_ENABLE_REMINDERS |
true |
Enable reminder notifications |
TODO_REMINDER_INTERVAL_MS |
30000 |
Reminder check interval (ms) |
TODO_QUIET_HOURS_START |
22 |
Quiet hours start (hour) |
TODO_QUIET_HOURS_END |
8 |
Quiet hours end (hour) |
API Reference
TodoClient
Main client for todo operations.
async with TodoClient(config) as client:
# Create todo
todo = await client.create_todo(name="...", task_type=TaskType.ONE_OFF, ...)
# Get todos
todos = await client.get_todos(room_id=room_id, is_completed=False)
# Complete todo
await client.complete_todo(todo_id)
# Update todo
await client.update_todo(todo_id, name="New name", priority=Priority.HIGH)
# Delete todo
await client.delete_todo(todo_id)
Types
from elizaos_plugin_todo import TaskType, Priority
# Task types
TaskType.DAILY # Daily recurring task
TaskType.ONE_OFF # One-off task with optional due date
TaskType.ASPIRATIONAL # Long-term goal
# Priorities
Priority.CRITICAL # 1 - Highest
Priority.HIGH # 2
Priority.MEDIUM # 3
Priority.LOW # 4 - Lowest
Testing
cd python
pip install -e ".[dev]"
pytest
License
MIT
Metadata
Release files for elizaos-plugin-todo 2.0.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elizaos_plugin_todo-2.0.0a5.tar.gz | 26.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elizaos_plugin_todo-2.0.0a5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.3 kB
Release files / elizaos_plugin_todo-2.0.0a5.tar.gz
| Download URL | elizaos_plugin_todo-2.0.0a5.tar.gz |
|---|---|
| Size | 26.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57e3fafac1896ded918e938b14a896a2987af18baf85963403e67a2985deef0d
|
|
BLAKE2b-256 checksum How to use checksums |
338bb84bbb74d47b51d8a03bb03c920e9c852408120b72afb8c479161810b392
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / elizaos_plugin_todo-2.0.0a5-py3-none-any.whl
| Download URL | elizaos_plugin_todo-2.0.0a5-py3-none-any.whl |
|---|---|
| Size | 34.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2fe32345bf26de7c59bdf7e1728b706640f6d049d10399f613797358772ac75
|
|
BLAKE2b-256 checksum How to use checksums |
df5cefac8cdeef96ecefb5bab2d682a4842b53043c174ec7a607269505fde5d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|