GitHub - treadiehq/boot: Dropbox for ~/[code] · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading. Please reload this page.
treadiehq
boot
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>11 Commits<br>11 Commits
.github/workflows
.github/workflows
docs
docs
scripts
scripts
src
src
.gitattributes
.gitattributes
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
package.json
package.json
pnpm-lock.yaml
pnpm-lock.yaml
tsconfig.json
tsconfig.json
View all files
Repository files navigation
Boot
Dropbox for ~/[code] — it syncs the map of your workspace, not the files.
You have a folder full of git repos. boot remembers its shape, which repos live<br>where, and recreates it on any other machine. Repos arrive as tiny<br>placeholders and turn into real clones the moment you open them, so a new<br>laptop (or cloud agent) is ready in seconds, not gigabytes.
It also syncs your env vars (encrypted) and runs a small background daemon<br>so no machine ever builds on a stale main.
Two promises, really:
Never build on a stale base. The daemon keeps every machine current and<br>fast-forwards clean repos, so you stop wasting time on "wait, why did it build<br>the old main?"
A fresh box or cloud agent has your exact workspace in seconds. One command<br>and your whole layout is there, repos hydrate the moment you touch them.
boot doesn't replace Git or live-sync your edits. It syncs structure and<br>secrets, not a real-time copy of your files.
Install
macOS / Linux (needs curl):
curl -fsSL https://raw.githubusercontent.com/treadiehq/boot/main/scripts/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/treadiehq/boot/main/scripts/install.ps1 | iex
Installs a standalone binary (macOS/Linux on x64+arm64, Windows on x64). Git is<br>required for boot's repo syncing. Update anytime with boot update.
Use it
Once, ever: create an empty private git repo to hold the map. boot clones<br>this remote, it won't create it for you. So make one first on any host and<br>leave it empty (your first sync seeds it). A name like code-map works well.
Then one command sets up each machine. It links the workspace, creates a secret<br>key, installs the shell hook and background daemon, and prints a health check:
boot setup git@github.com:me/code-map.git ~/code
Run the same command on your next machine and your whole layout shows up as<br>placeholders that hydrate when you touch them. It's safe to re-run anytime.
You don't have to remember to sync. The background daemon that setup installs<br>pulls and pushes the map for you (every 60s by default), so a repo you add on<br>one machine shows up on the others on its own. boot push / boot pull are just<br>on-demand escape hatches. Most days you never run them.
Handy commands
Command<br>What it does
boot setup [path]<br>Set up (or update) a machine in one shot.
boot push<br>Manually publish this machine's layout (the daemon already does this).
boot pull<br>Manually pull the latest layout (the daemon already does this); --dry-run to preview.
boot cd<br>Fuzzy-jump to any repo in your map, hydrating it on the way (use the bcd shell function).
boot hydrate<br>Turn a placeholder into a real clone.
boot env key share / receive<br>Move your encrypted secrets to a new machine with a passphrase.
boot agent [path]<br>One-shot bootstrap for CI / cloud agents.
boot update<br>Update boot itself to the latest version.
boot doctor --system<br>Check how a machine is wired up (link, key, hook, daemon, FUSE).
Env-var sync, the Dropbox-folder transport, FUSE mounts, and the full command<br>reference live in docs/detailed.md .
Dev
# run from source<br>pnpm build # bundle (dist/index.js, needs Node to run)<br>pnpm test # tests<br>pnpm demo # narrated, offline two-machine walkthrough (great for showing off)<br>pnpm build:binary # standalone binaries for all platforms (needs Bun) → dist/release/">pnpm dev cmd> # run from source<br>pnpm build # bundle (dist/index.js, needs Node to run)<br>pnpm test...