Indexarius

Categorize phone bookmarks while you're away

For Chrome on a computer, with Chrome on your phone signed in to the same Google account. Last updated 13 October 2026.

How phone bookmarks get categorized

Chrome on iPhone, iPad and Android has no extensions, so Indexarius cannot run there. A bookmark you save on your phone travels through Chrome sync to every computer signed in to the same account. The first one that has Chrome open with Indexarius categorizes it within seconds. If none is open, the bookmark waits, and is categorized the next time Chrome starts on one of them.

So if you would like phone bookmarks categorized, and filed into folders you can open on the phone, while your own computer is closed, keep one computer running Chrome with Indexarius. An old laptop or a small desktop that stays on is enough.

Option 1: an always-on computer with ordinary Chrome Recommended

This is plain Chrome, the way you use it every day, set to start by itself. It works on Chrome 116 or later.

  1. Start Chrome with a folder of its own for this, using the command for your system below. It runs apart from any Chrome you already use on that computer.
  2. In that window, sign in to Chrome with your Google account and turn on sync, with bookmarks included. Do this yourself: Google refuses sign-in from a browser that is being driven by automation software.
  3. Install Indexarius from the Chrome Web Store. In its setup, choose how it may file bookmarks into folders. With “Just label”, phone bookmarks are categorized but stay where they are.
  4. Make the computer stay awake and start that Chrome at login, as below.

If the computer is spare and nobody browses on it, you can skip the separate folder: use its ordinary Chrome and add Chrome to the apps that open at login.

macOS

First run, to sign in (in Terminal):

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --user-data-dir="$HOME/Library/Application Support/Indexarius Chrome" \
  --profile-directory=Default --no-first-run

Then quit that Chrome and paste this. It adds a launch agent that starts the same Chrome each time you log in, and again if it quits, wrapped in caffeinate so the Mac does not sleep while it runs. Pasting it again replaces the old one:

mkdir -p ~/Library/LaunchAgents
cat > ~/Library/LaunchAgents/com.indexarius.chrome.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key><string>com.indexarius.chrome</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/bin/caffeinate</string>
    <string>-is</string>
    <string>/Applications/Google Chrome.app/Contents/MacOS/Google Chrome</string>
    <string>--user-data-dir=$HOME/Library/Application Support/Indexarius Chrome</string>
    <string>--profile-directory=Default</string>
    <string>--no-first-run</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
</dict>
</plist>
EOF
launchctl bootout gui/$(id -u)/com.indexarius.chrome 2>/dev/null
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.indexarius.chrome.plist

Windows

Paste this in PowerShell. It puts a shortcut in your Startup folder, so Chrome starts each time you sign in to Windows, and then opens it once so you can sign in:

$chrome = "$env:ProgramFiles\Google\Chrome\Application\chrome.exe"
$link = (New-Object -ComObject WScript.Shell).CreateShortcut(
  "$([Environment]::GetFolderPath('Startup'))\Indexarius Chrome.lnk")
$link.TargetPath = $chrome
$link.Arguments = "--user-data-dir=`"$env:LOCALAPPDATA\Indexarius Chrome`" --profile-directory=Default --no-first-run"
$link.Save()
Start-Process $chrome $link.Arguments

Linux, including a machine with no screen

A systemd user service starts Chrome at boot. Without a screen, xvfb-run gives it a virtual one (install the xvfb package). Sign in once where you can see the window, at the machine or over remote desktop, with the same folder and flags:

google-chrome --user-data-dir="$HOME/.config/indexarius-chrome" \
  --profile-directory=Default --no-first-run --password-store=basic

--password-store=basic makes Chrome keep its keys the same way with or without a desktop session, so the sign-in survives the service. Then quit Chrome and save this as ~/.config/systemd/user/indexarius-chrome.service:

[Unit]
Description=Chrome with Indexarius

[Service]
ExecStart=/usr/bin/xvfb-run -a /usr/bin/google-chrome --user-data-dir=%h/.config/indexarius-chrome --profile-directory=Default --no-first-run --password-store=basic
Restart=on-failure
RestartSec=30

[Install]
WantedBy=default.target

And turn it on. enable-linger lets it start at boot without anyone logging in:

systemctl --user daemon-reload
systemctl --user enable --now indexarius-chrome.service
sudo loginctl enable-linger "$USER"

Keep xvfb-run even on a machine with a desktop: the service starts at boot, before any desktop session, so Chrome has no screen of its own to open on. Check it with systemctl --user status indexarius-chrome.

Option 2: headless Chrome Experimental

Chrome can run with no window at all (--headless=new, Chrome 112 and later), and Indexarius works there: its own tests run that way. What we have not confirmed is whether Chrome sync keeps bringing bookmarks in when Chrome runs headless, so treat this as a trial and check it as below.

  1. Do Option 1's first run in a normal window: sign in, turn on sync, install Indexarius, choose filing. Quit.
  2. Start the same folder headless, in place of the normal command (on a Mac or Windows, use the Chrome path from Option 1):
google-chrome --headless=new --user-data-dir="$HOME/.config/indexarius-chrome" \
  --profile-directory=Default --no-first-run --password-store=basic

If phone bookmarks do not arrive, go back to Option 1; on Linux, xvfb-run costs little.

How to check it works

Good to know