Automatic GitHub sync for local project folders.
GitMo (Git Mobile) is a small Linux-first desktop app for keeping project folders synced to GitHub automatically.
Think of it as a poor-man's Google Docs for code, notes, drafts, and project folders: you work in normal files on your computer, and GitMo quietly turns each selected folder into a GitHub-backed repo with autosaved commits.
Git is powerful, but it is easy to forget the repetitive parts: create the repo, set the remote, commit, push, pull, check status, and repeat. GitMo wraps that workflow in a simple desktop app so local folders can stay backed up and visible on GitHub without living in the terminal all day.
GitMo is useful when you want:
- Automatic backups of active project folders
- A GitHub repo created from a plain local folder
- Simple clone/setup for repos that exist on GitHub but not locally
- One folder per repo, organized under a GitMo folder
- Lightweight two-way sync for solo work or low-conflict workflows
- A plain-file workflow instead of a cloud document editor
- Lets you choose a GitMo root folder
- Treats direct child folders as possible GitHub repos
- Lists your GitHub repos beside local folders
- Clones GitHub repos that are missing locally
- Creates GitHub repos for local folders that are missing remotely
- Initializes plain folders as git repos when needed
- Creates a root
README.mdfor new folder repos when one does not exist - Commits and pushes local changes using
GitMo autosave - Supports one-way and two-way sync modes
- Logs activity to
~/.config/gitmo/gitmo.log
one-way
Local changes are committed and pushed to GitHub. Remote changes are detected, but GitMo does not pull them into the local folder.
two-way
GitMo fetches remote updates and pulls fast-forward changes. If both local and remote changed, GitMo pauses that repo and reports a conflict instead of trying to guess.
- Linux
- Python 3
- Tkinter
git- A GitHub personal access token with repo access
GitMo uses the GitHub REST API and the local git command-line tool.
From this folder:
python3 app.pyOr double-click GitMo.desktop.
Some file managers may ask you to trust or allow the launcher the first time.
- Start GitMo.
- Paste a GitHub personal access token.
- Choose your GitMo folder.
- Open
Manage Repos. - Select the folders/repos you want GitMo to manage.
- Choose
one-wayortwo-way. - Click
Apply Selection.
After that, GitMo can run in the background and sync selected repos.
If you add a new folder inside the GitMo folder:
- Open
Manage Repos. - Select the new folder.
- Click
Apply Selection.
GitMo creates a GitHub repo with the folder name, initializes git if needed,
adds a README.md if one is missing, commits the folder contents, and pushes
everything to GitHub.
If you create a repo on GitHub:
- Open
Manage Repos. - Select the repo.
- Click
Apply Selection.
GitMo clones it into the GitMo folder and starts tracking it.
Config:
~/.config/gitmo/config.json
Logs:
~/.config/gitmo/gitmo.log
Older config files at ~/.config/gitlo/config.json are read automatically
during the app rename transition.
- GitMo is designed for simple folder-to-GitHub sync, not complex team merge workflows.
- Two-way sync only pulls fast-forward updates.
- Conflicting local and remote changes require manual git resolution.
- Autosync currently uses a polling loop with a 60 second debounce.
