---
type: blog-post
title: Fuzzy clone (fz)
description: Fuzzy clone is a small cli tool that helps you quickly jump between git repos you contribute to
draft: false
date: 2024-03-09
updates:
  - time: 2024-03-09
    description: first iteration
tags:
  - "#blog"
---

Fuzzy clone is a tool that I've used in a variety of incarnations, I've finally
sat down and actually wrote a separate utility for it.

[fuzzy-clone](https://github.com/kjuulh/fuzzy-clone)

It exists to solve one problem, and one problem only. Quickly clone, and jump to
git repositories you collaborate to.

This gif should better display why this is so useful

![fuzzy clone usage](/assets/fuzzy-clone-demo.gif)

Do note that `,` is my alias for it `fz` is the actual command. The fully
qualified name is `fuzzy-clone`.

To get started simply:

```
brew install kjuulh/brew/fuzzy-clone
echo 'eval "$(fuzzy-clone init zsh)"' >> ~/.zshrc
fz
```

or follow the other options in the github repo.

## Why I can't live without it anymore

This might be a bit `ananas i egen juice` (self gratification), but the
alternative is horrid. I don't always remember the name of the repo I want to
clone even if I've written it myself at some point.

1. Go to https://github.com
2. Click repositories, because the homepage search, doesn't always show all the
   repos I contribute to, or is a member of
3. Search `fuzzy-clone` as an example.
4. Open a terminal
5. `cd ~/git/github.com/kjuulh`
6. `gh repo clone kjuulh/fuzzy-clone`
7. `cd fuzzy-clone`

Granted I've got a more complicated directory structure than most. But still
there are like 7 steps. It may be small, but it takes around 30 seconds to a
minute instead of 2 seconds using the utility. That is super valuable to me, and
helps me everyday when I troubleshoot stuff in some of the repositories I don't
technically own in my organisation

A bonus is that if the directory exists, I can just jump between them. Sort of
like the `zoxide zi` tool but a bit more structured
