Install
openclaw skills install dida-cliManage tasks and projects in 滴答清单. Use when user asks for tasks, to-dos, reminders, or event.
openclaw skills install dida-cliThis 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").
@suibiji/dida-cliWhen in doubt, prefer safe, narrow actions and ask the user to clarify ambiguous intent.
Always follow this order:
Check if the CLI already exists:
dida --version
Install the CLI globally (if needed):
npm install -g @suibiji/dida-cli
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.
The CLI uses OAuth PKCE in a browser to log in.
Standard login flow:
Start login:
dida auth login
API token: Get your API token from Settings > Account > API Keys:
dida auth token <token> # set access token directly (for headless environments)
Confirm login status:
dida auth status
dida auth login.Logout (only when explicitly requested):
dida auth logout
Guidelines:
To list all projects:
dida project list
For structured data suitable for filtering:
dida project list --json
Agent rule:
--json variant.When the user refers to a project by name (e.g. "Inbox", "Work"):
Fetch projects with JSON:
dida project list --json
Find the project with a matching name field.
id in subsequent commands.Rule:
project list --json output or from explicit user input.When the user says "create a task in project X":
Resolve X to a project id (see 4.2).
Use:
dida task create --title "<task title>" --project <projectId>
Optional recommended flags (only if supported by the CLI and relevant to the request):
--content "<detailed description>"--dueDate "<ISO 8601 date/time>"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.
Get a task (when you know both projectId and taskId):
dida task get <projectId> <taskId>
Update a task:
dida task update <taskId> \
--id <taskId> \
--project <projectId> \
--title "New title"
Add more flags as needed (content, due date, etc.), based on the user’s request.
Complete a task:
dida task complete <projectId> <taskId>
Delete a task (destructive):
dida task delete <projectId> <taskId>
Safety rules:
To move a task from one project to another:
dida task move \
--from <sourceProjectId> \
--to <destProjectId> \
--task <taskId>
Workflow:
Most commands support a --json flag.
When to use --json:
id or other fields.Examples:
dida project list --json
dida task get <projectId> <taskId> --json
Agent behavior:
--json for internal decision-making and selection.Projects
name from project list --json.id and keep it consistent for this operation.Tasks
taskId, use it directly.Never fabricate IDs and never assume "the first one" is correct unless:
task deleteGuidelines:
Do not:
auth logout) without a request.Common error categories and recommended behavior:
Authentication errors (e.g. 401, invalid token):
Explain that authentication may have expired.
Suggest rerunning:
dida auth login
dida auth status
Network / connectivity errors:
Not found / invalid IDs:
Ambiguous selections:
In all cases, prefer clear explanations and minimal retries over silent failure.
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.