← 返回 Skills 市场
ilooch

滴答清单

作者 Damon · GitHub ↗ · v1.0.4 · MIT-0
cross-platform ✓ 安全检测通过
626
总下载
4
收藏
1
当前安装
5
版本数
在 OpenClaw 中安装
/install dida-cli
功能描述
Manage tasks and projects in 滴答清单. Use when user asks for tasks, to-dos, reminders, or event.
使用说明 (SKILL.md)

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

  • This skill focuses on:
    • Installing @suibiji/dida-cli
    • Logging in via OAuth PKCE
    • Common project and task workflows (list, create, update, complete, delete, move)
  • This skill does not cover:
    • Rare/advanced or extremely destructive operations
    • Internal development commands or debugging-only flows

When in doubt, prefer safe, narrow actions and ask the user to clarify ambiguous intent.


2. Prerequisites & Environment

  • The user should have:
    • Node.js + npm (preferably latest LTS)
  • The CLI is expected to be installed globally.

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 \x3Ctoken>   # set access token directly (for headless environments)
  1. 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.
  2. Logout (only when explicitly requested):

    dida auth logout
    

Guidelines:

  • Do not log the user out unless they explicitly ask for it.
  • If login fails (e.g. browser blocked, network error), inform the user and suggest:
    • Checking that the browser window actually opened.
    • Making sure pop-up blockers or firewalls are not blocking the OAuth page.
    • Trying again later if the API seems temporarily unavailable.

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:

  • When you need to select a project programmatically (by name or other fields), always prefer the --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:

  • Never guess or invent project IDs.
  • Always derive them from actual 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 "\x3Ctask title>" --project \x3CprojectId>
    

Optional recommended flags (only if supported by the CLI and relevant to the request):

  • --content "\x3Cdetailed description>"
  • --dueDate "\x3CISO 8601 date/time>"
  • Other fields as documented in the CLI/README.

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 \x3CprojectId> \x3CtaskId>

Update a task:

dida task update \x3CtaskId> \
  --id \x3CtaskId> \
  --project \x3CprojectId> \
  --title "New title"

Add more flags as needed (content, due date, etc.), based on the user’s request.

Complete a task:

dida task complete \x3CprojectId> \x3CtaskId>

Delete a task (destructive):

dida task delete \x3CprojectId> \x3CtaskId>

Safety rules:

  • For delete and other destructive operations, the user must clearly ask for it.
  • If the instruction is vague (e.g. "clean up old tasks"), first:
    • Show a short list of candidate tasks (titles, due dates, ids).
    • Ask the user to confirm which ones to complete/delete.

4.5 Moving a Task Between Projects

To move a task from one project to another:

dida task move \
  --from \x3CsourceProjectId> \
  --to \x3CdestProjectId> \
  --task \x3CtaskId>

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:

  • Any time you need to:
    • Filter by name.
    • Select from multiple candidates.
    • Chain commands based on id or other fields.

Examples:

dida project list --json
dida task get \x3CprojectId> \x3CtaskId> --json

Agent behavior:

  • Use --json for internal decision-making and selection.
  • Convert JSON results into a short, human-readable summary when responding to the user:
    • E.g. "Found project: id=…, name=…, color=…".

6. ID and Selection Rules

  • Projects

    • Prefer matching by 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.
  • Tasks

    • If the user gives a concrete 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.
  • Never fabricate IDs and never assume "the first one" is correct unless:

    • You transparently explain what "first" means (e.g. "sorted by creation time, using the most recent one"),
    • And the user implicitly or explicitly accepts this.

7. Safety & Destructive Operations

  • Treat the following as destructive and require explicit, unambiguous user confirmation:
    • task delete
    • Bulk completion or deletion (if supported)
    • Any operation that may remove or irreversibly change multiple tasks

Guidelines:

  • If the user uses vague terms like "remove useless tasks", ask:
    • What criteria define "useless"?
    • Whether they want to see a preview list first.
  • Prefer showing a preview (ids, titles, due dates) before executing bulk changes.

Do not:

  • Log the user out spontaneously (auth logout) without a request.
  • Perform repeated, aggressive retries on failing API calls.

8. Error Handling & Recovery

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:

    • Tell the user that the error may be temporary or network-related.
    • Suggest they check their connection and try again later.
  • Not found / invalid IDs:

    • Inform the user that the project or task could not be found.
    • Show any relevant context (e.g. available projects) and ask them to re-check the ID or name.
  • Ambiguous selections:

    • If multiple matching items are found (project or task), show them and ask the user which one they intend.

In all cases, prefer clear explanations and minimal retries over silent failure.


9. Style Notes for Agents

  • Use commands from this skill as your primary reference for Dida CLI usage.
  • When the user asks for "what happened" or "what did you do", respond with:
    • A short description of the commands you ran (in natural language).
    • A short summary of their effects (e.g. "Created task 'Buy milk' in project 'Inbox'").

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.

安全使用建议
This skill appears coherent for controlling a Dida CLI, but before installing or running anything: 1) verify the npm package @suibiji/dida-cli on the npm registry (publisher, repo link, stars/downloads) to ensure it’s trustworthy and actually provides the 'dida' binary; 2) be cautious about running global npm installs (they modify your system PATH and may require elevated permissions); 3) expect the CLI to open a browser for OAuth or to accept an API token you must obtain from your account—keep that token private and only paste it into trusted CLIs; 4) confirm any destructive commands (delete/move) with the user before executing; and 5) if you’re unsure about the package origin, prefer using the official client on the vendor site or contacting Dida support/documentation for an official CLI.
功能分析
Type: OpenClaw Skill Name: dida-cli Version: 1.0.4 The skill bundle provides legitimate instructions for an AI agent to interact with the Dida (TickTick) task management service via the `@suibiji/dida-cli` tool. It includes standard installation procedures, OAuth/token authentication steps, and emphasizes safety protocols such as requiring user confirmation for destructive actions and using structured JSON output for reliable data handling. No evidence of malicious intent, data exfiltration, or prompt injection was found.
能力标签
requires-oauth-token
能力评估
Purpose & Capability
The name, description, and runtime instructions all focus on using a dida CLI to manage tasks and projects, which aligns with the declared purpose. One small mismatch: the SKILL.md instructs installing the npm package @suibiji/dida-cli (a third‑party-scoped package) while the homepage is dida365.com; this is plausible (a community CLI) but worth verifying the package's provenance before installing.
Instruction Scope
SKILL.md confines agent actions to verifying/ installing the dida CLI, performing OAuth PKCE login or token-based auth, listing/creating/updating/moving/deleting tasks, and preferring --json for structured output. It does not instruct the agent to read unrelated files, environment variables, or exfiltrate data.
Install Mechanism
There is no automated install spec in the registry; the instructions tell the agent/user to run 'npm install -g @suibiji/dida-cli'. Installing a global npm package is a reasonable way to get a CLI, but global installs alter the user's system and require privileges. Also verify the npm package (publisher, repository, and downloads) before running a global install because the package scope differs from the official site.
Credentials
The skill declares no required environment variables or credentials. The instructions rely on interactive OAuth (browser) or a user-supplied API token entered via the CLI, which is proportionate to a CLI that needs authenticated access. The skill does not request unrelated secrets.
Persistence & Privilege
The skill is instruction-only, does not set 'always: true', and does not request persistent agent privileges or modify other skills. It instructs the agent to avoid logging out or performing destructive actions without explicit user consent.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install dida-cli
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /dida-cli 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.4
- Version number updated to 1.0.4.
v1.0.3
- Added instructions for API-token-based authentication as an alternative login method (suitable for headless environments).
v1.0.2
dida-cli 1.0.2 - Renamed the skill from "ticktick-cli-skill" to "dida-cli". - Updated all descriptions and references to 滴答清单 (Dida 365) and dida365.com. - No code or file changes detected for this version; only content and metadata updates were made. - Commands, workflows, and safety guidelines remain the same.
v1.0.1
- Added skill metadata section (name, description, homepage, emoji, CLI bin dependency). - Documentation content reorganized under markdown frontmatter for improved skill definition clarity.
v1.0.0
Initial release of the dida skill: - Provides step-by-step guidance for installing, authenticating, and using the Dida CLI (`@suibiji/dida-cli`). - Covers common project and task management operations: list, create, update, complete, delete, move. - Details best practices for safely handling IDs, user selection, and destructive commands. - Emphasizes the use of structured (`--json`) outputs for reliable selection and user confirmation. - Includes clear error handling and recovery suggestions for authentication and network issues.
元数据
Slug dida-cli
版本 1.0.4
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 5
常见问题

滴答清单 是什么?

Manage tasks and projects in 滴答清单. Use when user asks for tasks, to-dos, reminders, or event. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 626 次。

如何安装 滴答清单?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install dida-cli」即可一键安装,无需额外配置。

滴答清单 是免费的吗?

是的,滴答清单 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

滴答清单 支持哪些平台?

滴答清单 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 滴答清单?

由 Damon(@ilooch)开发并维护,当前版本 v1.0.4。

💬 留言讨论