Skip to content

Repository files navigation

renview

帮助人类降低认知负担的代码审核工具。对 git diff 做语言感知的投影(签名/实现/类型变更分层),支持逐级披露与原始 diff 回退。

安装

curl -fsSL https://view.bandwidth.ren/install | bash   # macOS / Linux / Git Bash 下的 Windows
#
npm install -g renview                                # bun / pnpm / yarn 全局安装亦可

安装到 ~/.renview/bin 并自动配置 PATH(--no-modify-path 跳过)。支持平台:macOS(arm64/x64)、Linux(x64/arm64,glibc)、Windows(x64/arm64);musl(Alpine)暂未支持。安装脚本经 npm registry 分发并校验 sha512 完整性,可用 RENVIEW_REGISTRY 环境变量切换 registry 镜像(如 https://registry.npmmirror.com)。

注意:浏览器手动下载 GitHub Releases 的 tar.gz 会带 macOS quarantine 属性,未签名二进制首次运行需在「系统设置 → 隐私与安全性」放行(或 xattr -d com.apple.quarantine renview);安装脚本与 npm 渠道无此问题。

升级:

renview upgrade         # 升级到最新版(脚本安装会重跑官网脚本;npm/bun/pnpm/yarn 安装会调对应包管理器)
renview upgrade 0.2.0   # 升级到指定版本

启动时若发现新版本会提示一行(24h 缓存、不阻塞);在 config.tomlupdate_check = false 或环境变量 RENVIEW_DISABLE_UPDATE_CHECK=1 可关闭。

使用

renview                    # 审阅未提交变更(working tree vs HEAD,含 untracked 新文件)
renview --staged           # 审阅已暂存变更
renview main...HEAD        # 审阅分支区间
renview -C ../project      # 指定仓库目录
renview HEAD~3 -- src/     # 指定区间与路径
renview -p 8080 --no-open  # 指定端口、不自动打开浏览器

未跟踪文件仅补入工作区审阅;--staged 和提交区间审阅不包含工作区草稿。

--cwd <路径>(简写 -C)指定工作目录,支持相对路径和仓库子目录;默认当前目录,审阅范围仍以仓库根目录为准。

-C/--cwd-p/--port--no-open-h/--help-v/--version 外,参数原样透传给 git diff-- 后的内容一律作为路径参数透传。启动前会执行 diff 校验,命令失败时在终端报错退出,不启动服务或打开浏览器。

默认使用端口 17171,被占用时依次尝试 1717217173……;显式指定 --port 时只使用该端口,占用则报错。

界面含「变更 / 浏览」两种模式:变更 = diff 审阅(默认简化视图,可回退原始 diff);浏览 = 完整文件的只读简化视图(可切源码、声明大纲跳转)。

变更视图显示函数归属,可按需展开隐藏上下文;文件名旁的两个按钮分别用于全部展开上下文、全部折叠以恢复默认范围,不影响简化视图内的折叠。

配置

配置文件为 TOML 格式,位置:$XDG_CONFIG_HOME/renview/config.toml(默认 ~/.config/renview/config.toml),Windows 为 %APPDATA%\renview\config.toml

# 界面语言:BCP 47 标签,按根语言匹配(如 zh-TW 归为 zh-CN);支持 zh-CN、en
# 不设置时自动检测系统语言(LC_ALL/LC_MESSAGES/LANG),匹配不到回落英文
language = "zh-CN"
# 界面主题:auto(默认,跟随系统)、dark、light
theme = "light"
# 代码字体:逗号分隔列表,未安装时回落到内置系统等宽栈
font_family = "JetBrains Mono, Sarasa Mono SC"
# 代码阅读区字号(px,默认 12),行高随字号联动
font_size = 13
# 启动时被动检查新版本并提示一行(默认 true)
update_check = false

保存后窗口重新聚焦即生效,无需重启。配置写坏(语法/类型错误)时回退默认值并在终端提示,不影响审阅。

开发

bun install
bun run dev                      # 同步 wasm + 构建前端 + watch 启动 CLI
bun run test                     # 同步 wasm 并运行全部测试
bun run typecheck
bun run build                    # 交叉编译全平台单文件二进制到 dist/
bun run scripts/build.ts --host  # 仅编译本机平台
bun run scripts/pack.ts          # 组装 dist/npm/(6 个 npm 包)与 dist/release/(tarball + checksums)
bun run gen:demo                 # 重新生成 www 演示数据(samples/demo → www/src/lib/demo-data.gen.ts;新鲜度由 samples 测试锁定)

# 发版(tag 触发 release.yml:构建 → 5 平台冒烟 → npm Trusted Publishing + GitHub Release)
# npm version 会自动改 package.json + 提交 + 打 v 前缀 tag;tag 提交必须在 main 祖先链上,否则 CI 拒绝
npm version patch                # 或 minor / major
git push --follow-tags

# 体验(以本仓库最近 5 个提交为样本,换成任意真实仓库与区间皆可)
bun run dev HEAD~5

决策记录

重要且无法从代码直接读出的产品取舍见 产品决策;实现与验证以代码、测试和提交为准。

About

agent 时代的代码审阅

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages