{"_id":"@braverior/claude-session","_rev":"4-ebed47a926fddae342f9a0c7644b92d5","name":"@braverior/claude-session","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@braverior/claude-session","version":"1.0.0","keywords":["claude","claude-code","session","resume","cli","tui","ink"],"license":"MIT","_id":"@braverior/claude-session@1.0.0","maintainers":[{"name":"braverior","email":"braverior@gmail.com"}],"bin":{"cs":"bin/cli.js","claude-session":"bin/cli.js"},"dist":{"shasum":"4734180fbd08a9802d2e6f9d879895ba785bb305","tarball":"https://registry.npmjs.org/@braverior/claude-session/-/claude-session-1.0.0.tgz","fileCount":4,"integrity":"sha512-RybwddinumA2yo1szvIljHb/O2rpC/1TgkE8ViKAKF4lGcOb6mNEBNALMqA5R5/pD5+QTv67VZ8sgQ6u22iMpw==","signatures":[{"sig":"MEYCIQCS7UC7vkyaA4ynGXdbS/1gQjSosYdYWBwvfs6iyPiwnwIhAKdRkAx6zx7YAIYuPaOdgQV18C/ghYr8nI3wQ+9Rj8tw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30935},"type":"module","engines":{"node":">=18"},"scripts":{"dev":"npm run build && node bin/cli.js","build":"esbuild src/index.js --bundle --platform=node --format=esm --packages=external --jsx=automatic --outfile=dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"braverior","email":"braverior@gmail.com"},"_npmVersion":"11.12.1","description":"交互式列出并恢复 Claude Code 会话 (sessions)，箭头键选择即可进入。","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","cfonts":"^3.3.1","ink-spinner":"^5.0.0","ink-gradient":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.24.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-session_1.0.0_1781250516309_0.8729356909168449","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@braverior/claude-session","version":"1.1.0","keywords":["claude","claude-code","session","resume","cli","tui","ink"],"license":"MIT","_id":"@braverior/claude-session@1.1.0","maintainers":[{"name":"braverior","email":"braverior@gmail.com"}],"bin":{"cs":"bin/cli.js","claude-session":"bin/cli.js"},"dist":{"shasum":"bae37c9c54ed972d3fb516e03809f6bb081514ed","tarball":"https://registry.npmjs.org/@braverior/claude-session/-/claude-session-1.1.0.tgz","fileCount":4,"integrity":"sha512-sewRIePtcui6tyfDSQIZIY7ZFnyJxdyXrj2TluwX8DtbgLw68YvbnqIceXYGBR2ryszIoeDL95TvvMBELoydaw==","signatures":[{"sig":"MEYCIQCNIgi3+81zZRR190tHvCwn1sfIcBqbWOLXk4+F/a3mvAIhAPyKUbXvruI60L1XwK9KYvhzNFph65lmP9h+w7liT88B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33326},"type":"module","engines":{"node":">=18"},"gitHead":"19dfc10f814f980a3758456745400297d9510db8","scripts":{"dev":"npm run build && node bin/cli.js","build":"esbuild src/index.js --bundle --platform=node --format=esm --packages=external --jsx=automatic --outfile=dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"braverior","email":"braverior@gmail.com"},"_npmVersion":"11.12.1","description":"交互式列出并恢复 Claude Code 会话 (sessions)，箭头键选择即可进入。","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","cfonts":"^3.3.1","ink-spinner":"^5.0.0","ink-gradient":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.24.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-session_1.1.0_1782975073866_0.5998006897454096","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@braverior/claude-session","version":"1.1.1","keywords":["claude","claude-code","session","resume","cli","tui","ink"],"license":"MIT","_id":"@braverior/claude-session@1.1.1","maintainers":[{"name":"braverior","email":"braverior@gmail.com"}],"bin":{"cs":"bin/cli.js","claude-session":"bin/cli.js"},"dist":{"shasum":"c50972252cee63ea90ed8d9a80a3bc528c794267","tarball":"https://registry.npmjs.org/@braverior/claude-session/-/claude-session-1.1.1.tgz","fileCount":4,"integrity":"sha512-UXWT9ocZnke/cdeHB/zC1WyyGXhrSXr59PPs73+tpNz2nu0b6gCM/HpszE1cEfA6qJYU5/Z5pQPGoizxCHU4+w==","signatures":[{"sig":"MEQCID/UXT26oNqnhQSiCFl7PF+uD1adklQ7NmfKrNiqomiSAiAbGhgeJjW6sRsBjcqpJSz0A9nStRQvz1K0Xku0SZZuOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34859},"type":"module","engines":{"node":">=18"},"gitHead":"9436431c73179a38dfebee78aad878ef7be3e432","scripts":{"dev":"npm run build && node bin/cli.js","build":"esbuild src/index.js --bundle --platform=node --format=esm --packages=external --jsx=automatic --outfile=dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"braverior","email":"braverior@gmail.com"},"_npmVersion":"11.12.1","description":"交互式列出并恢复 Claude Code 会话 (sessions)，箭头键选择即可进入。","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","cfonts":"^3.3.1","ink-spinner":"^5.0.0","ink-gradient":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.24.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-session_1.1.1_1785309226835_0.0589500227131059","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@braverior/claude-session","version":"1.2.0","description":"交互式列出并恢复 Claude Code 会话 (sessions)，箭头键选择即可进入。","type":"module","bin":{"claude-session":"bin/cli.js","cs":"bin/cli.js"},"publishConfig":{"access":"public"},"scripts":{"build":"esbuild src/index.js --bundle --platform=node --format=esm --packages=external --jsx=automatic --outfile=dist/index.js","dev":"npm run build && node bin/cli.js","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"dependencies":{"cfonts":"^3.3.1","ink":"^5.0.1","ink-gradient":"^3.0.0","ink-spinner":"^5.0.0","react":"^18.3.1"},"devDependencies":{"esbuild":"^0.24.0"},"keywords":["claude","claude-code","session","resume","cli","tui","ink"],"license":"MIT","gitHead":"532a868bd968ba726c943d0ba5702685d83238bc","_id":"@braverior/claude-session@1.2.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Zg8ED32L7k8uDot/7jAszONDNFFJOuXrcQKLUCGMx0o4T77DzS62HyVC07FkTZvg3fXkfWlgGzk7HebExcoEEg==","shasum":"50e77b0328a6113507915e3bbf5d9722430c1fa6","tarball":"https://registry.npmjs.org/@braverior/claude-session/-/claude-session-1.2.0.tgz","fileCount":4,"unpackedSize":43483,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDekr9GMrpPIxYFSvHgnjAfwaTGMq/5+khQgF82RoEbBAIgSVFMLamWXR/I/UUGlJD39ls1tQy0qIg2r6zs0rFq8Vo="}]},"_npmUser":{"name":"braverior","email":"braverior@gmail.com"},"directories":{},"maintainers":[{"name":"braverior","email":"braverior@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-session_1.2.0_1787715950557_0.04361808600161776"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T07:48:36.157Z","modified":"2026-08-26T03:45:50.854Z","1.0.0":"2026-06-12T07:48:36.435Z","1.1.0":"2026-07-02T06:51:13.991Z","1.1.1":"2026-07-29T07:13:46.996Z","1.2.0":"2026-08-26T03:45:50.701Z"},"license":"MIT","keywords":["claude","claude-code","session","resume","cli","tui","ink"],"description":"交互式列出并恢复 Claude Code 会话 (sessions)，箭头键选择即可进入。","maintainers":[{"name":"braverior","email":"braverior@gmail.com"}],"readme":"# claude-session\n\n交互式列出并恢复 Claude Code 会话（sessions）。用箭头键选中一个会话，回车即可进入。\n\n基于 [Ink](https://github.com/vadimdemedes/ink) 的炫酷终端界面：流动渐变的 `claude` 字样 banner、随更新时间冷暖着色的列表、霓虹高亮的选中行、过滤命中高亮、键帽样式操作栏与滚动指示。界面在终端「备用屏」中绘制，**退出后自动恢复终端原貌、不留残影**。设置 `NO_COLOR=1` 可关闭颜色与动画。\n\n## 使用\n\n无需安装，直接用 npx：\n\n```bash\nnpx @braverior/claude-session\n```\n\n或全局安装：\n\n```bash\nnpm i -g @braverior/claude-session\nclaude-session   # 或简写 cs\n```\n\n## 功能\n\n- **两级导航**：`cs` 先列出**项目**（按最近活跃倒序，显示项目名、会话数、最近时间），选中项目后再列出该项目下的**会话**\n- **当前目录置顶**：项目列表第一行固定为**当前目录**（默认选中）。该目录已有会话时直接进入其会话列表；没有会话时显示 `新建`，进去即可开新会话\n- 会话列表显示：**标题**（Claude 自动生成的 ai-title，回退到首条消息）、相对更新时间、消息数；过滤时命中文本高亮\n- **新建会话**：每个项目的会话列表顶部有一个 `+ 新建会话` 入口，选中即在该项目目录下启动一个全新的 `claude`（不带 `--resume`）\n- **↑/↓** 移动，**Enter** 进入，**输入字符**实时过滤；**Esc/Ctrl+C** 在项目层退出、在会话层返回项目列表\n- **Ctrl+O 新标签打开目录**：在项目列表按 `Ctrl+O`，在**当前终端窗口**里新开一个 **tab** 并 `cd` 到该项目目录（不是启动新的终端实例），本界面留在原标签不退出，可以连开多个。支持 tmux / zellij（新建 window / tab）、kitty / WezTerm（远程控制 CLI）、iTerm2、Terminal.app，以及 Ghostty / Warp / VS Code 等（走 ⌘T 快捷键兜底）。结果会显示在过滤行右侧；首次使用 iTerm2 / Terminal.app 时 macOS 会弹窗要求「自动化」或「辅助功能」授权\n- 进入会话等价于在该会话所属目录执行 `claude --resume <sessionId>`（会自动切到正确的工作目录）\n\n## 选项\n\n```\n-c, --current        仅当前目录，直接进入会话列表（跳过项目选择）\n-f, --flat           扁平模式：一次性列出所有项目的全部会话\n-a, --all            两级模式，列出所有项目 (默认)\n-l, --list           仅打印列表，不进入交互选择\n-n, --limit <数量>   扁平/列表模式下最多显示的会话数 (默认 50)\n    --print          选中后只打印 resume 命令，不直接启动 claude\n-h, --help           显示帮助\n-v, --version        显示版本\n```\n\n## 工作原理\n\nClaude Code 把每个会话保存为 `~/.claude/projects/<项目>/<sessionId>.jsonl`。\n本工具解析这些文件提取标题、工作目录、消息数与更新时间，提供一个基于 Ink 的终端选择界面，\n选中后用 `claude --resume` 在对应目录恢复会话。\n\n## 开发\n\n界面用 Ink + React 写成 `.jsx`（渐变 `ink-gradient`、字样 `cfonts`、加载 `ink-spinner`），需经 esbuild 编译到 `dist/` 后运行：\n\n```bash\nnpm install\nnpm run build      # 生成 dist/index.js\nnode bin/cli.js    # 本地运行\n```\n\n发布到 npm 时 `prepublishOnly` 会自动构建，npx 用户拿到的包已包含 `dist/`，无需自行编译。\n\n## 要求\n\n- Node.js >= 18\n- 已安装 [Claude Code](https://claude.com/claude-code)（`claude` 在 PATH 中）\n\n## License\n\nMIT\n","readmeFilename":"README.md"}