SaveTabs is a Chrome extension and local daemon used for keeping track of your tabs and tab groups in Chrome and Edge to make sure you never loose the URLs you have visited and grouped into tabs.
Although this is a work-in-progress, I would like to see it become a useful solution for myself and others where we can own all our own data.
Any feedback or questions in the form of issues or discussions is welcome.
AFAIK, the only prerequisites are:
- macOS (tested), Linux (untested), or Windows WSL (untested).
- The latest version of Go in your path
- A recent version of tailwindcss CLI in your path
- Chrome and/or Edge browsers installed
However, as I have only ever run this on my machine I may be forgetting something. Please file an issue, start a discussion, and/or submit a PR if you discover something I missed.
To build and run the daemon:
git clone https://github.com/mikeschinkel/savetabs
cd savetabs
makeAssuming you've cloned this Git repo as in the instructions for running the Daemon:
- Open Google Chrome or Microsoft Edge
- Open
chrome://extensionsoredge://extensions, as applicable - Enable Developer mode by toggling the switch:
- In the top-right corner (Chrome), or
- On the left sidebar (Edge)
- Click the "Load unpacked" button that appears
- Navigate to the
extensiondirectory inside your cloned repository - Select the directory (don't select any files inside it, just the directory itself)
- Click "Select Folder" (Windows) or "Open" (Mac)
- The extension should now appear in your extensions list
- You can pin it to your toolbar by clicking the puzzle piece icon, or in the toolbar and clicking the pin icon next to the extension
If you see any errors during installation, check that:
- You're selecting the
./extensionsdirectory of the repo, aka the one that contains themanifest.jsonfile - The
manifest.jsonfile is still properly formatted - All referenced files in the manifest exist in the directory
If the extension still does not appear to work:
- Check the extension's error console in the extensions page
- Try disabling and re-enabling the extension
- Ensure all permissions requested by the extension are granted
When you want to update the extension with new changes:
- Pull the latest changes from the repository
- Go to the extensions page in your browser
- Find the extension and click the refresh icon
- The extension will reload with the latest changes
- Fix partial saving of Tab Group name.
- Fix regression for filter query on Linkset postback.
Fix non-scrolling of longer lists of links- Disable triggering of events while editing label names
- Update ContentURL when edited label is returned by HTML API
- Fix "Invalid group filter foramt" for slashes ('/') in group name
- Smooth drop outline so it doesn't flash on and off
- Fix clickability of
<summary>in Menu w/o disabling expand. - Maintain menu option highlight after loading links
- API
Implement Group Type list API
- Design UI
- Popup
Check API statusImplement basic UI
- Browse
Group Types as treesTag GroupsTagsCategoriesKeywords
Groups per Group Types as tree branchesLinks per Group as leavesCapture from BrowserTitle
On-hover for on-click modal menuFor Menu Items/GroupsFor Links
Make Fixed layout w/sticky elementsMake<nav>,<thead>,<tbody>sticky
- Drag & Drop
- Move links to different groups
- Copy links to different groups
- Merge group to other groups
- Add visual feedback to illustrate successful drop
Delete moved links from DOM- Disallow dropping on same group
- Make more Like a web app
- Push back status
- Change URL on navigation
- Restore state from URL to allow bookmarking
- Make Content Nav more generic
- Use Go types
- Menu Items for Links
Rename- Delete
- Archive
- Merge To
- Capture/handle in Caretaker
- Screenshot
- Meta
- Content
- Other?
- Capture from browser
- Browser Type
- Other?
- Expand/Collapse Item for links
- Tabbed panel
- Title, Screenshot, Content
- URL exploded into component parts
- Tabbed panel
- Column resizing
- Table Row Sorting
- By clicking table Headers
- Toolbar control to add a sort
- Allow multiple sort levels
- Table Row Filters
- Use Flex to allow many filters
- Filters
- Archived — Default=0
- Deleted — Default=0
- Group/Value
- URL parts/Values
- Capture from more browser events
- TBD
- Settings
- Popup
- Configuration
- Add daemon config file,
- Allow configuring
- Submit frequency
- Sqlite DB location
- Add CLI command and switches
- Specify DB location
- Tests 5. Add daemon tests 6. Add Chrome extension tests
1.Rename to Stash or Stockpile, or...?