Install vilinks.

A lightweight go/ alternative you run locally. Pick your OS guide below. After install, open http://127.0.0.1:8765/ (always works). Optional: enable http://vi/.

Local-first (SQLite)
Docker or Python
Custom prefix (vi/)
Hits + edit/delete

One-command install

curl -fsSL https://mac.vilinks.org | bash
iwr -useb https://win.vilinks.org | iex
Open http://127.0.0.1:8765/ or http://localhost:8765/. Pretty URL http://vi/ requires admin/root (hosts + port 80 forwarding).

Choose your guide

macOS / Linux

Default guide. Cleanest experience. Optional pf/iptables for http://vi/.

Open guide →

Windows

Includes Docker override notes + portproxy steps for http://vi/.

Open guide →

What you get

Create short links in a clean UI, then open /alias to redirect. Everything is local.

Local DB

SQLite stored in your home directory. Easy to back up and restore.

Fast redirects

302 redirects with hit counts and last-hit tracking.

Troubleshooting

Common: What URLs should I use?

Always works: http://127.0.0.1:8765/ and http://localhost:8765/. Pretty URL: http://vi/ requires hosts + port 80 forwarding.

Common: Why does http://vi/ fail but :8765 works?

http://vi/ needs hosts entry (127.0.0.1 vi) and port 80 → 8765 forwarding. Skip admin changes? Use :8765.

Windows: Docker “unable to open database file”

Windows bind-mount permissions. Use the Windows override compose file inside the repo: docker compose -f docker-compose.yml -f docker-compose.windows.yml up -d --build.