Skip to content

repot v0.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 23:42
· 21 commits to main since this release

repot v0.1.0

The first release of repot brings a complete Git repository workflow to Linux
and macOS: organise a ghq-compatible tree, jump between projects, safely update
checkouts, publish experiments and restore your setup on another machine.

Highlights

  • Find your next project quickly. A built-in fuzzy picker, shell directory
    switching and completions for Bash, Zsh, Fish and Nushell. Neither ghq nor fzf
    is required.
  • Keep checkouts current. Bulk status and fast-forward sync, with bounded
    concurrency, JSON output and a cached-ref dry run. Safely merged feature
    branches can return to the remote's default branch when their work is proven
    preserved; ambiguous cases remain for review.
  • Start local, publish when ready. Create scratch repositories, then publish
    to GitHub or GitLab with explicit visibility and recoverable partial progress.
  • Bring your repositories with you. Find scattered checkouts, adopt or
    register them in place, and restore missing entries from a portable TOML,
    KDL v2 or YAML manifest. Registration preserves comments and symlinks into dotfiles.
  • Keep existing Git workflows. Multiple ghq roots, SSH and HTTPS URLs,
    recursive clones, bare repositories, AWS CodeCommit and bounded Go vanity
    discovery are supported. Legacy non-Git VCS backends are intentionally outside
    the scope of repot.
  • Work with agents. repot agent-guide exposes an offline guide to
    noninteractive commands, structured reports and safe automation. A local stdio
    MCP server integrates with compatible agent clients.
  • Recover removed checkouts. repot rm archives the complete checkout,
    including dirty and ignored files, the index, commits and stashes.

Safety by default

repot never commits, stashes, resets, rebases or force-pushes. Every mutating
command supports --dry-run. Sync only fast-forwards clean checkouts and never
pushes or deletes branches. Dirty, divergent or otherwise uncertain work is
reported for review. Restore leaves occupied destinations untouched, and archive
restoration refuses to overwrite an existing path.

The implementation is Rust, with native Git reads where parity has been verified.
Git remains responsible for authentication, networking and checkout mutations.
Correctness is checked through binary end-to-end tests, deterministic repository
and manifest simulations, terminal tests, and native, container and Nix gates.

Install

Release archives cover macOS and Linux on x86-64 and ARM64. Linux builds target
glibc. Download the matching archive and verify it against SHA256SUMS; each
archive includes the binary, license and documentation.

brew tap niklas-heer/repot https://github.com/niklas-heer/repot
brew install niklas-heer/repot/repot

Or build the pinned release through Nix:

nix profile install github:niklas-heer/repot/v0.1.0

Git is required for repository operations and is supplied by the Homebrew and Nix
packages. Publishing additionally uses gh or glab. AWS CodeCommit transport
uses Git's CodeCommit helper; AWS CLI is needed only for fallback region lookup.

Follow the quick start,
installation guide
or configuration reference.