GitShow/addyosmani/clipai
addyosmani

clipai

A visual bookmark organizer for Chrome using built-in AI

by addyosmani
bookmarkingbookmarks
Star on GitHubForknpm

JavaScript

37 stars6 forks2 contributorsQuiet · 1y agoSince 2025

Meet the team

See all 2 on GitHub →
nzakas
nzakas44 contributions
addyosmani
addyosmani19 contributions

Languages

View on GitHub →
JavaScript81.5%
CSS9.9%
HTML6.1%
TypeScript2.4%

Commit activity

Last 12 weeks · 0 commits

Full graph →

Community health

1 of 6 standards met

Community profile →
28
✓README○License○Contributing○Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Quiet · 2 discussions · Last activity 1y ago
See all on GitHub →
nzakas
Steps to take before GAOpenIssue

Before releasing this extension, there are a few steps to verify: [ ] Update the location of the Prompt API. Currently we use , and that's certainly not the final destination of the API. This should be updated in . [ ] Verify the location of the Summarizer API. It seems like it may stay at , and it should be verified before GA. [ ] Add confirmation to clip deletion. Right now, clicking on the delete icon immediately deletes the clip. It would be good to add a confirmation step so people don't accidentally delete clips.

nzakas · 1y ago

Recent fixes

View closed PRs →
addyosmani
Explore Chrome built-in AI supportClosedIssue

We are interested in trying out Chrome's built-in AI APIs (specifically the experimental Prompt AI or Summarizer API, with a fallback if not present) to add the ability to summarize the last few bookmarks a user added. This might be displayed on clicking a Gemini-style "sparkle" button. Prompt API is https://developer.chrome.com/docs/extensions/ai/prompt-api, Summarizer is https://developer.chrome.com/docs/ai/summarizer-api The main changes to the current logic might be to store enough context about the current page when a bookmark is being saved (this could either be via saving text from element with the longest text, the text from the selected node or something more clever) and then feeding this to the API as part of briefly summarizing the bookmarks. The AI APIs use Gemini Nano (a small on-device model with a smaller context window). Notes There are a few ways one could determine the element with the main content on the page for a description to be saved. One is finding the element in body with the most text such as via the below. Other approaches could involve looking at information in meta/social descriptions elsewhere in the page.

addyosmani · 1y ago
addyosmani
Improve search/keyword assignmentClosedIssue

I wonder if there's value in attempting to use one of the built-in AI APIs for better defining the keywords to assign to a bookmark entry. May be worth some brief experimentation.

addyosmani · 1y ago
nzakas
fix: Keep scroll position of clips when deletingMergedPR

I just noticed the way I implemented deleting clips meant that the entire list was re-rendered when a clip was deleted. This results in losing scroll position on longer lists of clips. This switches to using the clip timestamp instead of the clip index to better target which clip to delete and allows me to delete the clip card directly from the DOM without re-rendering the list.

nzakas · 1y ago
Structured data for AI agents

Repository: addyosmani/clipai. Description: A visual bookmark organizer for Chrome using built-in AI Stars: 37, Forks: 6. Primary language: JavaScript. Languages: JavaScript (81.5%), CSS (9.9%), HTML (6.1%), TypeScript (2.4%). Topics: bookmarking, bookmarks. Open PRs: 0, open issues: 2. Last activity: 1y ago. Community health: 28%. Top contributors: nzakas, addyosmani.

·@ofershap

Replace github.com with gitshow.dev