{"_id":"@cissibot/uivs","_rev":"6-7f32471baa229a6617ac05369d2ff8a2","name":"@cissibot/uivs","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@cissibot/uivs","version":"0.1.0","license":"MIT","_id":"@cissibot/uivs@0.1.0","maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"homepage":"https://github.com/DevSissi/uiverse-tool#readme","bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"bin":{"uivs":"bin/uivs.js"},"dist":{"shasum":"2e017aa305b0d3be2f028c6e06fe7dde9e54e57d","tarball":"https://registry.npmjs.org/@cissibot/uivs/-/uivs-0.1.0.tgz","fileCount":8,"integrity":"sha512-bd2N5AgPNmF/M+2w6cy+TTHXbEVayrBNMrA3fxQgbcscoJYhX9cyClUS1RJ5BQJ8333TNIvFqDaO7hFPImAawQ==","signatures":[{"sig":"MEUCIBJBkjtsRKS+5Y9uMvxyzQX7RlRs66G1INieBjNLdGeUAiEA5V0i/CSgAQexdB3i4WLq9RE6CMGOyzoCcSVnVsOy1R4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22839},"type":"module","engines":{"node":">=18"},"gitHead":"46d81465e6cded32082686b22ecaf3b3dd8b4680","scripts":{"verify":"bash skills/uivs-cli/scripts/verify-project.sh"},"_npmUser":{"name":"cissibot","email":"sunnysissi@outlook.com"},"repository":{"url":"git+https://github.com/DevSissi/uiverse-tool.git","type":"git"},"_npmVersion":"11.19.0","description":"Fetch Uiverse component code with a pure HTTP client","directories":{},"_nodeVersion":"24.14.0","dependencies":{"htmltojsx":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/uivs_0.1.0_1786905490066_0.33946944979329974","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cissibot/uivs","version":"0.1.1","license":"MIT","_id":"@cissibot/uivs@0.1.1","maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"homepage":"https://github.com/DevSissi/uiverse-tool#readme","bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"bin":{"uivs":"bin/uivs.js"},"dist":{"shasum":"8569c618264329e0ae08c6a3a16fb3a3b086ee31","tarball":"https://registry.npmjs.org/@cissibot/uivs/-/uivs-0.1.1.tgz","fileCount":8,"integrity":"sha512-R+9c0V4JrGUQ0/cDic2AJQjKGjXK+qiDkRHm7pbl2uGsoV7aWB84QjEHPyxXcQITY2cPnwDtIS/wQwJ5ao+U4w==","signatures":[{"sig":"MEUCIBnsZz5SKXUgjGzN3DkbGq0rPoKax72Q3KBkdtoQTwAmAiEAp79WG1p0E6sYhF9BLXgHwcs712rqE9DfepCw6t8QL+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cissibot%2fuivs@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27402},"type":"module","engines":{"node":">=18"},"gitHead":"be7a56ccf07cef457b9dc91263b16d39440b1ca0","scripts":{"verify":"bash skills/uivs-cli/scripts/verify-project.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:13bd4102-8a39-4473-95ba-dc76f67c3a97"}},"repository":{"url":"git+https://github.com/DevSissi/uiverse-tool.git","type":"git"},"_npmVersion":"11.17.0","description":"Fetch Uiverse component code with a pure HTTP client","directories":{},"_nodeVersion":"24.19.0","dependencies":{"parse5":"^7.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/uivs_0.1.1_1786907139788_0.2373895681863003","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cissibot/uivs","version":"0.1.2","license":"MIT","_id":"@cissibot/uivs@0.1.2","maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"homepage":"https://github.com/DevSissi/uiverse-tool#readme","bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"bin":{"uivs":"bin/uivs.js"},"dist":{"shasum":"c12e2e83bf02d5b22b3413e3aa3aaaf8056fb7f1","tarball":"https://registry.npmjs.org/@cissibot/uivs/-/uivs-0.1.2.tgz","fileCount":8,"integrity":"sha512-tiGdfq/IoU+vr0grliQc5jNLdjFaodEeZN29Wx7IoGlNQdqIMimZC977S4igxblOOkv2er6Y/W83BRhW856WWQ==","signatures":[{"sig":"MEUCIQDEq+SumP/HE5Y9l9CN6htBAZp/K0R7kAbBC6QbkMLXfAIgAdEac6h3+m9kkCTvUqRiHy+IPmYtyXc6awwVZt1M0So=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cissibot%2fuivs@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28239},"type":"module","engines":{"node":">=18"},"gitHead":"2078fa908f4624d58d9591af9142b28dcced06da","scripts":{"verify":"bash skills/uivs-cli/scripts/verify-project.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:13bd4102-8a39-4473-95ba-dc76f67c3a97"}},"repository":{"url":"git+https://github.com/DevSissi/uiverse-tool.git","type":"git"},"_npmVersion":"11.17.0","description":"Fetch Uiverse component code with a pure HTTP client","directories":{},"_nodeVersion":"24.19.0","dependencies":{"parse5":"^7.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/uivs_0.1.2_1786911768883_0.30080403058153626","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cissibot/uivs","version":"0.2.0","license":"MIT","_id":"@cissibot/uivs@0.2.0","maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"homepage":"https://github.com/DevSissi/uiverse-tool#readme","bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"bin":{"uivs":"bin/uivs.js"},"dist":{"shasum":"2ec4c931591558c098ef76663b9747c112d3f287","tarball":"https://registry.npmjs.org/@cissibot/uivs/-/uivs-0.2.0.tgz","fileCount":8,"integrity":"sha512-Vog2pCHv6Kn3+cvYeTYysxVsbBFa392g635rF1b+L1J+Vt4rHgzcakiu+7cU0WJxfZu09tkp7Who+FAdJAo0SQ==","signatures":[{"sig":"MEUCIQDjVF+NCkkxpO4YGxj7eag9ObuT19gpcuYUUiNL/yltswIgeekdlinkxnMZ/6RxTf805H43H1ZpBgbqKbLcsHDk7ag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cissibot%2fuivs@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28239},"type":"module","engines":{"node":">=18"},"gitHead":"48ae5f3c5a964bb9de2a77b2b24d836ef494308d","scripts":{"verify":"bash skills/uivs-cli/scripts/verify-project.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:13bd4102-8a39-4473-95ba-dc76f67c3a97"}},"repository":{"url":"git+https://github.com/DevSissi/uiverse-tool.git","type":"git"},"_npmVersion":"11.17.0","description":"Fetch Uiverse component code with a pure HTTP client","directories":{},"_nodeVersion":"24.19.0","dependencies":{"parse5":"^7.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/uivs_0.2.0_1786946992978_0.10480249111989881","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cissibot/uivs","version":"0.3.0","license":"MIT","_id":"@cissibot/uivs@0.3.0","maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"homepage":"https://github.com/DevSissi/uiverse-tool#readme","bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"bin":{"uivs":"bin/uivs.js"},"dist":{"shasum":"a3eee93be7a10e66def32718a8ac5a42519730f8","tarball":"https://registry.npmjs.org/@cissibot/uivs/-/uivs-0.3.0.tgz","fileCount":9,"integrity":"sha512-QzqNfo0513NEwpXtT1Svx90Bf+EHsfgfEHJaW1Ov5RiSXcDWPkASZ8nZxGFuX/lSorVRa/bLTTpY9SrU+0qMiw==","signatures":[{"sig":"MEUCIBjYDfF6Tdcevj1KgHqKNIHJngLOeheUPhZZ26x9RzIuAiEAk6X01efYrcazxu3EN5q6jDUJe8RrIsN/a1dXQEBeY6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cissibot%2fuivs@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38807},"type":"module","engines":{"node":">=18"},"gitHead":"77364d66d6e6d50280ab0adcf6e5dbfb6444f611","scripts":{"verify":"bash skills/uivs-cli/scripts/verify-project.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:13bd4102-8a39-4473-95ba-dc76f67c3a97"}},"repository":{"url":"git+https://github.com/DevSissi/uiverse-tool.git","type":"git"},"_npmVersion":"11.17.0","description":"Fetch Uiverse component code with a pure HTTP client","directories":{},"_nodeVersion":"24.19.0","dependencies":{"parse5":"^7.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/uivs_0.3.0_1787013481233_0.03932244987345812","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cissibot/uivs","version":"0.4.0","description":"Fetch Uiverse component code with a pure HTTP client","license":"MIT","repository":{"type":"git","url":"git+https://github.com/DevSissi/uiverse-tool.git"},"scripts":{"verify":"bash skills/uivs-cli/scripts/verify-project.sh"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"type":"module","bin":{"uivs":"bin/uivs.js"},"engines":{"node":">=18"},"dependencies":{"parse5":"^7.3.0"},"gitHead":"0056c4c788c3fd22b96e9ff6cc30504b16f9c876","_id":"@cissibot/uivs@0.4.0","bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"homepage":"https://github.com/DevSissi/uiverse-tool#readme","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-yKZIAW1jUA+thB8jhGDLAkf1gULr1QahEfmtgaLUim6vGIUxZ24gQJKS2PHyMl6dl1MlRugZsqkgHTvTmq/YLA==","shasum":"69ae82d2c4040af28e5f8d288bca1e490d72376c","tarball":"https://registry.npmjs.org/@cissibot/uivs/-/uivs-0.4.0.tgz","fileCount":9,"unpackedSize":42638,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cissibot%2fuivs@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD046QyFi+1eYljchZ4mQ+AJYAZcvVAgYWI98bgxbTd4AIhAKdpT2Jexcvj48mvnlIjzTYWdE0H+tV49rTIw7D72Phe"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:13bd4102-8a39-4473-95ba-dc76f67c3a97"}},"directories":{},"maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/uivs_0.4.0_1788616912593_0.32604319063539"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T18:38:09.890Z","modified":"2026-09-05T14:01:53.018Z","0.1.0":"2026-08-16T18:38:10.210Z","0.1.1":"2026-08-16T19:05:39.941Z","0.1.2":"2026-08-16T20:22:49.034Z","0.2.0":"2026-08-17T06:09:53.125Z","0.3.0":"2026-08-18T00:38:01.372Z","0.4.0":"2026-09-05T14:01:52.721Z"},"bugs":{"url":"https://github.com/DevSissi/uiverse-tool/issues"},"license":"MIT","homepage":"https://github.com/DevSissi/uiverse-tool#readme","repository":{"type":"git","url":"git+https://github.com/DevSissi/uiverse-tool.git"},"description":"Fetch Uiverse component code with a pure HTTP client","maintainers":[{"name":"cissibot","email":"sunnysissi@outlook.com"}],"readme":"<div align=\"center\">\n\n# uivs\n\n**uivs 是一个纯 HTTP 的 Uiverse 组件 CLI。**\n\n它可以抓取组件的 HTML/CSS，并转换成 React、Vue、Svelte 或 Lit 代码。不依赖 Playwright，不启动浏览器，不下载 Chromium。\n\n[English](./README.md) | **简体中文**\n\n[![npm version](https://img.shields.io/npm/v/@cissibot%2Fuivs?style=flat-square&logo=npm&logoColor=white&color=cb3837)](https://www.npmjs.com/package/@cissibot/uivs)\n[![npm downloads](https://img.shields.io/npm/dm/@cissibot%2Fuivs?style=flat-square&logo=npm&logoColor=white&color=cb3837)](https://www.npmjs.com/package/@cissibot/uivs)\n[![Node.js](https://img.shields.io/badge/node.js-%3E%3D18-339933?style=flat-square&logo=nodedotjs&logoColor=white)](https://nodejs.org)\n[![Python](https://img.shields.io/badge/python-%3E%3D3.10-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org)\n[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square&logo=opensourceinitiative&logoColor=white)](https://opensource.org/license/mit)\n\n</div>\n\n## 功能\n\n- 获取 Uiverse 组件的原始 HTML / CSS\n- 转换为 React、Vue、Svelte、Lit\n- 按标签、样式或作者名搜索\n- 输出 JSON 元数据，或保存代码到文件\n- 网络受限时可通过代理使用\n\n## 安装\n\n需要 Node.js 18+，以及 [uv](https://docs.astral.sh/uv/) 或一个能 import `curl_cffi`\n的 Python 3.10+ 解释器，二者有其一即可。\n\n```bash\nnpm install -g @cissibot/uivs\n```\n\n有 uv 时，安装到此为止。Python 辅助脚本以 PEP 723 内联声明自己的依赖，`uv run` 会在首次\n调用时装好 `curl_cffi`。uv 写入的一切都在它自己的目录里——`uv cache dir` 与 `uv python dir`，\n默认都是 XDG 路径——不会落进你的项目。\n\n或从仓库安装：\n\n```bash\nnpm install -g .\n```\n\n### 没有 uv 时\n\n已装好 `curl_cffi` 的解释器会被直接使用，根本不会走到 uv：\n\n```bash\npip install curl_cffi\n```\n\n要用的解释器不是 `PATH` 上的 `python3` 时（例如在某个 virtualenv 里），用\n`UIVERSE_PYTHON` 指定，它的优先级高于其他所有运行器：\n\n```bash\nexport UIVERSE_PYTHON=/path/to/python\n```\n\n## 用法\n\n```bash\nuivs html  NorthFishHasNa/soft-turtle-49\nuivs css   NorthFishHasNa/soft-turtle-49\nuivs react NorthFishHasNa/soft-turtle-49\nuivs vue   NorthFishHasNa/soft-turtle-49\nuivs svelte NorthFishHasNa/soft-turtle-49\nuivs lit   NorthFishHasNa/soft-turtle-49\n```\n\n按标签或作者搜索：\n\n```bash\nuivs search button --limit 10\nuivs search rounded --limit 5\nuivs search NorthFishHasNa --limit 10\n```\n\n也支持完整 URL：\n\n```bash\nuivs react https://uiverse.io/NorthFishHasNa/soft-turtle-49\n```\n\n保存到文件：\n\n```bash\nuivs react NorthFishHasNa/soft-turtle-49 /tmp/button.jsx\nuivs vue NorthFishHasNa/soft-turtle-49 /tmp/button.vue\n```\n\n查看元数据或标签：\n\n```bash\nuivs info NorthFishHasNa/soft-turtle-49\nuivs tags NorthFishHasNa/soft-turtle-49\n```\n\n## 命令\n\n| 命令 | 说明 |\n| --- | --- |\n| `uivs html <input> [output]` | 获取原始 HTML |\n| `uivs css <input> [output]` | 获取原始 CSS |\n| `uivs react\\|jsx\\|tsx <input> [output]` | React 组件（`jsx` / `tsx` 别名） |\n| `uivs vue <input> [output]` | Vue 单文件组件 |\n| `uivs svelte <input> [output]` | Svelte 组件 |\n| `uivs lit <input> [output]` | Lit 组件 |\n| `uivs search <query> [--limit N]` | 按标签、样式或作者搜索（`N` 取 1-100，默认 10） |\n| `uivs info <input>` | 输出元数据：类型、标题、描述、作者和标签 |\n| `uivs tags <input>` | 只输出标签列表 |\n| `uivs --help` / `--version` | 显示帮助或版本 |\n\n## 输出\n\n默认输出为 JSON，包含组件类型和标签。\n\n```json\n{\n  \"target\": \"react\",\n  \"language\": \"jsx\",\n  \"username\": \"NorthFishHasNa\",\n  \"slug\": \"soft-turtle-49\",\n  \"url\": \"https://uiverse.io/NorthFishHasNa/soft-turtle-49\",\n  \"type\": \"button\",\n  \"tags\": [\"button\", \"rounded\", \"button\", \"text\", \"rectangular\", \"click\", \"navy\"],\n  \"isTailwind\": false,\n  \"postId\": \"aa4a45a2-a962-4bdc-a4c9-a681aea46ee8\",\n  \"length\": 894,\n  \"code\": \"...\"\n}\n```\n\n指定输出文件时，代码会写入文件并从打印的 JSON 中省略。JSON 始终写入 stdout，状态和错误信息写入 stderr，因此 `uivs ... | jq` 不会被污染。\n\n搜索结果同样是 JSON，包含 `query`、`count`、`results`、`page` 和 `hasNextPage`。\n\n输入不合法时会在 stderr 报错并以退出码 1 结束：不支持的语言、未知选项，或超出 1-100 的 `--limit`。\n\n## 代理\n\n如果访问 Uiverse 受限，可以使用代理：\n\n```bash\nuivs --proxy <proxy-url> react NorthFishHasNa/soft-turtle-49\n```\n\n或设置以下任一环境变量：\n\n```text\nUIVERSE_PROXY\nHTTPS_PROXY\nHTTP_PROXY\n```\n\n`uivs` 依次尝试 `python3`、`python`、`uv run` 来运行 Python 辅助脚本。可设置 `UIVERSE_PYTHON` 指定解释器。\n\n## Agent 技能\n\n仓库同时提供配套的 Agent 技能，供编码代理使用。全局安装：\n\n```bash\nnpx skills add DevSissi/uiverse-tool --skill uivs-cli -g -y\n```\n\nCLI 本身不依赖该技能，可独立使用。\n\n## 许可证\n\nMIT\n","readmeFilename":"README.zh-CN.md"}