Keep your Chrome bookmarks in sync with GitHub. One-way sync from your repos to your browser.
Chrome Web Store
- Connect your GitHub account and select repositories to sync
- Define bookmarks in
manifest.jsonwithin your repo - Supports both URLs and bookmarklet files
- Automatic periodic sync (configurable interval) + manual sync
- Skip-if-unchanged optimization using commit hash
Create a manifest.json in your repository.
- Schema:
Array<{ name: string; location: string; }> locationcan be a URL or a relative path to a bookmarklet file in the same directory
Tip
You can place multiple manifest files in subdirectories, and each will create a corresponding bookmark folder.
[
{
"name": "Example URL",
"location": "https://example.com"
},
{
"name": "My Bookmarklet",
"location": "./my-bookmarklet.js"
}
]my-repo/
├── bookmarks/
│ ├── manifest.json # -> TargetFolder/
│ ├── my-bookmarklet.js # should be referenced in the manifest.json above
│ └── tools/
│ └── manifest.json # -> TargetFolder/tools/
└── README.md
- Install GitMarks and open the options page
- Create a Fine-grained Personal Access Token on GitHub
- Repository access: Select the repositories you want to sync
- Repository permissions: Contents → Read-only
- Sign in by entering your token in the GitMarks options page
- Click "Add Connection" and select a repository
- Configure:
- Source Directory: Path to the directory containing
manifest.jsonfiles (e.g.,/bookmarks) - Target Folder: Chrome bookmark folder where bookmarks will be synced
- Target folders for different connections must not overlap (no ancestor/descendant relationships)
- Source Directory: Path to the directory containing
- Automatic Sync: Enabled connections sync periodically
- Manual Sync: Click "Pull" on any connection to sync immediately
- Toggle: Enable/disable connections without deleting configuration
- Disconnect: Remove a connection entirely
make deps # Install dependencies
make dev # Start dev server
make typecheck # Type checking
make lint.fix # Linting
