todo-list

Public

Forked from lmbimmerboye/todo-list

CSEliots fork. See README for fixes.

11 Downloads

2 stars

README

LM Studio Todo List Tool

An LM Studio plugin that allows your models to manage and track tasks via a todo list.

Features

  • Add tasks - Create new todo items with automatic ID assignment
  • Mark tasks complete - Track progress by marking tasks as done
  • Remove tasks - Delete individual tasks from the list
  • View all tasks - See both pending and completed tasks
  • Clear all tasks - Reset the entire todo list

Installation

This plugin is designed to work with LM Studio. Simply load it through the LM Studio plugin interface.

Usage

The plugin provides the following tools:

readTodos

View the current todo list. Displays both pending and completed items.

addTodo

Add a new task to the todo list.

  • Parameters:
    • task (string): The task description

completeTodo

Mark a task as completed (checked off). It remains in the list history but is marked done.

  • Parameters:
    • id (number): The numeric ID of the task (e.g., 1, 2)

removeTodo

Permanently delete a single task by its ID.

  • Parameters:
    • id (number): The ID to delete

clearAllTodos

DANGER: Delete ALL tasks (both pending and completed). Use only if the user explicitly asks to 'wipe', 'clear', or 'reset' the entire list.

Output Format

The readTodos tool returns tasks in a pipe-separated format to avoid newline escaping issues:

--- PENDING TASKS --- | [ ] #1: Task description | [ ] #2: Another task | --- COMPLETED --- | [x] #3: Completed task

This format prevents the LLM from learning to use escaped newlines (\n) in its tool calls, which was a known issue with previous versions.

Development

Prerequisites

  • Node.js (v16 or higher)
  • npm

Setup

npm install

Development

npm run dev

Building

npm run build

Publishing

npm run push

File Structure

todo-list/
├── src/
│   ├── index.ts          # Plugin entry point and tool definitions
│   ├── todoManager.ts    # Core todo list management logic
│   └── config.ts         # Configuration settings
├── todos.json            # Persistent storage for todo items
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── manifest.json         # Plugin metadata

Troubleshooting

Plugin unloads unexpectedly

  • Check the LM Studio console for error messages
  • Ensure all dependencies are installed correctly
  • Verify that the todos.json file is valid JSON

Newlines appear as \n in output

  • This has been fixed in recent versions by using pipe (|) separators instead of newlines
  • If you see this issue, ensure you're using the latest version of the plugin

License

MIT