Preface

DeepSeek Harness (dsh) is an agent framework open-sourced by DeepSeek AI. The official repository summarizes its architecture in one sentence: Everything is a plugin. Models, tools, sandboxes, session storage, and interfaces can all be replaced or combined via plugins. The community has developed many extensions for interface enhancement, media downloading, browser automation, etc., but there are very few related to educational and examination schedule data.

Maintainer zimai233 wrote the same judgment in both the repository README and the community directory page: most existing plugins focus on toolchains, media, and design, and almost no one provides schedules and countdown calculations for Chinese examinations. This is exactly what dsh-exam-countdown does — it turns common exams such as the national college entrance examination (Gaokao), postgraduate entrance examination, national civil service exam, CET-4/6, CPA, and National Judicial Exam into agent-callable tools, allowing users to directly ask “How many days until the Gaokao?” in conversations.

First, we need to clarify two points. DeepSeek Harness itself is an official open-source project; the DeepSeek Harness Plugin Repository is an independent community directory with no official affiliation to DeepSeek / Fangjia. Below, we organize what this plugin is, the installation commands, how to use it, and its limitations based on the directory details page, GitHub repository source code, and official dsh CLI documentation.

What It Is

dsh-exam-countdown is a community plugin maintained by zimai233, categorized as “Fun” in the directory, licensed under MIT, and primarily written in JavaScript. The version in the repository’s package.json is 0.1.0, and the GitHub topics are tagged with deepseek-harness and dsh-plugin. As of August 18, 2026, both the directory page and GitHub repository show 2 stars.

It does not aim to build another exam calendar website, but rather connects countdown calculations to the agent tool layer. The README clearly states that this is a port of the author’s web application “Exam Schedule” china-exam-countdown — the dataset of 64 exams and pure date math are exposed as two agent-callable tools. It has no UI, does not manipulate the DOM, and does not read or write localStorage. The runtime code is the published ESM source file.

The one-sentence positioning on the directory page is: A Chinese exam countdown plugin for DeepSeek Harness with 64 built-in exams available for query. The EXAMS array in the source code src/index.js indeed contains 64 entries, consistent with the README and directory introduction.

Core Features

64 Exams, 9 Categories

The built-in data covers 9 categories listed in the README: Entrance Examinations, Civil Service, English Exams, Teacher Qualification, Accounting & Finance, Law & Engineering, Medical & Health, Computer, and Others. The Gaokao, high school entrance exam, postgraduate entrance examination initial/re-examination, national civil service exam, provincial civil service exam, CET-4/6, teacher qualification written/interview, CPA from junior level, National Judicial Exam objective/subjective questions, Class 1 Construction Engineer, Software Professional Qualification Exam, Nurse Practitioner Qualification, CATTI, etc., are all included in this list.

Each record in the source code has a stable slug (such as gaokao, cpa, cet-6), Chinese name, month, fixed date or rule-based date, and a note. For example, the Gaokao is noted as the national unified June 7–8, while the high school entrance exam, provincial civil service exam, and college upgrading exam are noted as varying by province. Note that the “English Exams” category in the dataset also includes JLPT, TOPIK, and Putonghua Proficiency Test, so you need to pay attention to this when filtering by category.

Two Tools

The plugin registers two tools via @deepseek-ai/dsh-tools’s defineTool:

Tool Function
exam_countdown Query the next exam date and remaining days by id, keyword, or category
exam_categories List all categories and the number of exams under each category

The parameters of exam_countdown are consistent in the README and source code description:
- id (optional): Exact slug, such as gaokao, kaoyan, cpa, cet-6; will override query / category if specified
- query (optional): Substring match (case-insensitive) against Chinese names, IDs, and notes
- category (optional): Category name, must exactly match the Chinese category in the dataset
- limit (optional): Number of returned entries, default is 10

Returns a JSON array, with each entry being { id, name, cat, dateLabel, days, nextOccurrence }, sorted in ascending order of remaining days. If the id is not found, it returns an object with an error field instead of an empty array.

exam_categories has no parameters, returns [{ category, count }], sorted in descending order of quantity. The README recommends calling it first, then passing the valid category names to exam_countdown.

How the Date Calculation Works

The countdown is calculated using local date math instead of scraping announcements online:
- Fixed date: Assemble the current year’s date using the recorded month and day; if the date has passed, roll over to the same day next year
- Rule-based date: 2nd-sat refers to the second Saturday of the current month (CET-4/6: June/December each year), 1st-sun refers to the first Sunday of the current month (JLPT: July/December each year)
- List queries only retain entries with days >= 0

The repository includes tests covering these rules. For example, the second Saturday of June 2026 is June 13; if “today” is July 1, 2026, the Gaokao will roll over to June 7, 2027, and the June CET-4/6 will roll over to the second Saturday of June 2027 (June 12, 2027).

The plugin itself does not provide registration, admission ticket, or score query services, and does not guarantee that the dates match the official announcements of the current year. This is clearly stated in the README.

Installation and Activation

The installation command given on the community directory details page is:

dsh plugin add github:zimai233/dsh-exam-countdown

The official dsh CLI plugin management passes parameters to pnpm in the current profile directory, and the common写法 is to add --profile. To install to the default Web profile, you can write:

dsh plugin --profile web add github:zimai233/dsh-exam-countdown

The repository README also provides an example of installing via npm package name:

dsh plugin --profile myprofile add dsh-exam-countdown

The package name in package.json is indeed dsh-exam-countdown, and it declares dsh.bundle.patch pointing to ./cordis.patch.yml. Both the directory page and GitHub installation entry use github:zimai233/dsh-exam-countdown as the standard; the npm package name example is based on the original README text, and it is recommended to verify whether the package has been published and whether the content matches the repository before installation.

The directory page also reminds: For reproducible installation, please fix the commit hash. The latest commit on the current master branch is 54492515553fcf38a48f372e381bbf3252abcc38 (August 14, 2026, commit message: initial plugin):

dsh plugin --profile web add github:zimai233/dsh-exam-countdown#54492515553fcf38a48f372e381bbf3252abcc38

This repository has no prepare / build scripts, and the entry point is src/index.js. The official documentation’s “Git installation requires allowing pnpm allowBuilds” mainly applies to source packages with build steps; this plugin is pure ESM and generally does not require that step. If pnpm on your local machine still reports an error, follow the allowBuilds prompt printed by the CLI to resolve it.

Restart the corresponding profile after installation. cordis.patch.yml will insert a layer with id exam-countdown and name dsh-exam-countdown, and attach the two tools to the current agent.

Typical Usage

You don’t need to remember the parameter names. The usage in the README is to directly ask the agent in natural language.

When asking how many days are left until the Gaokao, the agent will call exam_countdown:

{
  "id": "gaokao"
}

The sample return in the repository README is as follows (the days and nextOccurrence values change depending on the query date, do not treat them as the real countdown at this moment):

[
  {
    "id": "gaokao",
    "name": "高考",
    "cat": "升学考试",
    "dateLabel": "6月7日",
    "days": 327,
    "nextOccurrence": "2027-06-07"
  }
]

To view the latest English-related exams, you can ask the agent to include keywords and a limit:

{
  "query": "英语",
  "limit": 5
}

When asking “What exam categories are there?”, the agent calls exam_categories, then uses the returned category names for filtering, for example, "category": "公务员".

When querying precisely by ID, common slugs include: gaokao (Gaokao), kaoyan (postgraduate entrance exam initial examination), guokao (national civil service exam written examination), cet-6 / cet-12 (CET-4/6), cpa (Certified Public Accountant), fakao-k / fakao-z (National Judicial Exam objective/subjective questions), rk-5 / rk-11 (Software Professional Qualification Exam). The full 64 IDs are subject to the repository README.

Applicable Scenarios and Notes

It is suitable for connecting exam schedules to conversations: asking how many days are left until the next exam during preparation, listing recent exams by category, and providing the agent with a built-in queryable calendar, instead of letting the model guess dates online every time. It does not replace official announcements from the Ministry of Education, Ministry of Human Resources and Social Security, or industry associations, nor does it handle registration portals, admission tickets, or scores.

Pay special attention to date boundaries. The README clearly states that exams with national unified dates are included with fixed dates; for exams with uncertain dates such as postgraduate entrance exams, provincial civil service exams, and public institution exams, the typical dates of previous years are used. CET-4/6 and JLPT are calculated by the program based on “the nth weekday of the month”, which is more stable than hardcoding a specific year and date, but if the organizer changes the rules, the plugin will not update automatically. There are also notes in the source code such as “varies by province”, “subject to the current year’s announcement”, and “arranged monthly in various regions”. All dates are for reference only.

DeepSeek Harness is currently in developer preview, and the official README indicates that there will be breaking compatibility changes. The community directory also has a security reminder: Plugins run with the permissions of the current dsh process, and code may be executed during installation. You should check the source code repository and license before installation; fix the commit hash when a reproducible environment is required. This plugin depends on @deepseek-ai/dsh-tools, and has a peer dependency on @deepseek-ai/cordis, with the same permission model as other DSH plugins.

Summary

dsh-exam-countdown turns the countdowns of 64 Chinese exams into two server-side tools, allowing agents in DeepSeek Harness to answer “How many days left?” based on ID, keywords, or categories. There is no web calendar and no registration process, and the core is just a built-in dataset plus pure date calculation. The dates will roll over to the next unexpired occurrence date, and CET-4/6 and JLPT are calculated based on weekly rules; the final reference shall be the announcements of each exam organizer.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-exam-countdown/

GitHub: https://github.com/zimai233/dsh-exam-countdown