AI Agents-driven project task CLI for initializing .agents task structure and skills.
Project description
zsc
zsc is a CLI for multi-IDE/AI Coding tools that initializes a unified AI Agents task structure in your project.
Language / 语言: English | 中文
Installation
You can install zsc with pip or uv tool:
# pip (when uv is not installed or you prefer pip)
pip install -U zsc
# uv tool (recommended when uv is available)
uv tool install zsc
uv tool install zsc --upgrade
For local development from this repo, you can use an editable install:
uv pip install -e .[test]
The commands above are examples; adjust to your environment and
uvversion.
Features
- Initialize
.agentstask layout: Creates.agents/and.agents/tasks/as the single entry point for project-level task lifecycle and TODOs. - Install
zsc-*skills for multiple AI Coding tools: Each subcommand maps to a skill (for example,zsc-create-task↔zsc task new).zsc initinstalls these skills under.cursor/skills/,.codex/skills/, and.claudecode/skills/so each tool can understand and maintain the task system. - Idempotent behavior: Re-running commands does not destroy existing structure or overwrite user-customized skill files.
Usage
From your project root, run:
zsc init .
zsc init . will:
- Create
.agents/and.agents/tasks/directories if they do not exist. - Create the following AI tool skill directories if they do not exist:
.cursor/skills/.codex/skills/.claudecode/skills/
- Copy the
zsc-*skills bundled inzscinto those directories, e.g.:.cursor/skills/zsc-help/SKILL.md(usage overview; can be triggered as/zsc-helpin an AI environment).cursor/skills/zsc-create-task/SKILL.md(corresponds tozsc task new).cursor/skills/zsc-task-list/SKILL.md(corresponds tozsc task list).cursor/skills/zsc-task-status/SKILL.md(corresponds tozsc task status)- And similarly-named paths under
.codex/skills/and.claudecode/skills/. - SKILL.md files are overwritten on each run so that re-running
zsc init .(e.g. after changing--langor.agents/zsc-lang) keeps all skills in the chosen language.
Running zsc init . again is safe: existing directories are kept; skill files are re-written from the current language template.
To see the installed zsc version:
zsc -V
# or
zsc --version
Upgrading with zsc -U
In any terminal, you can upgrade zsc with:
zsc -U
This attempts to upgrade zsc to the latest version:
- If
uvis available and the project’s.venvis not broken,zsc -Uprefersuv tool install zsc --upgrade(equivalent to running that command directly). - If the Python interpreter inside
.venvis a broken symlink (for example.venv/bin/python3no longer exists),zsc -Uskips the uv-based upgrade and falls back topip install -U zsc, printing a hint that you may want to recreate the virtualenv (e.g. viauv venv). - If uv is available but the upgrade fails (including errors like
No virtual environment found; run \uv venv` to create an environment, or pass `--system` to install into a non-virtual environment),zsc -Uwill trypip install -U zsconce as a fallback; if that also fails, it prints copy-pastable manual commands so you can decide betweenpip install -U zscanduv tool install zsc --system`. - The actual behavior is independent of your shell type (bash/zsh/fish, etc.), but depends on which
zscbinary is on yourPATH. If a given shell picks up a differentzscinstalled inside a virtualenv, thenzsc -Uin that shell will follow that environment.
Task commands
zsc provides a set of subcommands around .agents/tasks:
zsc task list: list tasks under.agents/tasksand their basic status (open/completed).zsc task new <feat_name> [path]: create a newtask_{no}_{feat_name}directory andtask_{no}_{feat_name}.mdtemplate in the given project root (default: current directory).zsc task status: summarize counts of tasks and their states, as a project-level health indicator.
Together with zsc init ., you can first initialize the task system and then use zsc task commands to maintain and browse the lifecycle.
Note:
zsc task newcreates the directory and same-named.mdtemplate. In AI Coding tools, triggering the zsc-create-task skill (e.g./zsc-create-taskin Cursor) can runzsc task new <feat_name>or create the files from a template and then help you refine the “closed-loop description” andTODO_LIST. If you previously used the old skill namezsc-new-task, runzsc init .again to installzsc-create-task.
Skills (AI-side “CLI”)
Besides traditional terminal subcommands (such as zsc init . and zsc task list), zsc also installs a set of skills (named zsc-*) for various AI Coding tools. In an AI environment, these behave like a second command line, where the model executes actions in your local project on your behalf.
- Traditional CLI: you type commands in a terminal, such as:
zsc init .zsc task list
- Skills (AI-side): you trigger skills from your IDE/AI tool, for example:
- In Cursor, type
/zsc-help,/zsc-create-task,/zsc-run-task, etc., and let the AI perform the corresponding operations.
- In Cursor, type
Core skills (by installed skill name):
| Skill | Role | Trigger example | Related CLI |
|---|---|---|---|
| zsc-help | Explain what zsc does, how CLI and skills map to each other, and provide quick-start examples. | /zsc-help |
zsc --help, README |
| zsc-create-task | Create and design tasks (closed-loop description and TODO_LIST) under .agents/tasks; does not execute TODOs. |
/zsc-create-task @task_xx.md |
zsc task new |
| zsc-run-task | Execute and advance an existing task, modifying code/docs according to TODO_LIST and rewriting TODO_LIST when done. | /zsc-run-task @task_02_xxx.md |
— |
| zsc-run-task-to-complete | In a safe environment, try to automatically run as many TODOs as possible in one go, rewriting TODO_LIST with the same completion rules. | /zsc-run-task-to-complete @task_06_...md |
— |
| zsc-task-list | List tasks under .agents/tasks and their status from the AI side. |
/zsc-task-list |
zsc task list |
| zsc-task-status | Summarize project-level task health (open/completed/unknown counts). | /zsc-task-status |
zsc task status |
| zsc-update-task | Update task design only (closed-loop description, TODO_LIST, etc.); does not run TODOs. | /zsc-update-task @task_03_xxx.md |
— |
Maintenance: when adding or removing
zsc-*skills, keep this section in sync with what is actually installed under.cursor/skills/and similar directories.
TODO design: actionable and closable
- Each TODO should be a concrete, executable engineering action that roughly answers “who does what in which context” and can typically be completed within 1–2 hours.
- Avoid long-running observation/monitoring items or overly abstract goals in TODO_LIST (for example, “keep watching error rate”, “ensure long-term stability”). Those are better expressed as separate tasks (e.g. dedicated monitoring/stability tasks) or recorded in
task_records/log/, design docs, or ops docs, rather than left as open TODOs forever. - Prefer a bottom-up decomposition style: write the next concrete step first; after completing one concrete step, add a new TODO for the next step. When a TODO is too large or vague, split it into multiple smaller, more specific TODOs that replace the original entry.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zsc-0.2.5.tar.gz.
File metadata
- Download URL: zsc-0.2.5.tar.gz
- Upload date:
- Size: 44.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1d93715c5f5463a73b208e443cd03fdf9a8b52311457c515ae6fe41afd49eb9
|
|
| MD5 |
1eb99d36befbe291098818d0325c0dd1
|
|
| BLAKE2b-256 |
3fa820a546d6cb7c052163132ea7f3b08b83bcfebe34618ac4cebca0830f514c
|
File details
Details for the file zsc-0.2.5-py3-none-any.whl.
File metadata
- Download URL: zsc-0.2.5-py3-none-any.whl
- Upload date:
- Size: 48.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0ad06beb87f5d6c0a064c505e810619fc7d7df876f2ea5603d1e83ae905b788
|
|
| MD5 |
93df63f6784c7e3f1b6caa2f4f5b5907
|
|
| BLAKE2b-256 |
7732f47a12a03b33be8b2536df23460918de96d7d08af89bb39f9ae37187d9f6
|