scm-record is a Rust library for a UI component to interactively select changes to include in a commit. It's meant to be embedded in source control tooling.
You can think of this as an interactive replacement for git add -p, or a reimplementation of hg crecord/hg commit -i. Given a set of changes made by the user, this component presents them to the user and lets them select which of those changes should be staged for commit.
The scm-record library is directly integrated into these projects:
git record -i command lets you interactively select and commit changes.ui.diff-editor configuration option.scm-diff-editor is a standalone executable that uses scm-record as the front-end. It can be installed via cargo:
$ cargo install --locked scm-diff-editor
The scm-diff-editor executable can be used with these tools:
extdiff extension.Here are some features in the UI which are not yet implemented:
Here's some projects that don't use scm-record, but could benefit from integration with it (with your contribution):
$ claude mcp add scm-record \
-- python -m otcore.mcp_server <graph>