# Task Manager

> Central task store: create/update tasks from the widget, from other plugins via invoke(), or from ai-chat's AI agent via MCP tools

| | |
|---|---|
| Version | 1.0.2 |
| Category | Productivity |
| Depends on | ai-chat |

# Task Manager

Central task store: create/update tasks from the widget, from other plugins via invoke(), or from ai-chat's AI agent via MCP tools

**Type:** `backend` — see `.claude/skills/kazuo-create-plugin/references/plugin-examples.md`

## Files

- `manifest.json` — metadata, `defaultSettings`, `defaultWidgetConfig`
- `widget.html` / `js/widget.js` / `css/widget.css` — main UI
  - has its own "⚙" button + settings overlay built into widget.html/widget.js (host no longer provides a per-widget gear icon — see references/plugin-runtime-api.md section 1b)
- `settings.html` / `js/settings.js` / `css/settings.css` — same fields as the widget overlay (intentionally duplicated), used by the Plugin Manager screen and the pop-out window
- `locales/en.json5` / `locales/vi.json5` — UI strings, `widget.*`/`filter.*`/`status.*`/`settings.*` namespaces
- `main/index.ts` (+ compiled `main/index.js`) — task store (persisted in this plugin's settings slice) + IPC channels + `getMcpTools` (task_create/task_update/task_list, ai-chat AI agent, Dev Mode only)
- `package.json` — declares `zod` (only needed for the MCP tools; host runs `npm install --omit=dev` on install)

## Default settings

- `tasks` — default: `[]` (array of task objects)
- `hideCompleted` — default: `false`

## IPC channels (open to any plugin)

`invoke('plugin:task-manager:upsert' | 'update' | 'remove' | 'list' | 'get', arg)` — see
`.claude/features/task-manager-plugin.md` for payload shapes. `clear` is self-gated (`'task-manager'`).

## Test

Open Kazuo AI → Plugin Manager — this plugin appears automatically (the host scans `plugins-library/` on its own, no registration needed) → Install → Enable.

After editing `main/index.ts`, recompile before testing: `npx tsc -p tsconfig.plugins.json` (run from the project root).
