A private, local-first Chrome new tab page for search, shortcuts, and lightweight personal context. It works offline by default, with optional online enhancements that must be enabled explicitly.
- Public-release visual refresh with a restrained utility interface
- Shared search URL template validation for the dashboard and settings
- Release and privacy documentation under
docs/ - Default-off online control for favicon fetching
- Search module with Google, Bing, DuckDuckGo, and custom URL templates
- Local weather, hot topic, and movie cards maintained by the user
- Custom themed context menu with category and shortcut actions
- Favicon persistent cache: IndexedDB first; 7-day TTL; no network fetch unless enabled
- Internationalization through
chrome.i18nwith_locales/enand_locales/zh_CN
- Offline by Default: New installs make no external requests unless online enhancements are enabled
- Customizable Dashboard: Time display, search, shortcuts, local weather, hot topics, and movie cards
- Multiple Search Engines: Google, Bing, DuckDuckGo, and custom search support
- Background Customization: Upload images, solid colors, or gradients
- Import/Export: Backup and restore settings via JSON
- Module Visibility: Show/hide different dashboard components
- Internationalization: Menu items and dialogs are localized through chrome.i18n
- Icon Caching: Cached favicons can be reused offline
- Chrome Sync: Optional settings sync with large local assets omitted when necessary
Local iTab is designed to be privacy-forward:
- Default state: no favicon request and no remote weather/hot-topic/movie feed.
- Online favicon fetching: disabled by default; when enabled, the extension may request
https://www.google.com/s2/favicons. - Search: typing does not send data anywhere; a request is made only after you submit a search or open a URL.
- User data is stored in
chrome.storage.local; Chrome Sync is opt-in and subject to Chrome's sync quota.
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select the
local-itabfolder - The extension will override your new tab page
- Add messages under
_locales/<locale>/messages.json - In HTML, use
data-i18nanddata-i18n-titleattributes; in JS usei18n.t('key')
- API:
faviconCache.getIconDataUrl(origin),faviconCache.invalidate(origin),faviconCache.prefetch(origin),faviconCache.setOnlineEnabled(enabled) - Used by shortcuts to resolve cached icons; network fetching is disabled until the privacy setting enables it
- Initializes on the new tab page; only triggers on category header/list and shortcut items
- Actions:
open_allfor categories;open,edit,deletefor site cards
This extension is built with:
- Manifest V3
- Vanilla JavaScript (no external dependencies)
- Chrome Storage API for local data persistence
- Responsive CSS Grid layout
Local iTab should feel like a calm browser utility, not a marketing page. The primary workflow is search plus local shortcuts. Optional weather, topic, movie, sync, and online image features must stay visually secondary and explicit.
See .impeccable.md for the design context used by implementation agents.
docs/privacy-summary.mdsummarizes default-off network behavior.docs/release-checklist.mdlists the Chrome Web Store readiness checks.- Before packaging, reload the unpacked extension, verify both locales, and confirm the default install makes no external requests.
local-itab/
├── manifest.json # Extension manifest
├── newtab.html # New tab page
├── newtab.css # New tab styles
├── newtab.js # New tab logic
├── options.html # Settings page
├── options.css # Settings styles
├── options.js # Settings logic
├── assets/ # Extension icons
└── README.md # This file
- Chrome browser with Manifest V3 support
- No internet connection required for default operation
This project is open source and available under the MIT License.