TextVault is a Chrome extension that lets you highlight any text on the web, tag it with a custom heading, and save it into organized files (notebooks) β all while preserving the source URL, page title, and timestamp. Think of it as your personal web clipping tool, right inside your browser.
While browsing the web β reading articles, research papers, documentation, or social media β you often come across text you'd like to save for later. TextVault makes this effortless:
- No copy-paste hassle β just highlight, right-click, and save.
- Source tracking β every note automatically records where it came from.
- Organized notebooks β group related notes into named files.
- Heading support β label each note so you remember why you saved it.
- Export to .txt β download your notes as clean, formatted text files.
| Feature | Description |
|---|---|
| π±οΈ Right-Click to Save | Highlight any text on a webpage β right-click β "π Save to TextVault" |
| π·οΈ Custom Headings | Every note requires a heading so your notes are always labeled |
| π Multiple Files | Create multiple files (notebooks) to organize notes by topic |
| π File Selection | When saving, choose from existing files or create a new one on the spot |
| π Search & Filter | Search across all notes by text, heading, URL, or file name |
| π₯ Export as .txt | Export any file as a beautifully formatted text document |
| ποΈ Delete Notes/Files | Remove individual notes or entire files when no longer needed |
| π Source URLs | Every note stores the full URL and page title of its source |
| π Timestamps | Know exactly when each note was saved |
| π Dark Theme UI | Premium dark interface with smooth animations |
Download the extension files to a folder on your computer. The folder should contain:
Assignment-1/
βββ manifest.json
βββ background.js
βββ content.js
βββ content.css
βββ popup.html
βββ popup.js
βββ popup.css
βββ icons/
βββ icon16.png
βββ icon48.png
βββ icon128.png
- Open Google Chrome.
- In the address bar, type
chrome://extensions/and press Enter.
- In the top-right corner of the Extensions page, toggle Developer mode to ON.
- Click the "Load unpacked" button (appears after enabling Developer mode).
- Browse to and select the
Assignment-1folder. - Click "Select Folder".
- Click the puzzle piece icon π§© in Chrome's toolbar (top-right).
- Find "TextVault β Highlight & Save Notes" in the list.
- Click the pin icon π next to it so it's always visible in your toolbar.
β Done! TextVault is now installed and ready to use.
This is the core workflow β saving any text you find on the web.
Steps:
- Navigate to any webpage (article, blog, documentation, social media, etc.).
- Highlight the text you want to save by clicking and dragging your mouse over it.
- Right-click on the highlighted text.
- Click "π Save to TextVault" from the context menu.
A floating dialog will appear in the center of the page:
- Text Preview β shows a preview of what you highlighted.
- Source URL β automatically captured from the page.
- Note Heading β (required) type a descriptive heading for this note (e.g., "Key takeaway from research", "Python syntax tip", etc.).
- File Selection β choose an existing file to save into, OR create a new file.
- Enter a heading for your note.
- Select a file from the list (it will highlight in red when selected).
- Click the "Save to [filename]" button.
A toast notification at the bottom-right confirms the save. β
Files act as notebooks β you can create as many as you need to organize notes by topic.
From the Save Dialog (while saving a note):
- At the bottom of the save dialog, type a name in the "New file name..." input.
- Click "+ Create" or press Enter.
- The new file appears in the list and is ready to be selected.
From the Popup (extension icon):
- Click the TextVault icon in your Chrome toolbar.
- Go to the π Files tab.
- Type a name in the "New file name..." input.
- Click "+ Create".
- Click the TextVault icon π in your Chrome toolbar to open the popup.
- The π Notes tab shows all your saved notes, sorted by most recent.
Each note card displays:
- File badge β which file the note belongs to (shown in red).
- Heading β the title you gave the note (shown in bold).
- Text β the highlighted text content.
- Source link β click to revisit the original page.
- Timestamp β when the note was saved.
The Notes tab includes powerful search and filter tools:
- Search bar π β type to instantly filter notes by text content, heading, URL, or file name.
- File dropdown β select a specific file to show only its notes, or choose "All Files" to see everything.
You can download any file as a clean, formatted text document.
Steps:
- Click the TextVault icon in your toolbar.
- Go to the π Files tab.
- Click the π₯ export button next to the file you want to export.
- A "Save As" dialog will appear β choose where to save the
.txtfile.
Exported file format:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TextVault β My Research Notes β
β Exported: 4/8/2026, 3:30:00 PM β
β Total Notes: 2 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[Note 1 of 2]
Source : https://example.com/article-about-ai
Page : Understanding AI β Example Blog
Saved : Tuesday, April 8, 2026 at 03:15 PM
## Key Insight on Neural Networks
Neural networks are computing systems inspired by biological
neural networks that constitute animal brains. They learn to
perform tasks by considering examples.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[Note 2 of 2]
Source : https://docs.python.org/3/tutorial/
Page : The Python Tutorial β Python 3.x Documentation
Saved : Tuesday, April 8, 2026 at 03:25 PM
## Python List Comprehension Syntax
List comprehensions provide a concise way to create lists.
The syntax is: [expression for item in iterable if condition]
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
End of file β 2 note(s) saved in "My Research Notes"
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Delete a single note:
- Open the popup β π Notes tab.
- Hover over the note card β a π delete button appears in the top-right corner.
- Click it and confirm the deletion.
Delete an entire file (and all its notes):
- Open the popup β π Files tab.
- Click the π delete button next to the file.
- Confirm the deletion.
β οΈ This removes all notes inside the file.
Assignment-1/
β
βββ manifest.json β Extension configuration (Manifest V3)
βββ background.js β Service worker: context menus, storage, export
βββ content.js β Injected script: floating save dialog on pages
βββ content.css β Styles for the save dialog & toast notifications
βββ popup.html β Popup UI structure (opens from toolbar icon)
βββ popup.js β Popup logic: tabs, search, file management
βββ popup.css β Popup styling: dark theme, animations
βββ README.md β This file
β
βββ icons/
βββ icon16.png β Toolbar icon (16Γ16)
βββ icon48.png β Extension page icon (48Γ48)
βββ icon128.png β Chrome Web Store icon (128Γ128)
| File | Role |
|---|---|
| manifest.json | Declares the extension's metadata, permissions (contextMenus, storage, activeTab, downloads), and file references. Uses Manifest V3. |
| background.js | Runs as a service worker. Creates the right-click context menu. Handles all CRUD operations (create/read/update/delete) for files and notes using chrome.storage.local. Manages .txt file export via the Downloads API. |
| content.js | Injected into every webpage. Listens for the "Save to TextVault" context menu click. Builds and displays the floating save dialog. Handles file selection, new file creation, heading input, and saving. |
| content.css | Styles the floating save dialog, heading input, file list, save button, and toast notification. Uses high z-index values to appear above all page content. |
| popup.html | The HTML structure for the popup that opens when you click the extension icon. Contains two tabs: Notes and Files. |
| popup.js | Drives the popup: loads all data from storage, renders note cards and file cards, handles search/filter, create/delete operations, and export triggers. |
| popup.css | Styles the popup with a premium dark theme, gradient backgrounds, animated card entries, and responsive scrollable lists. |
| Permission | Why |
|---|---|
contextMenus |
Adds the "π Save to TextVault" option to the right-click menu |
storage |
Persists all notes and files locally using chrome.storage.local |
activeTab |
Accesses the current tab's URL and title when saving a note |
downloads |
Exports files as .txt downloads with a "Save As" dialog |
All data is stored locally in your browser using chrome.storage.local. No data is sent to any external server. The storage structure:
{
"textvault_files": {
"My Research": {
"createdAt": 1712345678000,
"notes": [
{
"text": "The highlighted text...",
"url": "https://example.com/page",
"pageTitle": "Example Page Title",
"heading": "My Custom Heading",
"savedAt": 1712345678000
}
]
}
}
}- β Google Chrome (version 88+, Manifest V3 support)
- β Microsoft Edge (Chromium-based)
- β Brave Browser
- β Opera (Chromium-based)
- β Firefox (uses a different extension format)
- Use descriptive headings β headings like "Important" are less useful than "Python async/await syntax" or "React useEffect cleanup pattern".
- Organize by topic β create separate files for different subjects (e.g., "Machine Learning", "JavaScript Tips", "Research Papers").
- Export regularly β export your files as
.txtbackups so you have copies outside the browser. - Use search β the popup search bar searches across headings, text, URLs, and file names all at once.
- Quick save workflow β create your files upfront in the Files tab, then saving notes is just: highlight β right-click β heading β click file β save.
| Issue | Solution |
|---|---|
| Context menu doesn't appear | Make sure you have text selected/highlighted before right-clicking. The menu item only shows for text selections. |
| Save dialog doesn't show | Refresh the webpage and try again. Some pages (like chrome:// pages) block content scripts. |
| Extension icon missing | Click the puzzle piece icon π§© in Chrome's toolbar and pin TextVault. |
| Changes not taking effect | After modifying files, go to chrome://extensions/ and click the reload β» button on the TextVault card. |
| Notes not persisting | Check that the storage permission is listed in manifest.json. Also make sure you're not in Incognito mode (extensions are disabled by default there). |
This project is open-source and free to use for personal and educational purposes.
Built with β€οΈ as part of EAG v3 β Session 1, Assignment 1