bonds-cli 0.1.1

CLI for creating and managing symlink-based bonds
Documentation

bonds-cli

Crates.io CI Documentation License

Relies on bonds-core for core logic, and provides a command-line interface for managing symlinks.

It offers features such as creating, listing, and removing symlinks, as well as advanced functionalities like bulk operations and integration with file explorers. The CLI is designed to be user-friendly and efficient, making it easy to manage symlinks directly from the terminal.

Crates.io Size

cargo install bonds-cli

Usage

Detailed usage instructions
# for detailed usage instructions
bond --help
Adding a bond
# create a bond
bond add ~/projects/my-app
# creates a bond (symlink):
# ~/projects/my-app -> ~/bonds/my-app

# give the bond a custom name
bond add ~/projects/my-app --name foo
Listing bonds
# list bonds
bond list
# OUTPUT:
# foo (abc12345) - ~/projects/my-app -> ~/bonds/my-app  (2026-04-06 12:00)
Inspecting bond details
# inspect bond details
bond info foo
# OUTPUT:
# ID: abc12345
# Source: ~/projects/my-app
# Target: ~/bonds/my-app
# Created At: 2026-04-06 12:00
# Health: Healthy (symlink intact)
Removing a bond
# remove a bond by name
bond remove foo
# To also delete the target, use:
bond remove foo --with-target
# by ID
bond remove abc12345
Updating a bond
# Update source and/or target
bond update foo --source ~/new-source/my-app
bond update foo --target ~/new-target/my-app
# Update name
bond update foo --name new-name
Migrating bonds
# Migrate bonds from an old target directory to a new one
bond migrate foo ~/new-target/
# if the bond is located in a different location (than ~/bonds or default target), you can run:
bond migrate foo # moves it to the default target (~/bonds)
Configuration
# View current default target directory
bond config get default
# Set default target directory
bond config set default ~/my-default-bonds