{"id":24112575,"url":"https://github.com/jopemachine-playground/mac-sync-config","last_synced_at":"2025-07-26T01:05:21.325Z","repository":{"id":64301813,"uuid":"521852689","full_name":"jopemachine-playground/mac-sync-config","owner":"jopemachine-playground","description":"Sync your config files between macs through your Github repository.","archived":false,"fork":false,"pushed_at":"2022-12-04T07:09:29.000Z","size":35518,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-03T05:27:41.914Z","etag":null,"topics":["dotfiles-macos","macos","macos-configurations","macos-setup"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jopemachine-playground.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-06T05:09:33.000Z","updated_at":"2024-09-18T20:58:28.000Z","dependencies_parsed_at":"2023-01-15T09:31:04.111Z","dependency_job_id":null,"html_url":"https://github.com/jopemachine-playground/mac-sync-config","commit_stats":null,"previous_names":["jopemachine/mac-sync-config"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jopemachine-playground/mac-sync-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jopemachine-playground%2Fmac-sync-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jopemachine-playground%2Fmac-sync-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jopemachine-playground%2Fmac-sync-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jopemachine-playground%2Fmac-sync-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jopemachine-playground","download_url":"https://codeload.github.com/jopemachine-playground/mac-sync-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jopemachine-playground%2Fmac-sync-config/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267096399,"owners_count":24035366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles-macos","macos","macos-configurations","macos-setup"],"created_at":"2025-01-11T03:59:04.836Z","updated_at":"2025-07-26T01:05:21.263Z","avatar_url":"https://github.com/jopemachine-playground.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mac-sync-config\n\n\u003cp\u003e\n\t\u003cimg src=\"https://img.shields.io/github/license/jopemachine/mac-sync-config.svg\" alt=\"License\"\u003e\n\t\u003cimg src=\"https://goreportcard.com/badge/github.com/jopemachine/mac-sync-config\" alt=\"goreportcard\"\u003e\n\u003c/p\u003e\n\nSync your config files between macs through your Github repository.\n\nI made this for resolving the [keeping the consistent configs issue](https://apple.stackexchange.com/questions/30966/how-can-i-keep-settings-consistent-between-macs) between mac.\n\n⚠️ Note that this project is still Experimental, could include unexpected bug. You can issue the bug with its stacktrace using `debug` flag.\n\n## Why?\n\n- No need to write any shell scripts to sync config files.\n\n- Easy to manage lots of config files using saving those to your Github repository.\n\n- Easy to check diffs between remote configs and local configs.\n\n- Easy to Edit your config files in your local, Github directly.\n\n## Installation\n\n```\n$ brew tap jopemachine/mac-sync-config\n$ brew install mac-sync-config\n```\n\n## How to set up\n\n1. Create a repository for `mac-sync-config` through your Github account.\n\n2. Add `mac-sync-configs.yaml` to the `main` branch of the repository.\n\n3. Run `mac-sync-config push` to upload the configuration files to the repository. Note that you need to enter Github access token when you first try it.\n\n4. Run `mac-sync-config pull` to download configuration files from the repository.\n\n## Configuration\n\n### `mac-sync-configs.yaml`\n\nBelow example upload the specified config files to `mac-sync-configs` folder of the repository.\n\nYou can also specify directory path to the below paths.\n\nExample:\n\n```yaml\nsync:\n  # You can use '~'.\n  - ~/.tmux.conf\n  # You can specify directory.\n  - ~/Library/Application Support/PopClip/\n```\n\n## Multiple profiles\n\nYou can use multiple profiles for your own purpose.\n\nFor example, it could be useful when you want to save multiple config files to each profile.\n\nYou can use profile name to upload from or to the profile folder.\n\n```\n$ mac-sync-config push [profile name]\n$ mac-sync-config pull [profile name]\n```\n\n## CLI Usage\n\n```\nNAME:\n   mac-sync-config - Sync the config files between macs through Github\n\nUSAGE:\n   mac-sync-config command [command options] [arguments...]\n\nCOMMANDS:\n   push                     Push the local config files to the remote repository\n   pull                     Pull the config files from the remote repository\n   list, ls                 Show the configuration files list\n   switch-profile, profile  Change default profile. This could be useful when you need to the configuration set\n   delete-keychain          Delete keychain configurations\n\nGLOBAL OPTIONS:\n   --debug        use panic instead of log.Fatal to show stacktrace (default: false)\n   --help, -h     show help (default: false)\n   --version, -v  print the version (default: false)\n```\n\n## `mac-sync-configs` Example\n\n- [my-mac-sync-configs](https://github.com/jopemachine/my-mac-sync-configs) - my `mac-sync-configs` config files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjopemachine-playground%2Fmac-sync-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjopemachine-playground%2Fmac-sync-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjopemachine-playground%2Fmac-sync-config/lists"}