Your dotfiles, on every machine.
One binary syncs them over SSH. No server, no account.
$ brew install burrow$ cargo install burrow$ curl -fsSL script-url | shMIT licence / one binary / plain SSH
-====-
=======: **=---====
*=: :--=- +* :: :=+=
=+ : -==- *- :++- :++
-+ -+++-::: :++- *- -**-::+#
*-****=: :: :*+=# :=#*=::=#
*+####*+- =#** -*+#+---**
+%#####*+- *%==- : =##+*=--=*:
-@###**#*+- :=##==+++=*#%+=+=--*=
@%*#*+***+-: -=*%#-=%%###%#+++--+*
#%=++*++++==- =*%%+:-#%%%%%*===-+*
=@---=+==++=-: -*#%#=:-*%%%%*=-==+#
%+ :-===------=#%%*- -*%#%#+=-=+#:
*# -=------:-*%%%+:--*%%#+=--+*-
@- -==---:--+#%%*---=#%#+=--=#-
*% -=-:-:--=*%%%+---=#*+---=#=
%+ -=-:-::=*%%%*----**+----*=
-@= =+= -+#%%#+---=*+-::-*+
=@+ :-*#+- :+%@%+---=+=-:-=*+
-%* :-=**#+ -#%#=----+=:---++
#%+: -==-*%+ +%#==---+=:::-++
-%%##*+-=*#- #%+--::==: :+= :
-*#%#=-*#* +@#+=: =*- ::+-
-*+*+*- #**+--+%#==+#* :
-%++=+:*%++---=##==-*= - :
*%=+==+***-:--=++***++=-: : :
%*====+***=-:- =+*=-+***+*+=--: ::
=@===++*+++- :+*##+==+*#*+*%%#*++-
##==+++*===--=#%#*%@@%##*+-+**##*-
-%==+++==+=++=+*+#%+----==+*+-=+*#+-
=%%==++++=+***+=-*# **--*-+@@+:-=+**+:
-*@@@+-=+*+-+++++--#@=+*-=*- #@#*+-==+*#+
=%@#=======+====-:=#%+=+=-==+%%@%*++==*#*- :
=#@@*-:-===+=-=+==- -++=---===*%%%%##*=+*##+-
=#@%=:===++--=++++==++===+==-: =##%#%#*+++=*#+::::
+@@+:=+-====+++**--**#**#**+==-:+###**+**++**##-
+@@#- =+=++==++**=+=+*#*##***++-:=**+=+*##%#+++##-:
*@@*=--++*+=+--+**%*+*######*+=:-=+==+++**#%- +#
*@@*=-=-=+=**+++=+*++++**##**++--++==-=++++#%+=+-::
=%@#----:=+*##*****+++++******+=+*=-=-====++*#@#--
:=#%*--:-=---=++*##*#####****+++*###++*++++++*#%*=-:
:#@*::--=---:::=-=+*******##***##########**#%###+--:::
-#@+-:::-=++=++*+=*++=+++++*+=+++*%%#%%#*###%#*=-=-::
=*#*%@#= :=*+*+=++**+*+==++==++++++##*++++=-====*=+- --::
:=#@%%=+##=-: ++==++#*++--=+*+====++**#@%- : - - =-+=== :: :
=##**##+- --==- =======-=*+*+**=+++++++*#@%=:- - - ::-=-=- : :
=%@*++=*+==- =*++-+***=+=+#**+==+#++*++**#@@+=: - : : =--=-
-#@*=+-:----=+-:-**+#**+*#*--+**==##++****##@@*+ : -= :=:
:+%@+=- : =---=*++==*+==*+*+===**==**+++****##@@%=:: : -- :-
=*#%@*=: -=--=-=+=++++*+==+**++#**+:+#*+=+****##@@%=: - -
:=#@#*#+:=: -==-++==-=-+++#+**+=-+***+-+#**==+*#*##%@%+- :: :
-###%*=+= - :=--=-+======+==******+**#*=+*+*+**+**###%@@+: -
=*%%***=--=-==-:====--===+-=++++#*#****==***+=-+#**##%%%@@#=- :
:=*#%%%+=+= -=+-----==---====+===+++#****==*#*++*=++++##%%%@@*-
:+**#*=+= ++ +=:-::-=-++=+==+==-=+==+***##+****+#*++*++*#%%%@@%+-
-+**+*+ ==- --=-:*+ -=+=**++*==--====+++*+#*#+*#***+=*#*+*##%%@@%+-
:*%#*##+ -+-- -=+=--====+*+=+*+=-+-:====*+=++*##*#*##++**=+#**#%%@@@#-
+%%+-*+=- +=: : :=+=- -+*++=**++++=----======+++********##++++##%%%%@@*=
+#@#==+= ---+=-=-:--==+=*+++**#***+=-::=-===+====++***#*##+******#%%%@@@#-
+%##+--++=--:-=====::=++*+++=++**+*=---=--:-=+++=-=+***#**#*+***+**#%@@@@@#-
:###+*-=====- -++:==-+*=*#++*+*++**+===*+-==--=*++-=+**##*##*+*+=++**#@@%@@@+-
=%*+===-=+- -=:=- +++*++=**++**=**+-**+=-=+- ==+*+-++*##*##****+==+**#%%%@@%+-:
:*%+=+-=::-==---*=+*+=*+=+*+=+**+++*#+==*==--+= =++=+++++**#*#***#*=*++###%%%@@#=
-##++#= :=:++=-:-+*+++**+++**+++**+*==*+---++==-==+==+++++**#*****=+#***##@%%@@*-
+%#=+*---- =:=++=--++**+++*+*##*==+*++=*#+:+++-==+--===++++*******++++**+*#%%%%@@*-
*#*-:=:= *==- -+*====+**#+*++*+*+#*=+**++*--+*+-+=--==-+++++*#**#*+=*++++**#%%%@@#+-
##=:-*-=:=*== : -=+++=++*+**+=+*+*#*==*#*++==-+++=====--++++******++**+++**#%%%%@@#-:
-##=-=*=--:=*= ++==-+*+++==++**+**+***+++*+*+*+==+=-++-= ==*********++++=++**#%%%@@*+=
=#%*--++---: =-=*=++==++=*++++++++**+++**+*=**#*+-==+===-:=+********++=+*=+**#%%%@@#=:
+%%#----+- -+=-*=-=+--=====+++**=+**++*###*=##**+=+=+===--=+***+**++=+-+*+**#%%%@@%+
*#+*=: -===+**=-==+=-=+**+++==++++*#*******#*+**#**+==+====+++*+++++=++++**##%%%@@%*=:
+%+== -:========- -**=**==++++++**#****##*****#*+*##*+++++==++=+++++===++++*#%%%%@@#+=-:
=#+- ===-*+- --=====-=*#****+*******+***#*###*+#%***#****+++++==+=+++==++++*#%%%@@@%+:
:%*-:==+=-=+-:-=++=*+++++***++++++++++++*****###*##**###****+++====++=+++++*#%%%@@%%#+:
##+-+*=- ++-=:-+*#*+#*-+*=====--=------===++**##*##*####*****++=====+++++*%%%%@@@*=-:
*%*+-=+=-::=+===-=+++**+===--=======+++=+==--=++**#########*****+++===++++*%%%%@@%*=
=%**- =+=+- -+=**=++=++-:--==-=+==++=*++*****++==+**#%%%#********+*++=-=+=+#%%#%@#+-
**=+=--= *#+++**==-===-----=+=--=+++**#####*#*+=*##%%%##*++++*++++=-=+=*%#**%%+:
-%==--+ :==*-=*++*=:-====-----==++++=***###########*+*#%%%%#*++++++++++=-=+#*++##=:
*#=== - -**+-++++- =-----=====*+++*#***#*#####%%####*+*#%%%%#++*+++++++=--+#+=+#*
:%*+-+:=+:+*--=-+= ====-=++=++*+++=+#*#*#*##*###%##%##**#%%%%#*+*+++++++===+%+=+#+
+#+=:-+**----+=*= :=-===+*+**+++*+************####%####*##%%##**##+++++=+==+%+=+#+
#*+=+===+- =**=---++++*+++=+*++=+#********++**####%%%###########%%*+++++===+%*++%+
-#****=-- =-=+:-=++++++===*++=+***++*****+*+*#*####%%%##########%@%#+++==++=+#*++%*
+%%+=+ --=+=+-=++*++=-=+++++=++***+****++=*******##%%%#########%@@##*++===++=*#++##
=%*--+:--=++-=*+=+=-+=++===+*#++++****+=*****+***##%%%%######%%@@@*+%*+=====++#++*%:
+##+:=+===+*+++=:-==++:-=+#*+++****++=++**+*++++**#%%%%#####%%@@@#*+*#++===+++#*+*%-
:-#*=--=- =++==--==+- =+***++*+**#*++******++====+*#%@%%####%%@@%#*--+%*++=+=++*#+*%+
*#+---==:--:-==++=-+*+++********++******++=====+*#%%%%#%%%%@@@#-----#%*+++=++*#**%+
+#=-::=+= :=+=:*+====+*******++=+**++*+++==--=-=*%%%%%%%#%%@@@*= *@#++=+++****#*
=*=---=-:==+- +*--=+++**++*+++=+**+*+++==-- ---+#%%%%@%##%%@@@+: :+@%+++++++***##
+#=:-=: -=-:=+=--+*++=+++++==+*++++===--- --:=#%%%%@@%##%@@@#+: -#@#++++++****#-
=#+- -===- =*-:++=++=+++*++=++**+++++=-- :::+#%#%%@@@%#%@@@%=- +@%*+=++++*+*%-
#*+=:--=+-== =*+=++++++===+*+**+*+++===::-+###%%%@@%%%%@@#+- +@@**=++++**+%=
=#+=----=-==-=+-=*++++=-++**+++++++=+==:-+*###%%@@%#%%@%#= -#@#*-+++++*+#+
=*--=-=--=+++=-*=+++==+**++=++========-+***#%%@@%#%@@@*-: :*@#*=+++++**##
:+*###*+*+-----==+===++=++--+*+==++==------==++**#%%@@%%%@@@*- =%%#+=**+++**#
-*%@@@@@#===-=--=-======++--+++==++==+==- --==*+*#%%@%%%%@%#+= =%@#***++++**#:
-*@@@@@%*- :=-:----==+===--+++=+*+====-::--==***#%%@%%%@%#+- :%@#*++*+++**%-
-+#@@@@%#+- :-----====+---++=+++++-=------=+***#%%@%%%@%*+- -#@#*++*+++####
=#@@@@@%#*= -=-=++-===+=++=+++==----=--=+***#%%@%%@%#*- +@%+++**++*#*%#
+%@@@@%%#*=: :=+=-==-=+++=++=-== --=--=+##*#%%%@@%#*=----==++++****=--- :%%+=++**+**%+#*
-*@@@@@%##*+- ==-=--+==+++=--:- ----++*##*#%%%#%%###%%%%@@@@%%%%#####**#* *%+++**+++*#*%*
-=*%@@@%###*+- :-=-====+=---:::----++**+*+******#######**++==+===+++=++*@% +*=****=++#%#@%*+*#+
-#@@@@%#***+=---=========--=++==-=++++=+++++++++++*+++++==+++=--+*+++++#@+ +++**+++*++++*%+=*@#
-==+*#@@@%**+====-===+++===++++===++++=+===++=+*+++====+++*++**=-=+**++*#%+=*======++-=++##+=+%%+
:-***##*+=--::-:-+===+====+++++++==+========-----===+==+****=-+***=-+=--+--==++**=-++*##*+**#
: :-:::: : ------ :---: : ----: :------
Small on purpose.
Everything it needs is already on your machines.
- # servers
- 0
- # binary
- 1
- # ways to install
- 3
- # licence
- MIT
One sync, every host.
Each host is reached directly over SSH. Nothing sits in the middle.
~ $ burrow add ~/.zshrc ~/.gitconfig ~/.config/nvim tracking 3 paths ~ $ burrow sync desk pi work desk ssh 3 files done pi ssh 3 files done work ssh 3 files done ~ $
+----------------+
+--ssh--| desk |
| +----------------+
+------+ | +----------------+
|laptop|-+--ssh--| pi |
+------+ | +----------------+
| +----------------+
+--ssh--| work |
+----------------+
no server
Three commands.
That is the whole tool.
- $ burrow add <path>
- Track a file or a folder.
- $ burrow sync <host>…
- Copy what is tracked to each host, over SSH.
- $ burrow status
- The last sync, host by host.
What you get to delete.
No server in the middle, so nothing to keep running between syncs.
- @@ how your dotfiles move @@
- a server in the middle
- something to keep running between syncs
- the ssh you already use
- one binary
- source under the MIT licence
Install it your way.
Then run burrow add on the first file you miss.
- Homebrew
$ brew install burrow - Cargo
$ cargo install burrow - Script
$ curl -fsSL script-url | sh