Todo list plugin for GUI Chat applications. Manage tasks with a persistent todo list that syncs via localStorage.
- Add, update, and delete todo items
- Mark tasks as completed/uncompleted
- Clear all completed items at once
- Persistent storage via localStorage
- Inline text editing capability
yarn add @gui-chat-plugin/todo gui-chat-protocol
gui-chat-protocolis a peer dependency — install it alongside the plugin; the host application provides the runtime and this plugin only declares the compatible range.
// In src/tools/index.ts
import TodoPlugin from "@gui-chat-plugin/todo/vue";
const pluginList = [
// ... other plugins
TodoPlugin,
];
// In src/main.ts
import "@gui-chat-plugin/todo/style.css";import { executeTodo, TOOL_DEFINITION } from "@gui-chat-plugin/todo";
// Show the todo list
const result = await executeTodo(context, {
action: "show",
});
// Add a new item
const result = await executeTodo(context, {
action: "add",
text: "Buy groceries",
});interface TodoArgs {
action: "show" | "add" | "toggle" | "delete" | "clear_completed" | "update";
text?: string; // For add/update actions
itemId?: string; // For toggle/delete/update actions
}interface TodoItem {
id: string;
text: string;
completed: boolean;
createdAt: number;
}# Install dependencies
yarn install
# Run demo
yarn dev
# Build
yarn build
# Lint
yarn lintTry these prompts to test the plugin:
- "Show me my todo list"
- "Add 'Buy groceries' to my todo list"
- "I finished shopping, mark the groceries task as done"
MIT
- Protocol spec: gui-chat-protocol
- Reference implementations using this protocol: mulmoclaude · MulmoChat