Is Bookmark Llama - Shared Bookmarks safe?
We analyzed Bookmark Llama - Shared Bookmarks version 2.0.25's actual code and gave it a 68/100 trust score. Bookmark Llama is purpose-aligned but has…
Bottom line
Bookmark Llama is purpose-aligned but has meaningful bookmark access and a remotely controlled synchronization design.
What it can access
It can read and change all bookmarks, then share selected bookmark data with its own service for synchronization; this fits the stated purpose but exposes sensitive browser data. [Q1][Q4][Q6]
Security weaknesses
The linked service and approved web app can trigger bookmark changes, including automatically, while the command interface lacks separate user confirmation. [Q8][Q16][Q21]
Signs of misuse
The package shows no unrelated collection or misuse; bookmark sharing and limited usage measurement support its stated service, though a persistent device record is created. [Q6][Q13]
Code findings
What access does this extension ask for, and does that access make sense for what it claims to do?
It has full bookmark read/write access, local storage, alarms and notifications. Network host access and external messaging are limited to Bookmark Llama's web app.
Declares bookmarks, storage, alarms and notifications permissions, plus an exact app.bookmarkllama.com host/external-connect allowlist. — manifest.json:3
Which websites can it run on, and can it read or change what appears on those pages?
No evidence of this behavior was found in the reviewed package.
Declares no content_scripts, scripting permission or web-accessible resource. — manifest.json:3
Contains a page-message relay, but no manifest path makes it reachable or executable. — js/contentscript.js:1
Can it see sensitive information you type, such as passwords, payment details, messages, or form entries?
No evidence of this behavior was found in the reviewed package.
The active extension consists of a bookmark service worker with no page-content access. — manifest.json:3
Can it access private browser data such as cookies, signed-in sessions, browsing history, bookmarks, or downloads?
It reads the complete bookmarks database and modifies linked bookmark folders. It does not request browser history, cookies, downloads or open-tab access.
Requests bookmarks but not history, cookies, downloads or tabs. — manifest.json:3
Uses getTree/getSubTree/getChildren and create/update/move/remove APIs throughout sharing and sync. — serviceworker.js:1
Can it access anything else on your device, such as files, location, camera, microphone, clipboard, or installed applications?
No evidence of this behavior was found in the reviewed package.
Declares none of the relevant permissions or page access. — manifest.json:3
Does it send information outside your browser? If so, what information is sent, where does it go, and why?
Selected folder trees, including bookmark titles and URLs when unencrypted, are sent to services.bookmarkllama.com for sharing and synchronization. This is the advertised service; no unrelated data destination was found.
postSharedFolder and postSharedFolderBookmarks send selected bookmark trees to the fixed Bookmark Llama API with the user's session token. — serviceworker.js:1
Does it download or run code, settings, or instructions supplied by a remote server?
The server supplies shared-folder membership, change logs, versions, notifications and pending sync state. These are data instructions, not executable code.
Fetches shared-folder changes and sync state, then validates and applies them through packaged bookmark methods. — serviceworker.js:1
Can it take actions without a clear user request, such as opening pages, redirecting searches, downloading files, or sending requests?
A sync alarm runs every minute and can apply remote changes without confirmation per item. Users can disable automatic sync, and only previously linked folders are processed.
Creates the syncEngine one-minute alarm, checks sync_engine_disable_autorun, then processes mapped remote folders. — serviceworker.js:1
Can it change important browser settings, including your proxy, search engine, homepage, privacy settings, or other extensions?
No evidence of this behavior was found in the reviewed package.
Requests no browser-settings, proxy, privacy or management permission. — manifest.json:3
Is any important behavior difficult to inspect because the code is hidden, heavily obfuscated, dynamically generated, or supplied by third parties?
The service worker is a large minified bundle with many third-party libraries, making review harder. services routes, event names, cryptography and bookmark operations remain directly inspectable.
Single-line bundled worker contains readable Bookmark Llama endpoints, message cases and sync logic. — serviceworker.js:1
Does it use eval(), new Function(), or string-based timers to turn text into executable code?
No evidence of this behavior was found in the reviewed package.
Calls global eval only on the packaged literal '(async function* () {})'; no untrusted source-to-sink path was found. — serviceworker.js:1
Does it track the websites, pages, searches, or links you visit?
No evidence of this behavior was found in the reviewed package.
getBookmarksV3 returns bookmark names and URLs, and unencrypted bookmark_tree uploads preserve URL fields. — serviceworker.js:1
Does it create a persistent ID or browser fingerprint to recognize you?
It creates a persistent device ID and reports installation, authentication, logout, ping and error/product events. PostHog is configured without IP capture, pageviews, recording or autocapture.
Stores device_id, sets it in the uninstall URL and API telemetry, while PostHog configuration disables IP, pageview, recording and autocapture features. — serviceworker.js:1
Does it send cookies, session details, authentication data, or page contents elsewhere?
A Bookmark Llama session token is stored locally and attached to services requests. The allowlisted Bookmark Llama web app supplies this token during login; no browser-cookie access was found.
authenticate stores session-token and API middleware sends it as a Bearer token to api.bookmarkllama.com. — serviceworker.js:1
Does it record typing, form entries, clipboard contents, or screenshots?
No evidence of this behavior was found in the reviewed package.
Declares no page content script or screenshot-related permission. — manifest.json:3
Can a website or remote server send commands that make the extension take actions?
The Bookmark Llama service can direct creation, movement, updates and deletion inside linked shared folders. Descendant checks prevent changes outside the mapped folder, and hash/version checks detect inconsistent state.
Applies server change logs through bookmark APIs, checks membership with the nd descendant helper, and verifies resulting hashes and versions. — serviceworker.js:1
Does it alter links, referral codes, advertisements, shopping carts, or search results?
No evidence of this behavior was found in the reviewed package.
No active page script is declared. — manifest.json:3
Does it redirect or modify web traffic, request headers, downloads, or proxy settings?
It makes authenticated requests to Bookmark Llama's fixed services for sync and telemetry. No arbitrary URL proxy, user-supplied download target or unrelated remote fetch path was found.
API clients use fixed https://api.bookmarkllama.com and telemetry uses the related app route. — serviceworker.js:1
Can it communicate with software on the computer or services running on localhost?
No evidence of this behavior was found in the reviewed package.
Requests no nativeMessaging or system-level permission. — manifest.json:3
Does it decode, decrypt, or unpack hidden data and then execute or inject it?
No evidence of this behavior was found in the reviewed package.
Remote change logs flow into structured bookmark operations; PostHog also disables external dependency loading. — serviceworker.js:1
Can ordinary websites access privileged extension features through messaging or exposed files?
A privileged external-message interface exposes bookmark listing, sharing, login and sync controls to app.bookmarkllama.com. Chrome enforces that exact origin allowlist, but the handler adds no per-command user confirmation or separate sender authorization.
externally_connectable allows only https://app.bookmarkllama.com/*. — manifest.json:3
onMessageExternal dispatches getBookmarks, create/share, authenticate, sync and settings commands through the same handler. — serviceworker.js:1
Does suspicious behavior activate only for certain users, websites, dates, or remote settings?
No evidence of this behavior was found in the reviewed package.
Derives non-exportable AES-GCM and HMAC keys with PBKDF2, encrypts bookmark fields when enabled, and persists folder/version state locally. — serviceworker.js:1
Does it perform hidden resource-intensive work, such as cryptocurrency mining?
No evidence of this behavior was found in the reviewed package.
Periodic work performs bookmark synchronization, notification checks and telemetry pings. — serviceworker.js:1
Does it change form fields or where a form sends its information?
No evidence of this behavior was found in the reviewed package.
Contains no content_scripts declaration or scripting permission. — manifest.json:3