Short for mnemosync. A CLI tool that lets you add folders to backup manually to a target Git repository.
The name is inspired by the Greek Goddess of memory Mnemosyne.
This installation guide assumes you know how to create and set up a Git repository.
Always backup your files before using mmsync.
go install github.com/bladeacer/mmsync@latestEnsure that you can access Go binaries in your $PATH.
mnsWIP. See this GitHub project for the progress tracker.
This is my first project using the Go programming language, but I hope it will be useful.
-
Check if required binaries are available before calling the tool
- Required binaries:
git, rsync, tar, zip
- Required binaries:
-
Help command line flag
-
CRUD target directories which user wishes to backup e.g.
-
rsyncto mirror said target directories to a~/.mnemosync/folders- Either manually triggered or we integrate
cron
- Either manually triggered or we integrate
-
Wrapper for user to manually copy the files and push them in their Git repository
-
Wrapper to let user set default commit message format
As this is my first project using Golang, I initially used some AI assistance for syntax, with the larger commits in the earlier iterations of the codebase.
These days, I have been trying to avoid relying on LLMs too much.
This Golang CLI app, "mnemosync" is released under the GNU General Public License version 3 (GPLv3) License.
This file is part of mnemosync. mnemosync is a CLI tool that lets you add
folders to backup manually to a target Git repository.
Copyright (c) 2025 bladeacer
mnemosync is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later version.
mnemosync is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with mnemosync.
If not, see <https://www.gnu.org/licenses/>.
You can find the license file here.
This CLI was made possible by Cobra CLI.
View currently available options by running mnemosync without any flags or arguments.
There is also mns man for a generated manual page.
| Command | What it does | Implementation Status |
|---|---|---|
mns |
Main help text to stdout. | Done |
mns init |
Initialise a new configuration file with default values. | Done |
mns config |
Manage configuration file. | WIP |
mns completion |
Generate autocompletion script for target shell (Cobra CLI builtin) | Done |
mns health |
Check Health and installation of dependencies (optional or not) | Done |
mns help |
Get help text for specific command (Status depends on target command) | WIP |
mns man |
Generates the manual page and displays with less | WIP |
mns add |
Add target file/folder with target with alias support. | WIP |