vibe-git demonstrates typestate programming for managing git workflows. It
exposes a high-level McpClient that drives a VibeSession through Idle,
Vibing, and Finished states while switching branches with real git
commands.
Install from crates.io:
cargo install vibe-git
If the crate isn't available on crates.io yet or you want the latest code, you can install directly from git:
cargo install --git <repo> vibe-git
You can also use the crate directly in another project by adding it to your
Cargo.toml.
Example driving a session via the McpClient facade:
use vibe_git::McpClient;
let mut client = McpClient::new();
client.start_vibing("feature-branch");
// make code changes on the new branch
client.stop_vibing();
Run the bundled MCP client binary:
cargo run --bin vibe-git-mcp
Ensure you have a recent Rust toolchain installed. Common development tasks:
# format code
cargo fmt --all -- --check
# lint
cargo clippy --all-targets --all-features -- -D warnings
# run tests
cargo testPublishing to crates.io is automated via GitHub Actions. Pushing a tag like
v0.1.0 will trigger the workflow to run cargo publish using the
CARGO_REGISTRY_TOKEN secret.