{"_id":"@alfxjx/ricli","_rev":"5-1282c9c6dbba35e04f20df03bd360f4a","name":"@alfxjx/ricli","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.3":{"name":"@alfxjx/ricli","version":"1.0.3","keywords":["cli","reader","epub","txt","terminal","ebook"],"author":{"name":"alfxjx"},"license":"ISC","_id":"@alfxjx/ricli@1.0.3","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"homepage":"https://github.com/Alfxjx/read-in-cli#readme","bugs":{"url":"https://github.com/Alfxjx/read-in-cli/issues"},"bin":{"ricli":"src/index.js"},"dist":{"shasum":"f1813272fc3db8d43b278abe0403b85887e359d3","tarball":"https://registry.npmjs.org/@alfxjx/ricli/-/ricli-1.0.3.tgz","fileCount":16,"integrity":"sha512-Cvrs+mFCV5oO22afdt2fjFKrBwao2ZnXvq/QtzYp656UNJhlWXJCa8EoKjro7rnMhH0s+nERX2XloXiyPgYaKw==","signatures":[{"sig":"MEUCIC2XW3lblaJR9s7ZLGyAWi6k42kqGT/aVghtPGT1gBRnAiEAgyUQo2WqW7pfBVXGcDgDUBO3JC/B8XFFwr0UjKJzMY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25461},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a6e436b37eccd275ed7fc8f89724603d0e5d4333","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"node src/index.js","prepare":"husky","release":"release-it","release:dry":"release-it --dry-run","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch"},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release v${version}","tagAnnotation":"Release v${version}"},"npm":{"publish":true},"github":{"release":false},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":{"name":"conventionalcommits","types":[{"type":"feat","section":" Features"},{"type":"fix","section":" Bug Fixes"},{"type":"perf","section":" Performance"},{"type":"refactor","section":" Refactoring"},{"type":"docs","section":" Documentation"},{"type":"chore","hidden":true,"section":" Chores"},{"type":"ci","hidden":true,"section":" CI/CD"}]}}}},"repository":{"url":"git+https://github.com/Alfxjx/read-in-cli.git","type":"git"},"_npmVersion":"10.5.2","description":"在命令行中阅读书籍 (epub, txt)","directories":{},"_nodeVersion":"20.13.1","dependencies":{"epub2":"^3.0.2","blessed":"^0.1.81","commander":"^12.1.0","html-to-text":"^9.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","release-it":"^19.2.4","@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@release-it/conventional-changelog":"^10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/ricli_1.0.3_1774506334761_0.841393090433268","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alfxjx/ricli","version":"1.1.0","keywords":["cli","reader","epub","txt","terminal","ebook"],"author":{"name":"alfxjx"},"license":"ISC","_id":"@alfxjx/ricli@1.1.0","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"homepage":"https://github.com/Alfxjx/read-in-cli#readme","bugs":{"url":"https://github.com/Alfxjx/read-in-cli/issues"},"bin":{"ricli":"src/index.js"},"dist":{"shasum":"36652acd544bd996c219880038ff97d617882cdc","tarball":"https://registry.npmjs.org/@alfxjx/ricli/-/ricli-1.1.0.tgz","fileCount":16,"integrity":"sha512-7N95hjsidVgAxATA+rh0OzX+fRLDHIwv3EOv3I06tMTvVA70wAnA9bOWHGSoNTEvnxBF7It6KoD9Cy/vFBNqmA==","signatures":[{"sig":"MEYCIQC21YQUJbZx73vMqNXyyOLVgLnsV/sEfrHgTkdVdYkuBQIhAKj7vH9bLwRSG118g+QOsGU9US+LYGkzjEltCebEF77y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29350},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7528bb9c66244cba706503bc970da79501c71302","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"cross-env NODE_ENV=development node src/index.js","prepare":"husky","release":"release-it","release:dry":"release-it --dry-run","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch"},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release v${version}","tagAnnotation":"Release v${version}"},"npm":{"publish":true},"github":{"release":false},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":{"name":"conventionalcommits","types":[{"type":"feat","section":" Features"},{"type":"fix","section":" Bug Fixes"},{"type":"perf","section":" Performance"},{"type":"refactor","section":" Refactoring"},{"type":"docs","section":" Documentation"},{"type":"chore","hidden":true,"section":" Chores"},{"type":"ci","hidden":true,"section":" CI/CD"}]}}}},"repository":{"url":"git+https://github.com/Alfxjx/read-in-cli.git","type":"git"},"_npmVersion":"10.5.2","description":"在命令行中阅读书籍 (epub, txt)","directories":{},"_nodeVersion":"20.13.1","dependencies":{"epub2":"^3.0.2","blessed":"^0.1.81","commander":"^12.1.0","html-to-text":"^9.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","cross-env":"^10.1.0","release-it":"^19.2.4","@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@release-it/conventional-changelog":"^10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/ricli_1.1.0_1774509247337_0.6219897478901852","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alfxjx/ricli","version":"1.2.0","keywords":["cli","reader","epub","txt","terminal","ebook"],"author":{"name":"alfxjx"},"license":"ISC","_id":"@alfxjx/ricli@1.2.0","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"homepage":"https://github.com/Alfxjx/read-in-cli#readme","bugs":{"url":"https://github.com/Alfxjx/read-in-cli/issues"},"bin":{"ricli":"src/index.js"},"dist":{"shasum":"55fbfa1591e0b1a06ee7a3de709f8d9adafd39b1","tarball":"https://registry.npmjs.org/@alfxjx/ricli/-/ricli-1.2.0.tgz","fileCount":16,"integrity":"sha512-TudWCQRuc835i3isdIk8vD4oFSoPyexi9JJNjcS+gl0coBZ+GG7mX+QY2nSO1sBAZJzy0uQUqkh3W4AGMutTNg==","signatures":[{"sig":"MEUCICCdbl8H7potXQp0rBkhv9ojnUSF8JTJ9R7QwTUrbn9JAiEAkIALusyJO/Zhc8ZMYItDClcbnDUhjvi++/pjp7GAdWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29774},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"b479586aa0690a17c9a1f923528cff6d4201390c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"cross-env NODE_ENV=development node src/index.js","prepare":"husky","release":"release-it","release:dry":"release-it --dry-run","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch"},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release v${version}","tagAnnotation":"Release v${version}"},"npm":{"publish":true},"github":{"release":false},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":{"name":"conventionalcommits","types":[{"type":"feat","section":" Features"},{"type":"fix","section":" Bug Fixes"},{"type":"perf","section":" Performance"},{"type":"refactor","section":" Refactoring"},{"type":"docs","section":" Documentation"},{"type":"chore","hidden":true,"section":" Chores"},{"type":"ci","hidden":true,"section":" CI/CD"}]}}}},"repository":{"url":"git+https://github.com/Alfxjx/read-in-cli.git","type":"git"},"_npmVersion":"10.5.2","description":"在命令行中阅读书籍 (epub, txt)","directories":{},"_nodeVersion":"20.13.1","dependencies":{"epub2":"^3.0.2","blessed":"^0.1.81","commander":"^12.1.0","html-to-text":"^9.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","cross-env":"^10.1.0","release-it":"^19.2.4","@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@release-it/conventional-changelog":"^10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/ricli_1.2.0_1774510048281_0.9798953479732426","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@alfxjx/ricli","version":"1.2.1","keywords":["cli","reader","epub","txt","terminal","ebook"],"author":{"name":"alfxjx"},"license":"ISC","_id":"@alfxjx/ricli@1.2.1","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"homepage":"https://github.com/Alfxjx/read-in-cli#readme","bugs":{"url":"https://github.com/Alfxjx/read-in-cli/issues"},"bin":{"ricli":"src/index.js"},"dist":{"shasum":"05cb190af81dd86c74592fc72ff83a3628f745e9","tarball":"https://registry.npmjs.org/@alfxjx/ricli/-/ricli-1.2.1.tgz","fileCount":16,"integrity":"sha512-fjSp2JuuFEmuNVowc+MROZwJSWXeIsy4rVIBxJyOdD6TItUai1sgYFKtNH172Q3SW0Dpw9k0ZvDdCjwdZ05HWQ==","signatures":[{"sig":"MEYCIQDu4ZdRg6AGBkZT54qprKuGtUJ2PQqlnFpFa9akm9ZaBQIhAPP7MJyh6b2LGXOMaXgqnFkMr2W5KyGVrIJcVQ2YjhKi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31816},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"ee8b622c03f06991259642b0544d667ee66e3d17","scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"cross-env NODE_ENV=development node src/index.js","prepare":"husky","release":"release-it","release:dry":"release-it --dry-run","release:major":"release-it major","release:minor":"release-it minor","release:patch":"release-it patch"},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release v${version}","tagAnnotation":"Release v${version}"},"npm":{"publish":true},"github":{"release":false},"plugins":{"@release-it/conventional-changelog":{"infile":"CHANGELOG.md","preset":{"name":"conventionalcommits","types":[{"type":"feat","section":" Features"},{"type":"fix","section":" Bug Fixes"},{"type":"perf","section":" Performance"},{"type":"refactor","section":" Refactoring"},{"type":"docs","section":" Documentation"},{"type":"chore","hidden":true,"section":" Chores"},{"type":"ci","hidden":true,"section":" CI/CD"}]}}}},"repository":{"url":"git+https://github.com/Alfxjx/read-in-cli.git","type":"git"},"_npmVersion":"10.5.2","description":"在命令行中阅读书籍 (epub, txt)","directories":{},"_nodeVersion":"20.13.1","dependencies":{"epub2":"^3.0.2","blessed":"^0.1.81","commander":"^12.1.0","html-to-text":"^9.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","cross-env":"^10.1.0","release-it":"^19.2.4","@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@release-it/conventional-changelog":"^10.0.6"},"_npmOperationalInternal":{"tmp":"tmp/ricli_1.2.1_1774830912717_0.9434427969064254","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alfxjx/ricli","version":"1.4.0","description":"在命令行中阅读书籍 (epub, txt)","type":"module","main":"src/index.js","bin":{"ricli":"src/index.js"},"engines":{"node":">=18.0.0"},"scripts":{"start":"cross-env NODE_ENV=development node src/index.js","prepare":"husky","release":"release-it","release:patch":"release-it patch","release:minor":"release-it minor","release:major":"release-it major","release:dry":"release-it --dry-run","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["cli","reader","epub","txt","terminal","ebook"],"author":{"name":"alfxjx"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/Alfxjx/read-in-cli.git"},"homepage":"https://github.com/Alfxjx/read-in-cli#readme","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/Alfxjx/read-in-cli/issues"},"dependencies":{"blessed":"^0.1.81","commander":"^12.1.0","epub2":"^3.0.2","html-to-text":"^9.0.5"},"devDependencies":{"@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@release-it/conventional-changelog":"^10.0.6","cross-env":"^10.1.0","husky":"^9.1.7","release-it":"^19.2.4"},"release-it":{"git":{"commitMessage":"chore: release v${version}","tagName":"v${version}","tagAnnotation":"Release v${version}"},"npm":{"publish":true},"github":{"release":false},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"conventionalcommits","types":[{"type":"feat","section":" Features"},{"type":"fix","section":" Bug Fixes"},{"type":"perf","section":" Performance"},{"type":"refactor","section":" Refactoring"},{"type":"docs","section":" Documentation"},{"type":"chore","section":" Chores","hidden":true},{"type":"ci","section":" CI/CD","hidden":true}]},"infile":"CHANGELOG.md"}}},"_id":"@alfxjx/ricli@1.4.0","gitHead":"90bd461d88a8d2c5502b33039503861985c30631","_nodeVersion":"20.13.1","_npmVersion":"10.5.2","dist":{"integrity":"sha512-1yYCUrUxtPGvahoX3TNpeQb8z7AfhBCiUfUZYN/cIKl7CCMwl2ujGpLqOAY+fWBymsk2HMa26GCrzlOTe1Ltyg==","shasum":"3320ed0ffaab434d141b87a7310a81c0022318b1","tarball":"https://registry.npmjs.org/@alfxjx/ricli/-/ricli-1.4.0.tgz","fileCount":17,"unpackedSize":38063,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpK4hk+rVUrYCCCy97ZpRe+LBhGaM8XWRkJ1lPQnHSXQIgQwItSRwe9pSLZudY+Gp9D33bx/ksoKITE3BKZNd7Nbw="}]},"_npmUser":{"name":"alfxjx","email":"xjxtju@163.com"},"directories":{},"maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ricli_1.4.0_1776223871449_0.4847003422536318"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T06:25:34.646Z","modified":"2026-04-15T03:31:11.711Z","1.0.3":"2026-03-26T06:25:34.918Z","1.1.0":"2026-03-26T07:14:07.467Z","1.2.0":"2026-03-26T07:27:28.437Z","1.2.1":"2026-03-30T00:35:12.870Z","1.4.0":"2026-04-15T03:31:11.590Z"},"bugs":{"url":"https://github.com/Alfxjx/read-in-cli/issues"},"author":{"name":"alfxjx"},"license":"ISC","homepage":"https://github.com/Alfxjx/read-in-cli#readme","keywords":["cli","reader","epub","txt","terminal","ebook"],"repository":{"type":"git","url":"git+https://github.com/Alfxjx/read-in-cli.git"},"description":"在命令行中阅读书籍 (epub, txt)","maintainers":[{"name":"alfxjx","email":"xjxtju@163.com"}],"readme":"# RICLI\r\n\r\nRead books (epub, txt) in your terminal. / 在命令行中阅读书籍（epub, txt）\r\n\r\n## Installation / 安装\r\n\r\n```bash\r\nnpm install -g @alfxjx/ricli\r\n```\r\n\r\n## Usage / 使用\r\n\r\n```bash\r\n# Open a book directly / 直接打开一本书\r\nricli book.epub\r\nricli book.txt\r\n\r\n# Launch without arguments to open the bookshelf / 不带参数启动，进入书架选择界面\r\nricli\r\n\r\n# View / modify config / 查看 / 修改配置\r\nricli config\r\nricli config --set theme.fg=cyan\r\nricli config --set padding=4\r\nricli config --reset\r\n```\r\n\r\n## Keybindings / 快捷键\r\n\r\n| Key / 按键 | Action / 功能 |\r\n|------------|---------------|\r\n| `↑` / `k` | Scroll up / 向上滚动 |\r\n| `↓` / `j` | Scroll down / 向下滚动 |\r\n| `←` / `h` | Previous chapter / 上一章 |\r\n| `→` / `l` | Next chapter / 下一章 |\r\n| `PgUp` / `b` | Page up / 向上翻页 |\r\n| `PgDn` / `Space` | Page down / 向下翻页 |\r\n| `Home` / `g` | Jump to chapter start / 跳到章节开头 |\r\n| `End` / `G` | Jump to chapter end / 跳到章节末尾 |\r\n| `t` | Open table of contents / 打开目录 |\r\n| `o` | Enter file path in bookshelf / 在书架界面输入文件路径 |\r\n| `d` | Remove book record in bookshelf / 在书架界面删除书籍记录 |\r\n| `q` / `Esc` | Go back / quit / 返回上级 / 退出 |\r\n| `Ctrl+C` | Force quit / 强制退出 |\r\n\r\n## Features / 功能\r\n\r\n1. **Bookshelf** — Books you open are recorded automatically; select them on next launch or remove records. / **书架管理** — 打开过的书自动记录，下次启动直接选择，支持删除记录\r\n2. **Keybindings** — Arrow keys, vi-style (hjkl), paging, TOC navigation, and more. / **快捷键** — 支持方向键、vi 风格（hjkl）、翻页、目录跳转等\r\n3. **Progress** — Reading position is saved automatically and restored when you reopen the same book. / **进度记录** — 阅读位置自动保存，下次打开同一本书自动恢复\r\n4. **Config** — View or change theme, padding and more via `ricli config`. / **配置管理** — 通过 `ricli config` 命令查看或修改主题、边距等配置\r\n\r\n## Configuration / 配置项\r\n\r\nThe config file lives at `~/.ricli/config.json` and can be edited directly or via the command. / 配置文件位于 `~/.ricli/config.json`，可直接编辑或通过命令修改：\r\n\r\n```json\r\n{\r\n  \"theme\": {\r\n    \"fg\": \"white\",\r\n    \"bg\": \"black\",\r\n    \"headerFg\": \"yellow\",\r\n    \"headerBg\": \"blue\",\r\n    \"tocSelectedFg\": \"black\",\r\n    \"tocSelectedBg\": \"green\"\r\n  },\r\n  \"padding\": 2,\r\n  \"linesPerPage\": 0\r\n}\r\n```\r\n\r\n| Key / 配置项 | Description / 说明 | Default / 默认值 |\r\n|---|---|---|\r\n| `theme.fg` | Body text color / 正文文字颜色 | `grey` |\r\n| `theme.bg` | Background color / 背景颜色 | `black` |\r\n| `theme.headerFg` | Header text color / 标题栏文字颜色 | `yellow` |\r\n| `theme.headerBg` | Header background color / 标题栏背景颜色 | `blue` |\r\n| `theme.tocSelectedFg` | TOC selected item text color / 目录选中项文字颜色 | `black` |\r\n| `theme.tocSelectedBg` | TOC selected item background color / 目录选中项背景颜色 | `green` |\r\n| `padding` | Left/right text padding (chars) / 正文左右内边距（字符数） | `2` |\r\n| `linesPerPage` | Lines per page, `0` = auto / 每页行数，`0` 为自动 | `0` |\r\n\r\nSupported color values / 颜色值支持：`black` `red` `green` `yellow` `blue` `magenta` `cyan` `white` `grey` and/及 `#rrggbb` hex.\r\n\r\n## Project Structure / 项目结构\r\n\r\n```\r\nsrc/\r\n  index.js              CLI entry & subcommands / CLI 入口 & 子命令\r\n  parser/\r\n    index.js            Book loading dispatcher / 书籍加载分发\r\n    epub-parser.js      EPUB parser / EPUB 解析\r\n    txt-parser.js       TXT parser (auto chapter detection) / TXT 解析（自动检测章节）\r\n  store/\r\n    paths.js            Storage paths (dev/prod isolation) / 存储路径（dev/prod 隔离）\r\n    config.js           User config management / 用户配置管理\r\n    library.js          Bookshelf management / 书架管理\r\n    progress.js         Reading progress management / 阅读进度管理\r\n  ui/\r\n    screen.js           Terminal screen init / 终端屏幕初始化\r\n    book-select.js      Bookshelf selection UI / 书架选择界面\r\n    reader-view.js      Reader UI / 阅读界面\r\n    toc-view.js         Table of contents UI / 目录界面\r\n    input-prompt.js     Input prompt dialog / 输入提示框\r\n```\r\n\r\n## Development / 开发\r\n\r\n```bash\r\ngit clone https://github.com/Alfxjx/read-in-cli.git\r\ncd read-in-cli\r\nnpm install\r\nnpm start          # Dev mode, data stored in ~/.ricli-dev / 开发模式，数据存储在 ~/.ricli-dev\r\n```\r\n\r\n### Releasing / 发布新版本\r\n\r\n```bash\r\nnpm run release:patch   # 1.0.x\r\nnpm run release:minor   # 1.x.0\r\nnpm run release:major   # x.0.0\r\nnpm run release:dry     # Dry run, no actual publish / 预演，不实际发布\r\n```\r\n\r\nCommits follow the [Conventional Commits](https://conventionalcommits.org) spec; CHANGELOG is generated automatically on each release. / Commit 遵循 [Conventional Commits](https://conventionalcommits.org) 规范，每次发布自动生成 CHANGELOG。\r\n\r\n## License\r\n\r\nISC","readmeFilename":"README.md"}