滴答清单
by @ilooch
Manage tasks and projects in 滴答清单. Use when user asks for tasks, to-dos, reminders, or event.
clawhub install dida-cli📖 About This Skill
name: dida-cli description: Manage tasks and projects in 滴答清单. Use when user asks for tasks, to-dos, reminders, or event. homepage: https://dida365.com metadata: clawdbot: emoji: "✅" requires: bins: ["dida"]
Dida CLI — How Agents Should Install, Login, and Use
This skill describes how an agent should reliably use @suibiji/dida-cli
to help the user install the CLI, log in with OAuth (PKCE), and perform common task/project operations.
Use this skill whenever the user wants to manage Dida via CLI (e.g. "use dida-cli to create a task").
1. Scope & Intent
@suibiji/dida-cli
- Logging in via OAuth PKCE
- Common project and task workflows (list, create, update, complete, delete, move)
When in doubt, prefer safe, narrow actions and ask the user to clarify ambiguous intent.
2. Prerequisites & Environment
Always follow this order:
1. Check if the CLI already exists:
dida --version
- If this succeeds, the CLI is installed and usable. - If this fails (command not found or similar), proceed to install.
2. Install the CLI globally (if needed):
npm install -g @suibiji/dida-cli
3. Verify installation:
dida --help
dida --version
If installation fails due to environment issues (e.g. missing Node, permissions), explain the error to the user and suggest they fix their Node/npm setup first.
3. Authentication (OAuth PKCE)
The CLI uses OAuth PKCE in a browser to log in.
Standard login flow:
1. Start login:
dida auth login
- This should open a browser window/tab. - The user logs in and authorizes the app.
Alternative methods
API token: Get your API token from Settings > Account > API Keys: dida auth token # set access token directly (for headless environments)
2. Confirm login status:
dida auth status
- If logged in, you can proceed with project/task operations.
- If not logged in, clearly tell the user and suggest retrying dida auth login.
3. Logout (only when explicitly requested):
dida auth logout
Guidelines:
4. Using Projects and Tasks — Typical Workflows
4.1 Listing Projects
To list all projects:
dida project list
For structured data suitable for filtering:
dida project list --json
Agent rule:
--json variant.4.2 Selecting a Project by Name
When the user refers to a project by name (e.g. "Inbox", "Work"):
1. Fetch projects with JSON:
dida project list --json
2. Find the project with a matching name field.
- If no project matches, tell the user and ask them to confirm the name.
- If multiple projects share the same name, show them to the user and ask which one to use.
- Once a single project is selected, use its id in subsequent commands.
Rule:
project list --json output or from explicit user input.4.3 Creating a Task in a Project
When the user says "create a task in project X":
1. Resolve X to a project id (see 4.2).
2. Use:
dida task create --title "" --project
Optional recommended flags (only if supported by the CLI and relevant to the request):
--content "" --dueDate "" After creation, you may run (if needed):
dida project list --json
or a specific command to fetch the created task if available
and summarize the created task (id, title, project, due date) to the user.
4.4 Getting / Updating / Completing / Deleting a Task
Get a task (when you know both projectId and taskId):
dida task get
Update a task:
dida task update \
--id \
--project \
--title "New title"
Add more flags as needed (content, due date, etc.), based on the user’s request.
Complete a task:
dida task complete
Delete a task (destructive):
dida task delete
Safety rules:
4.5 Moving a Task Between Projects
To move a task from one project to another:
dida task move \
--from \
--to \
--task
Workflow:
1. Resolve both projects by name (if supplied as names). 2. Confirm the taskId (either from user or by listing/searching). 3. Execute the move command. 4. Optionally confirm the move by fetching the task and summarizing the result.
5. JSON Mode and Structured Handling
Most commands support a --json flag.
When to use --json:
id or other fields.Examples:
dida project list --json
dida task get --json
Agent behavior:
--json for internal decision-making and selection.6. ID and Selection Rules
name from project list --json.
- If more than one project matches, present options to the user.
- Once a project is chosen, use its id and keep it consistent for this operation.taskId, use it directly.
- If the user describes a task (e.g. by title or due date) and multiple tasks may match:
- Fetch candidate tasks (via appropriate list/get operations).
- Show a small selection (id, title, due date).
- Ask the user to choose which one(s) to act on.7. Safety & Destructive Operations
task delete
- Bulk completion or deletion (if supported)
- Any operation that may remove or irreversibly change multiple tasksGuidelines:
Do not:
auth logout) without a request.8. Error Handling & Recovery
Common error categories and recommended behavior:
dida auth login
dida auth status
In all cases, prefer clear explanations and minimal retries over silent failure.
9. Style Notes for Agents
If existing documentation (such as the package README) disagrees with this skill, follow this skill’s safer, more conservative interpretation unless the user explicitly asks otherwise.