{"_rev":"33-b6cf155d5eac9583beae5eab726e62f8","time":{"created":"2026-06-16T13:03:58.502Z","modified":"2026-06-16T13:03:59.021Z","1.0.0":"2026-04-23T12:17:44.701Z","1.0.1":"2026-04-23T15:27:26.366Z","1.0.2":"2026-04-24T02:18:12.626Z","1.0.3":"2026-04-24T05:03:28.178Z","1.0.4":"2026-04-24T05:23:01.185Z","1.0.5":"2026-04-26T15:27:28.499Z","1.0.6":"2026-04-27T05:24:26.323Z","1.0.7":"2026-04-27T13:00:20.306Z","1.0.8":"2026-04-28T05:35:19.819Z","1.0.9":"2026-04-28T06:05:32.589Z","1.1.0":"2026-04-29T08:43:33.783Z","1.1.1":"2026-04-29T10:19:48.787Z","1.1.2":"2026-04-30T11:42:44.518Z","1.1.3":"2026-05-14T03:24:53.396Z","0.0.1":"2026-06-16T13:03:58.782Z"},"_id":"dwsal","name":"dwsal","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"dwsal","version":"0.0.1","description":"钉钉假勤管理 CLI 工具，支持考勤组、班次、排班、排班规则、用户、部门、假期规则、假期余额等全场景操作","keywords":["dingtalk","attendance","schedule","shift","vacation","mcp","cli"],"author":{"name":"qcw520"},"license":"MIT","bin":{"dwsal":"bin/dwsal.js"},"scripts":{"postinstall":"node install.js"},"engines":{"node":">=14"},"repository":{"type":"git","url":"git+https://gitee.com/qichangwei520/dwsal.git"},"homepage":"https://gitee.com/qichangwei520/dwsal","bugs":{"url":"https://gitee.com/qichangwei520/dwsal/issues"},"gitHead":"dffa450f7140f34ce0448e4053bc052c1dc6201b","_id":"dwsal@0.0.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-7EGCplCuzQDXx9WrTeJrwAdpWxzXyVW6MeWRNEa/HiBy3E8gZQURuRMD65/pN49j7GkvsI3xNCnvua5ioBpKFQ==","shasum":"605fd90b3b2de2fd8616e93c512419122519f64f","tarball":"https://registry.npmjs.org/dwsal/-/dwsal-0.0.1.tgz","fileCount":4,"unpackedSize":8105,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBHQWN018g4ABTU1OFttW4U+BtGM7zU0J97UNw1XzmZyAiAwTjsqyBTTLuDogkVXo5b4sI3SnL5Ry2ngln037blGew=="}]},"_npmUser":{"name":"qcw520","email":"15037525186@163.com"},"directories":{},"maintainers":[{"name":"qcw520","email":"15037525186@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dwsal_0.0.1_1781615038665_0.10780937338308427"},"_hasShrinkwrap":false}},"maintainers":[{"name":"qcw520","email":"15037525186@163.com"}],"description":"钉钉假勤管理 CLI 工具，支持考勤组、班次、排班、排班规则、用户、部门、假期规则、假期余额等全场景操作","homepage":"https://gitee.com/qichangwei520/dwsal","keywords":["dingtalk","attendance","schedule","shift","vacation","mcp","cli"],"repository":{"type":"git","url":"git+https://gitee.com/qichangwei520/dwsal.git"},"author":{"name":"qcw520"},"bugs":{"url":"https://gitee.com/qichangwei520/dwsal/issues"},"license":"MIT","readme":"# dwsal\n\n`dwsal` 是钉钉假勤管理命令行工具，同时支持作为 MCP Server 提供给 AI 客户端调用。\n\nnpm 包本身不内置各平台二进制文件。安装时会根据当前系统自动从 Release 下载对应的 `dwsal` 可执行文件。\n\n## 安装\n\n```powershell\nnpm install -g dwsal\n```\n\n安装完成后验证：\n\n```powershell\ndwsal --help\n```\n\n## 登录\n\n浏览器扫码登录：\n\n```powershell\ndwsal login\n```\n\n设备码登录：\n\n```powershell\ndwsal login --device\n```\n\n查看已登录企业并切换：\n\n```powershell\ndwsal switch\n```\n\n## MCP Server\n\nSTDIO 模式：\n\n```powershell\ndwsal --mcp-server\n```\n\nAI 客户端通过 MCP 协议调用工具，不需要手动执行 `McpTools` 目录里的代码。\n\n## 下载来源\n\n安装时默认按顺序从以下 Release 下载当前版本的发布包：\n\n1. Gitee Release\n2. GitHub Release\n\n支持的平台发布包：\n\n- `dwsal-win-x64.zip`\n- `dwsal-linux-x64.zip`\n- `dwsal-osx-arm64.zip`\n- `dwsal-osx-x64.zip`\n\nzip 根目录需要直接包含可执行文件：\n\n- Windows：`dwsal.exe`\n- Linux/macOS：`dwsal`\n\n## 自定义下载源\n\n默认情况下不需要设置下载源，安装脚本会自动使用 Gitee Release，失败后再尝试 GitHub Release。\n\n只有在需要使用内网镜像、私有镜像或临时下载地址时，才需要设置 `DWSAL_RELEASE_BASE_URLS`。\n\n`DWSAL_RELEASE_BASE_URLS` 填写的是“发布包所在目录”，不是具体 zip 文件地址。安装脚本会自动在目录后面拼接当前系统对应的 zip 文件名，例如 `dwsal-win-x64.zip`。\n\n地址中的 `v版本号` 需要替换成当前 npm 包版本对应的 Release tag。例如安装 `dwsal@0.0.1` 时，Release 目录应是 `.../download/v0.0.1`。\n\n```powershell\n$env:DWSAL_RELEASE_BASE_URLS=\"https://example.com/dwsal/releases/download/v版本号,https://github.com/QiChangWei/dwsal/releases/download/v版本号\"\nnpm install -g dwsal\n```\n\n多个地址会按顺序尝试，前一个地址下载失败时会自动尝试下一个地址。\n\n## 常见问题\n\n如果安装后提示二进制文件不存在，可以重新安装：\n\n```powershell\nnpm uninstall -g dwsal\nnpm install -g dwsal\n```\n\n如果下载失败，请确认当前版本的 Release 中已经上传了对应平台的 zip 文件。\n","readmeFilename":"README.md"}