Command Line Interface
Use the Arivu CLI to log in, save, list, search, and run migration tooling from the same Go binary.
The Arivu CLI is built into the same Go binary as the web app. It uses the same API as the browser interface, so saved bookmarks still flow through the same background processing, search, and resurfacing behavior.
Build
git clone https://github.com/glnarayanan/arivu.git
cd arivu
go build -trimpath -ldflags="-s -w" -o arivu ./cmd/arivu
Verify the command:
./arivu version
Run the Server
./arivu serve -addr 127.0.0.1:8080 -db arivu.sqlite3
Open http://127.0.0.1:8080/auth and create your account before CLI login.
Login
./arivu login \
--api http://127.0.0.1:8080/api \
--email you@example.com \
--password your-password
The CLI stores its API URL and bearer tokens in the local user config directory.
You can also set a default API URL:
ARIVU_API=https://your-domain.example/api ./arivu login --email you@example.com --password your-password
Save, List, and Search
./arivu save https://example.com/article
./arivu list
./arivu search "vector databases"
The CLI uses authenticated API routes. Bookmark ingestion still applies the same server-side URL safety checks used by the web app.
Migration Tooling
The same binary includes migration commands for legacy Arivu exports:
./arivu migrate --json-export legacy-export.json --dry-run=true
Apply into SQLite after validation:
./arivu migrate \
--json-export legacy-export.json \
--sqlite-db arivu.sqlite3 \
--old-secret-key "$OLD_SECRET_KEY" \
--new-secret-key "$SECRET_KEY" \
--dry-run=false
Migration intentionally invalidates old sessions, validates exported data, and re-encrypts migrated runtime secrets with the new key model.
Security Notes
- CLI tokens are stored locally in the user config directory.
- CLI routes use bearer tokens with a CLI audience.
- Server-side bookmark fetching blocks unsafe targets and validates redirects.
- Keep terminal history in mind when passing passwords as command arguments.