explaingit

lra/mackup

15,230PythonAudience · developerComplexity · 2/5Setup · easy

TLDR

Mackup backs up your app config files, terminal, editor, git, shell, to a sync folder like Dropbox or iCloud so you can restore your full dev environment on a new machine with one command.

Mindmap

mindmap
  root((mackup))
    What it does
      Backs up app configs
      Syncs across machines
      Restores on new Mac
    Key Commands
      mackup backup
      mackup restore
      mackup list
    Sync Backends
      Dropbox iCloud
      Google Drive
      Any synced folder
    Modes
      Copy mode safe
      Link mode symlinks
    Audience
      Developers
      Power users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Back up all your terminal, editor, and git config files to Dropbox so a new Mac restores your full dev setup in one command.

USE CASE 2

Keep app settings in sync between a work laptop and a personal machine automatically via iCloud or Google Drive.

USE CASE 3

Migrate your entire development environment to a new computer without manually reconfiguring every app from scratch.

Tech stack

Python

Getting it running

Difficulty · easy Time to first run · 5min

Link mode is broken on macOS Sonoma 14 and later, use copy mode on those systems. Box is unsupported as a sync backend.

In plain English

Mackup is a tool for backing up the settings of the applications on your computer and keeping those settings in sync between machines. When you set up apps like your terminal, your shell, your editor, or your git config, each one usually saves its preferences in a small file in your home folder. Mackup gathers those preference files into one place so that, on a new computer, you can get back to your familiar setup with a single command instead of reconfiguring everything by hand. It runs on macOS and Linux and can be installed with Homebrew or with pip from PyPI. The main commands are mackup backup (copy your local config files into the Mackup folder), mackup restore (copy them onto a freshly installed workstation), and mackup list (show which apps it knows how to handle). There are two modes. Copy mode simply copies the configuration files into a folder of your choice, such as Dropbox, Google Drive, iCloud, or any folder synced by something else like Git. Link mode instead moves the files into that sync folder and leaves symlinks behind, so changes you make on one machine appear immediately on the others. The README warns that link mode is broken on macOS Sonoma (14) and later because the operating system no longer supports symlinked preferences, and recommends copy mode there instead. Box is also called out as unsupported because it ignores dotfiles. By only tracking pure configuration files and skipping caches, temporary files, and locally specific data, Mackup keeps a new workstation clean. It is written in Python. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
I just got a new Mac. Walk me through using Mackup to restore my full dev environment, terminal config, Vim, and git settings, from my Dropbox backup.
Prompt 2
How do I configure Mackup to use iCloud instead of Dropbox, and which mode should I use, copy or link, on macOS Sonoma?
Prompt 3
My Mackup restore put symlinks in my home folder but some apps are not reading them on macOS 14 Sonoma. How do I switch to copy mode and fix this?
Prompt 4
How do I add a custom app that Mackup does not support yet so it backs up my tool-specific config file too?
Prompt 5
What is the difference between mackup backup and mackup restore, and can I safely run backup again after the initial setup without overwriting anything?
Open on GitHub → Explain another repo

← lra on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.